WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
Bug 87448
Presence of video tag causes DumpRenderTree to exit before calling onload handler
https://bugs.webkit.org/show_bug.cgi?id=87448
Summary
Presence of video tag causes DumpRenderTree to exit before calling onload han...
Kenneth Russell
Reported
2012-05-24 18:41:15 PDT
Created
attachment 143946
[details]
Test case; unzip in LayoutTests/fast/canvas/webgl It appears that if a <video> tag is present, DumpRenderTree will exit before calling the body's onload handler, unless layoutTestController.waitUntilDone() has been called. If waitUntilDone() is called within the body's onload handler, the test will exit early. Reproduced with Chromium port's DumpRenderTree implementation. Not sure whether it happens with other ports. Commenting out the video tag causes the onload handler to run 100% reliably. Calling waitUntilDone() in script executed during page load causes the test to run 100% reliably. See the attached test case; unzip in LayoutTests/fast/canvas/webgl.
Attachments
Test case; unzip in LayoutTests/fast/canvas/webgl
(1.46 KB, application/octet-stream)
2012-05-24 18:41 PDT
,
Kenneth Russell
no flags
Details
Revised test case showing onload handler is not called
(1.48 KB, application/octet-stream)
2012-05-25 10:24 PDT
,
Kenneth Russell
no flags
Details
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Kenneth Russell
Comment 1
2012-05-24 18:43:50 PDT
Discovered while working on
Bug 87042
and
Bug 86877
.
Ami Fischman
Comment 2
2012-05-24 23:29:09 PDT
kbr: do you know if DRT's behavior is document somewhere vis-a-vis what it guarantees to execute before exiting when waitUntilDone() hasn't been called?
Eric Carlson
Comment 3
2012-05-25 08:49:36 PDT
The media element will block the document's 'load' event during setup and initial buffering, are you sure your onload handler is being called at all?
Kenneth Russell
Comment 4
2012-05-25 10:18:26 PDT
(In reply to
comment #2
)
> kbr: do you know if DRT's behavior is document somewhere vis-a-vis what it guarantees to execute before exiting when waitUntilDone() hasn't been called?
I don't know whether it's written down but it seems to be common knowledge among WebKit developers; jamesr told me that that is definitely the rule.
Ami Fischman
Comment 5
2012-05-25 10:20:15 PDT
(In reply to
comment #4
)
> (In reply to
comment #2
) > > kbr: do you know if DRT's behavior is document somewhere vis-a-vis what it guarantees to execute before exiting when waitUntilDone() hasn't been called? > > I don't know whether it's written down but it seems to be common knowledge among WebKit developers; jamesr told me that that is definitely the rule.
Sorry, what is the common knowledge? (I really don't know what the contract is)
Kenneth Russell
Comment 6
2012-05-25 10:22:40 PDT
(In reply to
comment #5
)
> (In reply to
comment #4
) > > (In reply to
comment #2
) > > > kbr: do you know if DRT's behavior is document somewhere vis-a-vis what it guarantees to execute before exiting when waitUntilDone() hasn't been called? > > > > I don't know whether it's written down but it seems to be common knowledge among WebKit developers; jamesr told me that that is definitely the rule. > > Sorry, what is the common knowledge? > (I really don't know what the contract is)
Sorry; I meant that the onload handler is called before DRT exits.
Kenneth Russell
Comment 7
2012-05-25 10:23:26 PDT
(In reply to
comment #3
)
> The media element will block the document's 'load' event during setup and initial buffering, are you sure your onload handler is being called at all?
When the problem occurs, the onload handler is definitely not getting called. I'll upload a revised test case showing this.
Kenneth Russell
Comment 8
2012-05-25 10:24:02 PDT
Created
attachment 144096
[details]
Revised test case showing onload handler is not called
Eric Carlson
Comment 9
2012-05-25 10:41:40 PDT
(In reply to
comment #7
)
> > When the problem occurs, the onload handler is definitely not getting called. I'll upload a revised test case showing this.
So I'll bet that this is caused by the <video> element delaying the 'load' event while loading and parsing the initial portion of the file. As far as I know DRT does not wait for the 'load' event to be fired, that is what waitUntilDone() is for.
Ami Fischman
Comment 10
2012-05-25 10:45:55 PDT
(In reply to
comment #9
)
> As far as I know DRT does not wait for the 'load' event to be fired, that is what waitUntilDone() is for.
Eric: what would you say DRTs contract is/should be? FWIW,
http://trac.webkit.org/wiki/Writing%20Layout%20Tests%20for%20DumpRenderTree
says: By default, DumpRenderTree dumps each test file immediately after the document has loaded and the load event handlers have executed.
Eric Carlson
Comment 11
2012-05-25 11:02:41 PDT
(In reply to
comment #10
)
> (In reply to
comment #9
) > > As far as I know DRT does not wait for the 'load' event to be fired, that is what waitUntilDone() is for. > > Eric: what would you say DRTs contract is/should be? > FWIW,
http://trac.webkit.org/wiki/Writing%20Layout%20Tests%20for%20DumpRenderTree
says: > By default, DumpRenderTree dumps each test file immediately after the document has loaded and the load event handlers have executed.
Silly me!
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