|Summary:||Changing CACHE MANIFEST file causes ASSERT to fail|
|Product:||WebKit||Reporter:||Kevin D. Wolf <email@example.com>|
|Component:||WebCore Misc.||Assignee:||Nobody <firstname.lastname@example.org>|
|Priority:||P2||Keywords:||InRadar, NeedsReduction, ReviewedForRadar|
|Version:||528+ (Nightly build)|
If you create a very simple CACHE MANIFEST include it within the HTML tag and open that page, it appears everything works fine with the caching events. Make a change to the manifest, and reload the page, it will cause ASSERT(!m_resources.contains(url)); Within addResource method of ApplicationCache.cpp will fail. This does not appear to be a problem in the version of WebKit within Safari on the iPhone, but does appear to be a problem in V4.0 beta of Safari for the desktop.
Can you please attach a simple test case demonstrating the problem?
(In reply to comment #0) > This does not appear to be a problem in the version of WebKit within Safari on > the iPhone, but does appear to be a problem in V4.0 beta of Safari for the > desktop. Since you are getting an assertion failure, this must be your local debug build of WebKit, not Safari 4 beta. What revision are you seeing this with? I tried to follow your steps to reproduce, but didn't get any assertion failure with ToT, so more detail would be needed to investigate this issue.
I grabbed the latest WebKit source yesterday, it appears to be in the Safari Beta 4, I've installed on a machine w/o WebKit Source. Busy afternoon, but I'll package up my source and do a better write up later this PM
This seems to be an intermittent problem. I have two installs of Safari 4 Beta working with no issues. One install of Safari 4 Beta failing. My latest WebKit build within Safari 4 is also failing. Working on my iPod Touch. If I can get any more details, I will pass them along. Here is how I can get it to fail. 1) Clear the cache CTRL+ALT+E 2) Download page with the manifest tag 3) Events fire as pages are downloaded 4) Update something in the manifest tag 5) Execute window.applciationCache.update() or re-download the page 5) In Safari 4, I get an INVALID_STATE_ERR: DOM Exception 11 6) When running WebKit w/ VC++ debugger attached the assertion fails ApplicationCache.cpp addResource method ASSERT(!m_resources.contains(url));
I have two Safari 4.0 Betas installed from the Apple site with WebKit file V5.528.18 installed on each. One works, one does not. Is there anyway I can inspect the contents of the off-line cache?
You can check the database file using sqlite own command line tool sqlite3 (I don't know how to best install it on Windows), or any other tool that can read sqlite databases.
I found my apps HTML 5.0 SQLite DB's, but coudn't the onces for offline cache, can you point me in the right direction?
Mine is in Documents and Settings\<User>\Local Settings\Application Data\Apple Computer\Safari\ApplicationCache.db. Note that with debug builds, it may be emptied on each application quit (it is in Mac, not sure about Windows).
Seems like I was calling applicationCache.update() in my startup routine. If I don't do this, everything seems to work fine. I'll close in a week or so if I don't see anymore problems.
If an assertion fails, it's a bug that should be fixed in WebKit.
I think the assertion does a good job of explaining the problem, but I see this when I call applicationCache.update and it attempts to stuff an existing item into m_resources. Let me know if you have any additional questions.