WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 33827
Assertion failure in DOMApplicationCache constructor
https://bugs.webkit.org/show_bug.cgi?id=33827
Summary
Assertion failure in DOMApplicationCache constructor
Alexey Proskuryakov
Reported
2010-01-18 22:51:27 PST
DOMApplicationCache::DOMApplicationCache(Frame* frame) : m_frame(frame) { ASSERT(!m_frame || applicationCacheHost()); This assertion is clearly incorrect, because applicationCacheHost() returns null if m_frame is null. So, it effectively asserts that applicationCacheHost() is not null. This also isn't the case in attached test case.
Attachments
test case (will assert)
(223 bytes, text/html)
2010-01-18 22:52 PST
,
Alexey Proskuryakov
no flags
Details
removeAssert
(1.19 KB, patch)
2010-01-20 15:04 PST
,
Michael Nordman
ap
: review+
ap
: commit-queue-
Details
Formatted Diff
Diff
removeAssert2
(3.13 KB, patch)
2010-01-20 16:49 PST
,
Michael Nordman
ap
: review+
Details
Formatted Diff
Diff
removeAssert3
(2.99 KB, patch)
2010-01-20 17:14 PST
,
Michael Nordman
no flags
Details
Formatted Diff
Diff
Show Obsolete
(3)
View All
Add attachment
proposed patch, testcase, etc.
Alexey Proskuryakov
Comment 1
2010-01-18 22:52:00 PST
Created
attachment 46886
[details]
test case (will assert)
Alexey Proskuryakov
Comment 2
2010-01-20 12:10:29 PST
I don't really understand what ApplicationCacheHost is, so it's not quite clear to me whether it's ok to just remove this assertion, or whether null host should prevent DOMApplicationCache construction.
Michael Nordman
Comment 3
2010-01-20 12:44:38 PST
I'll take a look.
Michael Nordman
Comment 4
2010-01-20 12:50:47 PST
The intent of the assertion is to gaurantee that if there is a frame, there must be an applicationCacheHost. This is recognizing 'frameless' construction is a valid thing to do (i don't know what the use case is for that, but Alexey insisted that these should be constructable w/o a frame at some point).
Michael Nordman
Comment 5
2010-01-20 13:19:23 PST
DOMApplicationCache.m_frame == NULL when i run the test case in chrome (and chrome's test_shell). So no assertions. There may be recent changes that haven't rolled into view yet for chrome?
Alexey Proskuryakov
Comment 6
2010-01-20 13:30:49 PST
> Alexey insisted that these should be constructable w/o a frame at some point
I could have been wrong! I still think that this would be a reasonable behavior, but there's a lot of code in WebCore that doesn't work in frameless documents. Do other constructors work in detached frames? What about window.history, or window.statusbar?
> DOMApplicationCache.m_frame == NULL when i run the test case in chrome
Re-checked with
r53418
, still getting a non-null detached frame here.
Michael Nordman
Comment 7
2010-01-20 13:36:18 PST
All detached frames or just about:blanks? What is the expected behavior in a 'detached' frame anyway... are timers and xhrs and subresource loads expected to function properly?
Michael Nordman
Comment 8
2010-01-20 14:04:11 PST
After chatting with alexey, decided to remove this assertion. Its there to test my assumption that if we have a frame, it must have a documentLoader, which is not always the case (apparently). I'll put together a patch soon'ish. Also realized that we have to look at detached frame handling a little more closely throughout the scriptable objects dangling off of window properties.
Michael Nordman
Comment 9
2010-01-20 15:04:54 PST
Created
attachment 47065
[details]
removeAssert
Alexey Proskuryakov
Comment 10
2010-01-20 15:12:34 PST
Comment on
attachment 47065
[details]
removeAssert
> No new functionality, no new tests.
r=me, assuming you'll land the test simultaneously (be sure to make it dumpAsText).
Michael Nordman
Comment 11
2010-01-20 16:49:35 PST
Created
attachment 47079
[details]
removeAssert2 Now with a layout test to verify that the assertion has been removed.
Alexey Proskuryakov
Comment 12
2010-01-20 16:56:15 PST
Comment on
attachment 47079
[details]
removeAssert2 r=me This test doesn't need waitUntilDone/notifyDone - it runs from onload, and doesn't use setTimeout.
Michael Nordman
Comment 13
2010-01-20 17:14:13 PST
Created
attachment 47082
[details]
removeAssert3 Now without waitUntilDone/notifyDone, and with closing tags and a blank line.
WebKit Commit Bot
Comment 14
2010-01-20 20:07:13 PST
Comment on
attachment 47082
[details]
removeAssert3 Clearing flags on attachment: 47082 Committed
r53596
: <
http://trac.webkit.org/changeset/53596
>
WebKit Commit Bot
Comment 15
2010-01-20 20:07:20 PST
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug