Bug 49123 - REGRESSION: beforeload events are fired by <object> elements with YouTube embedding code
Summary: REGRESSION: beforeload events are fired by <object> elements with YouTube emb...
Status: RESOLVED DUPLICATE of bug 44575
Alias: None
Product: WebKit
Classification: Unclassified
Component: Plug-ins (show other bugs)
Version: 528+ (Nightly build)
Hardware: Mac (Intel) OS X 10.6
: P2 Normal
Assignee: Nobody
URL:
Keywords: Regression
Depends on:
Blocks:
 
Reported: 2010-11-05 21:08 PDT by Marc Hoyois
Modified: 2010-11-08 17:45 PST (History)
2 users (show)

See Also:


Attachments
An HTML file that reproduces the bug (660 bytes, text/html)
2010-11-05 21:09 PDT, Marc Hoyois
no flags Details
Another example with <video> fallback (311 bytes, text/html)
2010-11-05 22:52 PDT, Marc Hoyois
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Marc Hoyois 2010-11-05 21:08:18 PDT
Overview:
TWO beforeload events are fired by <object> elements instead of ZERO when their fallback content is used.

Steps to Reproduce:
Open the attached HTML file. It contains an instance of YouTube's standard embedding code, and alerts for beforeload events.

Expected result:
The <object> tag is ignored because it has neither the type nor the data attribute. The enclosed <embed> tag is used and fires a beforeload event.
Total events fired: 1.

Actual result:
The <object> tag is ignored because it has neither the type nor the data attribute. The enclosed <embed> tag is used and fires a beforeload event. BUT, the unused <object> tag also fires two beforeload events.
Total events fired: 3.

Tested in OS X 10.6.4 with WebkKit 6533.18.5, r71367.

Notes:
The same happens with any other kind of fallback content (<video>, <img>, ...)
Comment 1 Marc Hoyois 2010-11-05 21:09:29 PDT
Created attachment 73162 [details]
An HTML file that reproduces the bug
Comment 2 Alexey Proskuryakov 2010-11-05 22:31:41 PDT
Note that I'm getting entirely different behavior with Safari 5.0.2: the movie apparently just loads from the object element, and there is just one beforeload event.

With a debug build:

ASSERTION FAILED: !m_inBeforeLoadEventHandler
(/Users/ap/Safari/OpenSource/WebCore/html/HTMLObjectElement.cpp:282 virtual void WebCore::HTMLObjectElement::updateWidget(bool))
Comment 3 Marc Hoyois 2010-11-05 22:51:10 PDT
Yeah I forgot to mention that. Safari 5.0.2 and earlier treat the <object>/<embed> combination in a special way, but that was fixed a few weeks ago in the nightlies (now the <embed> is just like any other fallback). But the problem is already there for other kind of fallback content. I'm attaching an example with <video> fallback.
Comment 4 Marc Hoyois 2010-11-05 22:52:00 PDT
Created attachment 73166 [details]
Another example with <video> fallback
Comment 5 Andy Estes 2010-11-08 17:45:51 PST
I believe this is a dupe of https://bugs.webkit.org/show_bug.cgi?id=44575, although this technically is documenting two separate issues:

1) beforeload is fired twice on object tags (dupe of 44575).
2) beforeload is fired on object tags that will never fire a load event (new bug AFAIK).

For #2, I'm not sure whether its correct to fire a beforeload event for objects with fallback content that that we know we won't load. That warrants its own discussion that is separate from #1, IMO.

*** This bug has been marked as a duplicate of bug 44575 ***