Bug 121217

Summary: RenderWidget elements are always HTMLFrameOwnerElement subclasses.
Product: WebKit Reporter: Andreas Kling <kling>
Component: Layout and RenderingAssignee: Andreas Kling <kling>
Severity: Normal CC: commit-queue, dbates, esprehn+autocc, glenn, kling, kondapallykalyan, simon.fraser
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Description Flags
Patch koivisto: review+

Description Andreas Kling 2013-09-12 00:28:52 PDT
RenderWidget elements are always HTMLFrameOwnerElement subclasses.
Comment 1 Andreas Kling 2013-09-12 00:43:34 PDT
Created attachment 211407 [details]
Comment 2 WebKit Commit Bot 2013-09-12 00:44:48 PDT
Attachment 211407 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/ChangeLog', u'Source/WebCore/page/Frame.cpp', u'Source/WebCore/page/FrameView.cpp', u'Source/WebCore/rendering/RenderEmbeddedObject.cpp', u'Source/WebCore/rendering/RenderEmbeddedObject.h', u'Source/WebCore/rendering/RenderFrame.cpp', u'Source/WebCore/rendering/RenderFrameBase.cpp', u'Source/WebCore/rendering/RenderFrameBase.h', u'Source/WebCore/rendering/RenderIFrame.cpp', u'Source/WebCore/rendering/RenderIFrame.h', u'Source/WebCore/rendering/RenderLayerCompositor.cpp', u'Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp', u'Source/WebCore/rendering/RenderWidget.cpp', u'Source/WebCore/rendering/RenderWidget.h']" exit_code: 1
Source/WebCore/rendering/RenderWidget.h:26:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 14 files

If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Andreas Kling 2013-09-12 02:11:42 PDT
Committed r155598: <http://trac.webkit.org/changeset/155598>
Comment 4 Daniel Bates 2013-09-16 12:07:42 PDT
(In reply to comment #3)
> Committed r155598: <http://trac.webkit.org/changeset/155598>

This broke the build for ports that enable PLUGIN_PROXY_FOR_VIDEO (*), such as iOS WebKit, with a build error of the form:

Source/WebCore/html/HTMLMediaElement.cpp:623:55: error: no matching constructor for initialization of 'WebCore::RenderEmbeddedObject'
In file included from Source/WebCore/html/HTMLMediaElement.cpp:34:
In file included from Source/WebCore/page/ChromeClient.h:35:
Source/WebCore/rendering/RenderEmbeddedObject.h:36:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'WebCore::HTMLMediaElement *' to 'const WebCore::RenderEmbeddedObject' for 1st argument
class RenderEmbeddedObject : public RenderWidget {
Source/WebCore/rendering/RenderEmbeddedObject.h:38:5: note: candidate constructor not viable: no known conversion from 'WebCore::HTMLMediaElement *' to 'WebCore::HTMLFrameOwnerElement *' for 1st argument

Notice that HTMLMediaElement extends HTMLElement (as of r155811) instead of HTMLFrameOwnerElement or some derived class of it.

(*) We should look to setup a bot on build.webkit.org to build with PLUGIN_PROXY_FOR_VIDEO enabled to help catch such build failures.