New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 637460 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug

Blocked on:
issue 634143



Sign in to add a comment

Remove Widget class.

Project Member Reported by wkorman@chromium.org, Aug 12 2016

Issue description

Note to blink-dev as FYI:

https://groups.google.com/a/chromium.org/d/msg/blink-dev/MWF549MZoCU/6-WeDvcPAgAJ

Notes on high level approach thoughts from in person discussion with szager@:

1) Make Widget::m_parent be type Member<FrameView>
2) Add m_childPlugins, m_childScrollbars to FrameView.
3) Remove Widget inheritance from PluginView and Scrollbar.
4) Remove Widget inheritance from FrameView.
...
N) Remove m_frame from FrameView, delegate to LayoutView
  - Is FrameView::location() ever non-zero?
N+1) Cull extraneous methods from FrameView.
 
Status: Assigned (was: Unconfirmed)
Our initial work hit a snag as platform/Widget can't depend on core/frame/FrameView. Currently exploring:

- move Widget into core
- do away with refs to Widget in platform
- add a platform/ScrollbarParent interface for Scrollbar which FrameView will implement, as bare-bones as feasible, copying in what we need from Widget as we go
- add vectors (or whatever appropriate type is) to hold children to FrameView: PluginView, RemoteFrameView, FrameView, ...

Some trickiness as ScrollbarThemeClient has a geometry convert routine, and despite Widget purportedly having no knowledge of children, it grew two child-related methods (convertChildToSelf, convertSelfToChild) in recent years.

Also spending time looking at geometry computation in detail for related http://crbug.com/634143.
Project Member

Comment 3 by bugdroid1@chromium.org, Sep 15 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fb7bfc94a65058ccf120e1db58ceae7d7c6bf526

commit fb7bfc94a65058ccf120e1db58ceae7d7c6bf526
Author: wkorman <wkorman@chromium.org>
Date: Thu Sep 15 20:58:12 2016

Remove obsolete Mac flipped coordinates comment.

BUG= 637460 
TBR=drott

Review-Url: https://codereview.chromium.org/2339863003
Cr-Commit-Position: refs/heads/master@{#418969}

[modify] https://crrev.com/fb7bfc94a65058ccf120e1db58ceae7d7c6bf526/third_party/WebKit/Source/platform/Widget.h

Cc: wkorman@chromium.org
Components: Blink>Internals>Frames
Owner: joelhockey@chromium.org
I've been talking with haraken and esprehn and this looks like a good task for me to take over and see what I can do.  I have already started some other renaming work in  http://crbug.com/697351 .

Comment 5 by e...@chromium.org, Mar 14 2017

Exciting, thanks for taking this on!
I am going to start with PluginView and remove its inheritance from Widget/FrameViewBase.

It looks like the consequence of this is that HTMLFrameOwnerElement will need to maintain parallel handling for Plugins along with the Widget Tree.
Thanks, your assistance welcome! I concur that finding a way to start smaller would make things more tractable. Our two exploratory efforts hit snags as we sort of dove in at the top and ended up having to touch nearly everything. In particular there were a host of scrolling related methods that had some confusing interactions and potentially warranted rename/simplification. Plugins may be more limited w.r.t. scrolling issues.
Original CL where Plugin code was added to HTMLFrameOwnerElement https://codereview.chromium.org/23618022
Project Member

Comment 9 by bugdroid1@chromium.org, Mar 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0c51a5fdf9f27c4758e4ae2b2b54dff2b8890181

commit 0c51a5fdf9f27c4758e4ae2b2b54dff2b8890181
Author: joelhockey <joelhockey@chromium.org>
Date: Tue Mar 21 21:59:41 2017

Remove most of Widget (FrameViewBase) class from HTMLPlugInElement.

* Replace references to FrameViewBase with PluginView subclass.
* Create stub setPlugin/releasePlugin/ownedPlugin methods which redirect to
HTMLFrameOwnerElement *Widget* methods for now.
* Next step will be to remove the inheritance from PluginView to
FrameViewBase and provide implementation of the new stub methods.

BUG= 637460 

Review-Url: https://codereview.chromium.org/2759063002
Cr-Commit-Position: refs/heads/master@{#458571}

[modify] https://crrev.com/0c51a5fdf9f27c4758e4ae2b2b54dff2b8890181/third_party/WebKit/Source/core/frame/LocalFrameClient.h
[modify] https://crrev.com/0c51a5fdf9f27c4758e4ae2b2b54dff2b8890181/third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp
[modify] https://crrev.com/0c51a5fdf9f27c4758e4ae2b2b54dff2b8890181/third_party/WebKit/Source/core/html/HTMLPlugInElement.h
[modify] https://crrev.com/0c51a5fdf9f27c4758e4ae2b2b54dff2b8890181/third_party/WebKit/Source/core/html/PluginDocument.cpp
[modify] https://crrev.com/0c51a5fdf9f27c4758e4ae2b2b54dff2b8890181/third_party/WebKit/Source/core/html/PluginDocument.h
[modify] https://crrev.com/0c51a5fdf9f27c4758e4ae2b2b54dff2b8890181/third_party/WebKit/Source/core/loader/EmptyClients.cpp
[modify] https://crrev.com/0c51a5fdf9f27c4758e4ae2b2b54dff2b8890181/third_party/WebKit/Source/core/loader/EmptyClients.h
[modify] https://crrev.com/0c51a5fdf9f27c4758e4ae2b2b54dff2b8890181/third_party/WebKit/Source/web/ContextMenuClientImpl.cpp
[modify] https://crrev.com/0c51a5fdf9f27c4758e4ae2b2b54dff2b8890181/third_party/WebKit/Source/web/LocalFrameClientImpl.cpp
[modify] https://crrev.com/0c51a5fdf9f27c4758e4ae2b2b54dff2b8890181/third_party/WebKit/Source/web/LocalFrameClientImpl.h
[modify] https://crrev.com/0c51a5fdf9f27c4758e4ae2b2b54dff2b8890181/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
[modify] https://crrev.com/0c51a5fdf9f27c4758e4ae2b2b54dff2b8890181/third_party/WebKit/Source/web/WebPluginDocument.cpp

Project Member

Comment 11 by bugdroid1@chromium.org, Apr 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d927e98fb228fb205e54152165e238432372df85

commit d927e98fb228fb205e54152165e238432372df85
Author: joelhockey <joelhockey@chromium.org>
Date: Wed Apr 05 22:22:12 2017

Move plugins to be stored in HTMLPlugInElement.

Move plugins from being part of the widget tree in
HTMLFrameOwnerElement to being stored directly on the related
HTMLPlugInElement DOM node.

Plugins are also stored in FrameView as a list of plugin children
to be used in updateStyleAndLayoutIfNeededRecursiveInternal.

Now all calls to HTMLFrameOwnerElement::ownedWidget, or to
LayoutPart::frameViewBase (which calls onwedWidget) will no longer
return the plugin.  Callers of these methods should call
HTMLPlugInElement::plugin or LayoutPart::plugin if they require
the plugin.

I have checked all callers.  Many were obvious about whether they
expect/require FrameView, PluginView or Scrollbar.  But I have left
comments in places where I am not sure.

The next step is to stop PluginView from inheriting from FrameViewBase
and duplicate any required methods into PluginView.  This will complete
removing Plugins from the widget tree.

BUG= 637460 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2764313002
Cr-Commit-Position: refs/heads/master@{#462243}

[modify] https://crrev.com/d927e98fb228fb205e54152165e238432372df85/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/d927e98fb228fb205e54152165e238432372df85/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/d927e98fb228fb205e54152165e238432372df85/third_party/WebKit/Source/core/frame/FrameView.h
[modify] https://crrev.com/d927e98fb228fb205e54152165e238432372df85/third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp
[modify] https://crrev.com/d927e98fb228fb205e54152165e238432372df85/third_party/WebKit/Source/core/html/HTMLPlugInElement.h
[modify] https://crrev.com/d927e98fb228fb205e54152165e238432372df85/third_party/WebKit/Source/core/html/PluginDocument.cpp
[modify] https://crrev.com/d927e98fb228fb205e54152165e238432372df85/third_party/WebKit/Source/core/layout/LayoutEmbeddedObject.cpp
[modify] https://crrev.com/d927e98fb228fb205e54152165e238432372df85/third_party/WebKit/Source/core/layout/LayoutPart.cpp
[modify] https://crrev.com/d927e98fb228fb205e54152165e238432372df85/third_party/WebKit/Source/core/layout/LayoutPart.h
[modify] https://crrev.com/d927e98fb228fb205e54152165e238432372df85/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp
[modify] https://crrev.com/d927e98fb228fb205e54152165e238432372df85/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
[modify] https://crrev.com/d927e98fb228fb205e54152165e238432372df85/third_party/WebKit/Source/core/paint/EmbeddedObjectPaintInvalidator.cpp
[modify] https://crrev.com/d927e98fb228fb205e54152165e238432372df85/third_party/WebKit/Source/core/paint/PartPainter.cpp
[modify] https://crrev.com/d927e98fb228fb205e54152165e238432372df85/third_party/WebKit/Source/web/ChromeClientImpl.cpp
[modify] https://crrev.com/d927e98fb228fb205e54152165e238432372df85/third_party/WebKit/Source/web/ContextMenuClientImpl.cpp
[modify] https://crrev.com/d927e98fb228fb205e54152165e238432372df85/third_party/WebKit/Source/web/WebNode.cpp
[modify] https://crrev.com/d927e98fb228fb205e54152165e238432372df85/third_party/WebKit/Source/web/WebViewImpl.cpp

Project Member

Comment 12 by bugdroid1@chromium.org, Apr 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7a66ab96e524e57f6717edb13f375d50f9cd89e8

commit 7a66ab96e524e57f6717edb13f375d50f9cd89e8
Author: joelhockey <joelhockey@chromium.org>
Date: Fri Apr 07 08:39:00 2017

Update Document handling of Widget/FrameViewBase focus.

Out of all FrameViewBase types, only plugin implemented the setFocus method, so Document checks if element is HTMLPlugInElement and calls plugin::setFocus directly.

Added tests to ensure that if JS onfocus/onblur code changes element focus, the plugin stays in a consistent state of whether it thinks it is in focus.

BUG= 637460 

Review-Url: https://codereview.chromium.org/2797943002
Cr-Commit-Position: refs/heads/master@{#462810}

[add] https://crrev.com/7a66ab96e524e57f6717edb13f375d50f9cd89e8/third_party/WebKit/LayoutTests/plugins/focus-change-1-no-change-expected.txt
[add] https://crrev.com/7a66ab96e524e57f6717edb13f375d50f9cd89e8/third_party/WebKit/LayoutTests/plugins/focus-change-1-no-change.html
[add] https://crrev.com/7a66ab96e524e57f6717edb13f375d50f9cd89e8/third_party/WebKit/LayoutTests/plugins/focus-change-2-change-focus-expected.txt
[add] https://crrev.com/7a66ab96e524e57f6717edb13f375d50f9cd89e8/third_party/WebKit/LayoutTests/plugins/focus-change-2-change-focus.html
[add] https://crrev.com/7a66ab96e524e57f6717edb13f375d50f9cd89e8/third_party/WebKit/LayoutTests/plugins/focus-change-3-change-blur-expected.txt
[add] https://crrev.com/7a66ab96e524e57f6717edb13f375d50f9cd89e8/third_party/WebKit/LayoutTests/plugins/focus-change-3-change-blur.html
[add] https://crrev.com/7a66ab96e524e57f6717edb13f375d50f9cd89e8/third_party/WebKit/LayoutTests/plugins/focus-change-4-change-focus-and-blur-expected.txt
[add] https://crrev.com/7a66ab96e524e57f6717edb13f375d50f9cd89e8/third_party/WebKit/LayoutTests/plugins/focus-change-4-change-focus-and-blur.html
[modify] https://crrev.com/7a66ab96e524e57f6717edb13f375d50f9cd89e8/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/7a66ab96e524e57f6717edb13f375d50f9cd89e8/third_party/WebKit/Source/core/plugins/PluginView.h
[modify] https://crrev.com/7a66ab96e524e57f6717edb13f375d50f9cd89e8/third_party/WebKit/Source/platform/FrameViewBase.h
[modify] https://crrev.com/7a66ab96e524e57f6717edb13f375d50f9cd89e8/third_party/WebKit/Source/web/WebPluginContainerImpl.cpp

Project Member

Comment 13 by bugdroid1@chromium.org, Apr 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9bb7c0c57c6be13b19f47a289bafed94d55c3c45

commit 9bb7c0c57c6be13b19f47a289bafed94d55c3c45
Author: joelhockey <joelhockey@chromium.org>
Date: Mon Apr 10 09:31:36 2017

Use FrameView rather than FrameViewBase for WebInputEventConversion

WebMouseEventBuilder is only called from within WebPluginContainerImpl.
Currently the plugin is passed, but only the parent is used.
By passing the plugin parent, we can use FrameView type rather than
FrameViewBase.  This helps in removing the FrameViewBase/Widget class.

BUG= 637460 

Review-Url: https://codereview.chromium.org/2806223002
Cr-Commit-Position: refs/heads/master@{#463203}

[modify] https://crrev.com/9bb7c0c57c6be13b19f47a289bafed94d55c3c45/third_party/WebKit/Source/web/WebInputEventConversion.cpp
[modify] https://crrev.com/9bb7c0c57c6be13b19f47a289bafed94d55c3c45/third_party/WebKit/Source/web/WebInputEventConversion.h
[modify] https://crrev.com/9bb7c0c57c6be13b19f47a289bafed94d55c3c45/third_party/WebKit/Source/web/WebPluginContainerImpl.cpp

Status: Started (was: Assigned)
Project Member

Comment 15 by bugdroid1@chromium.org, Apr 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e62eb16ec0d97fe0b59d39e3c5f9c0669e6d9cff

commit e62eb16ec0d97fe0b59d39e3c5f9c0669e6d9cff
Author: joelhockey <joelhockey@chromium.org>
Date: Mon Apr 10 21:48:11 2017

Remove unneeded calls to plugin.SetParentVisible.

Plugin (WebPluginContainerImpl) does not keep its own state about
visibility of parent, and once it is no longer inheriting from
FrameViewBase, it will not implement any ParentVisible methods.
If required, it could always call parent_.IsVisible.

BUG= 637460 

Review-Url: https://codereview.chromium.org/2808723002
Cr-Commit-Position: refs/heads/master@{#463409}

[modify] https://crrev.com/e62eb16ec0d97fe0b59d39e3c5f9c0669e6d9cff/third_party/WebKit/Source/core/frame/FrameView.cpp

Project Member

Comment 16 by bugdroid1@chromium.org, Apr 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e7aa842423521bcc232e2f0c3070196038f92f25

commit e7aa842423521bcc232e2f0c3070196038f92f25
Author: joelhockey <joelhockey@chromium.org>
Date: Wed Apr 12 03:23:44 2017

Set plugin focus by implementing HTMLPlugInElement::SetFocused.

Set plugin focus in HTMLPlugInElement::SetFocused rather than an
explicit check and call in Document::SetFocusedElement.
This causes plugins to have DidFocusChange executed twice
(true/false), if the DOM plugin element changes focus in
onblur or onfocus, but the plugin does remain in a consistent
state as to whether it has focus or not.

BUG= 637460 

Review-Url: https://codereview.chromium.org/2810593002
Cr-Commit-Position: refs/heads/master@{#463917}

[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/LayoutTests/plugins/focus-change-2-change-focus-expected.txt
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/LayoutTests/plugins/focus-change-4-change-focus-and-blur-expected.txt
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/dom/ContainerNode.cpp
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/dom/ContainerNode.h
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/dom/Node.cpp
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/dom/Node.h
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/html/HTMLAreaElement.cpp
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/html/HTMLAreaElement.h
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/html/HTMLFrameElementBase.cpp
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/html/HTMLFrameElementBase.h
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/html/HTMLPlugInElement.h
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/html/TextControlElement.cpp
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/html/TextControlElement.h
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/html/forms/MultipleFieldsTemporalInputTypeView.cpp
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/html/forms/MultipleFieldsTemporalInputTypeView.h
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/html/shadow/DateTimeEditElement.cpp
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/html/shadow/DateTimeEditElement.h
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/html/shadow/DateTimeFieldElement.cpp
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/html/shadow/DateTimeFieldElement.h
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/html/shadow/DateTimeNumericFieldElement.cpp
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/html/shadow/DateTimeNumericFieldElement.h
[modify] https://crrev.com/e7aa842423521bcc232e2f0c3070196038f92f25/third_party/WebKit/Source/core/page/FocusController.cpp

Project Member

Comment 17 by bugdroid1@chromium.org, Apr 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/db77d9c68e2df6c5d5c626455a19d9a1aef76598

commit db77d9c68e2df6c5d5c626455a19d9a1aef76598
Author: joelhockey <joelhockey@chromium.org>
Date: Wed Apr 12 07:58:14 2017

Revert of Remove unneeded calls to plugin.SetParentVisible. (patchset #3 id:40001 of https://codereview.chromium.org/2808723002/ )

Reason for revert:
Although no tests failed from this change, and it seems that pepper plugins do nothing for visibility changes:
https://cs.chromium.org/chromium/src/content/renderer/pepper/pepper_webplugin_impl.cc?l=206&rcl=0cc4c62a163318c06636916b7e2b2c6a56f16b74

I think that this is still important for browser_plugin:
https://cs.chromium.org/chromium/src/content/renderer/browser_plugin/browser_plugin.cc?l=427&rcl=b6dc62f53d4c3b14c0f541897f8d2970be89b84b

Original issue's description:
> Remove unneeded calls to plugin.SetParentVisible.
>
> Plugin (WebPluginContainerImpl) does not keep its own state about
> visibility of parent, and once it is no longer inheriting from
> FrameViewBase, it will not implement any ParentVisible methods.
> If required, it could always call parent_.IsVisible.
>
> BUG= 637460 
>
> Review-Url: https://codereview.chromium.org/2808723002
> Cr-Commit-Position: refs/heads/master@{#463409}
> Committed: https://chromium.googlesource.com/chromium/src/+/e62eb16ec0d97fe0b59d39e3c5f9c0669e6d9cff

TBR=dcheng@chromium.org,haraken@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG= 637460 

Review-Url: https://codereview.chromium.org/2809913004
Cr-Commit-Position: refs/heads/master@{#463953}

[modify] https://crrev.com/db77d9c68e2df6c5d5c626455a19d9a1aef76598/third_party/WebKit/Source/core/frame/FrameView.cpp

Project Member

Comment 18 by bugdroid1@chromium.org, Apr 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5d84a680108877c6a9c526b3e0711913a85245e5

commit 5d84a680108877c6a9c526b3e0711913a85245e5
Author: joelhockey <joelhockey@chromium.org>
Date: Thu Apr 13 06:51:09 2017

Replace LayoutPart::GetFrameViewBase with ChildFrameView

GetChildFrameView returns FrameView associated with local Node
if node is HTMLFrameOwnerElement or nullptr.

The method name GetFrameView is already declared in
LayoutObject which returns Document().View(), so a different
name was required.

BUG= 637460 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2810873007
Cr-Commit-Position: refs/heads/master@{#464325}

[modify] https://crrev.com/5d84a680108877c6a9c526b3e0711913a85245e5/third_party/WebKit/Source/core/editing/FrameSelection.cpp
[modify] https://crrev.com/5d84a680108877c6a9c526b3e0711913a85245e5/third_party/WebKit/Source/core/input/EventHandler.cpp
[modify] https://crrev.com/5d84a680108877c6a9c526b3e0711913a85245e5/third_party/WebKit/Source/core/input/ScrollManager.cpp
[modify] https://crrev.com/5d84a680108877c6a9c526b3e0711913a85245e5/third_party/WebKit/Source/core/inspector/InspectorLayerTreeAgent.cpp
[modify] https://crrev.com/5d84a680108877c6a9c526b3e0711913a85245e5/third_party/WebKit/Source/core/layout/LayoutEmbeddedObject.cpp
[modify] https://crrev.com/5d84a680108877c6a9c526b3e0711913a85245e5/third_party/WebKit/Source/core/layout/LayoutPart.cpp
[modify] https://crrev.com/5d84a680108877c6a9c526b3e0711913a85245e5/third_party/WebKit/Source/core/layout/LayoutPart.h
[modify] https://crrev.com/5d84a680108877c6a9c526b3e0711913a85245e5/third_party/WebKit/Source/core/layout/LayoutTreeAsText.cpp
[modify] https://crrev.com/5d84a680108877c6a9c526b3e0711913a85245e5/third_party/WebKit/Source/core/paint/PaintPropertyTreePrinter.cpp
[modify] https://crrev.com/5d84a680108877c6a9c526b3e0711913a85245e5/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp
[modify] https://crrev.com/5d84a680108877c6a9c526b3e0711913a85245e5/third_party/WebKit/Source/web/tests/ScrollingCoordinatorTest.cpp

Project Member

Comment 19 by bugdroid1@chromium.org, Apr 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e4904c3670d6a8d4f88642ca7e18ca2a9878a684

commit e4904c3670d6a8d4f88642ca7e18ca2a9878a684
Author: joelhockey <joelhockey@chromium.org>
Date: Tue Apr 18 05:05:50 2017

Remove FrameViewBase as base class of PluginView.

Created new pure abstract class FrameOrPlugin to be used
in places where polymorphism of frames and plugins is required.
FrameView, RemoteFrameView and PluginView implement this class.

FrameOrPlugin class has the minimal common methods required:
SetFrameRect, FrameRect, Paint, Hide, Show, Dispose.

The parent_, frame_rect_, and visible_ vars from FrameViewBase
have now moved into WebPluginContainerImpl.

Next step is to remove FrameView, RemoteFrameView, and Scrollbar from
inheriting from FrameViewBase, and remove the FrameViewBase class.

BUG= 637460 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2814643003
Cr-Commit-Position: refs/heads/master@{#465144}

[modify] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/core/frame/BUILD.gn
[add] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/core/frame/FrameOrPlugin.h
[modify] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/core/frame/FrameView.h
[modify] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/core/frame/RemoteFrameView.cpp
[modify] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/core/frame/RemoteFrameView.h
[modify] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.cpp
[modify] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.h
[modify] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp
[modify] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/core/layout/LayoutEmbeddedObject.cpp
[modify] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/core/layout/LayoutPart.cpp
[modify] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/core/layout/LayoutPart.h
[modify] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/core/paint/PartPainter.cpp
[modify] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/core/plugins/PluginView.h
[modify] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/platform/FrameViewBase.h
[modify] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/platform/scroll/Scrollbar.cpp
[modify] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/platform/scroll/Scrollbar.h
[modify] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/web/WebPluginContainerImpl.cpp
[modify] https://crrev.com/e4904c3670d6a8d4f88642ca7e18ca2a9878a684/third_party/WebKit/Source/web/WebPluginContainerImpl.h

Project Member

Comment 20 by bugdroid1@chromium.org, Apr 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c00bae0bd50204fc323a37c28f9e77b39c8dc376

commit c00bae0bd50204fc323a37c28f9e77b39c8dc376
Author: joelhockey <joelhockey@chromium.org>
Date: Wed Apr 19 10:21:48 2017

Remove ScrollableArea::GetFrameViewBase and move
ScrollableArea::ScheduleAnimation into subclasses.

This is part of an overall effort to remove the FrameViewBase
(old Widget) class.  This change helps to remove an unneeded reference.

ScrollableArea implemented ScheduleAnimation by defining GetFrameViewBase
that subclasses could implement.  The alternative implementation is
for subclasses to implement ScheduleAnimation and then there is no need
for the awkward reference to FrameViewBase.

I have added ScheduleAnimation into LocalFrame which is the core class
required by HostWindow/ChromeClientImpl.  All subclasses of ScrollableArea
now implement ScheduleAnimation by calling it on their local reference to
LocalFrame.

BUG= 637460 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2826893003
Cr-Commit-Position: refs/heads/master@{#465546}

[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/core/frame/FrameView.h
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/core/frame/FrameViewTest.cpp
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/core/frame/LocalFrame.cpp
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/core/frame/LocalFrame.h
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/core/frame/RootFrameViewport.cpp
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/core/frame/RootFrameViewport.h
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/core/frame/VisualViewport.cpp
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/core/frame/VisualViewport.h
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/core/loader/EmptyClients.h
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/core/page/AutoscrollController.cpp
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/core/page/PageAnimator.cpp
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/core/svg/graphics/SVGImageChromeClient.cpp
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/core/svg/graphics/SVGImageChromeClient.h
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/platform/HostWindow.h
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/platform/scroll/ScrollableArea.h
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/web/ChromeClientImpl.cpp
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/web/ChromeClientImpl.h
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/web/InspectorOverlay.cpp
[modify] https://crrev.com/c00bae0bd50204fc323a37c28f9e77b39c8dc376/third_party/WebKit/Source/web/WebPagePopupImpl.cpp

Project Member

Comment 22 by bugdroid1@chromium.org, Apr 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/80b7800cb1db49464afa64d370c09c7f65251dca

commit 80b7800cb1db49464afa64d370c09c7f65251dca
Author: joelhockey <joelhockey@chromium.org>
Date: Wed Apr 19 13:13:17 2017

Remove unneeded InspectorOverlay::ScheduleUpdate CHECK

BUG= 637460 

Review-Url: https://codereview.chromium.org/2822423002
Cr-Commit-Position: refs/heads/master@{#465571}

[modify] https://crrev.com/80b7800cb1db49464afa64d370c09c7f65251dca/third_party/WebKit/Source/web/InspectorOverlay.cpp

Project Member

Comment 23 by bugdroid1@chromium.org, Apr 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5a589220480eef0ce8436e3bdd00c796d914a596

commit 5a589220480eef0ce8436e3bdd00c796d914a596
Author: joelhockey <joelhockey@chromium.org>
Date: Fri Apr 21 20:46:28 2017

Remove unneeded Convert* methods and move many from FrameViewBase to FrameView.

I am cleaning up the Convert methods and moving them out of FrameViewBase
in preparation for removing Scrollbar from inheriting from FrameViewBase.
With this change, Scrollbar no longer has any calls to FrameViewBase methods.

There were Convert methods in scrollbar classes that are never called.
* Scrollbar
 - ConvertFromContainingFrameViewBase(IntRect)
 - ConvertToContainingFrameViewBase(IntPoint)
* ScrollableArea and PaintLayerScrollableArea
 - ConvertFromContainingFrameViewBaseToScrollbar(IntPoint)

BUG= 637460 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2832883003
Cr-Commit-Position: refs/heads/master@{#466440}

[modify] https://crrev.com/5a589220480eef0ce8436e3bdd00c796d914a596/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/5a589220480eef0ce8436e3bdd00c796d914a596/third_party/WebKit/Source/core/frame/FrameView.h
[modify] https://crrev.com/5a589220480eef0ce8436e3bdd00c796d914a596/third_party/WebKit/Source/core/frame/RemoteFrameView.cpp
[modify] https://crrev.com/5a589220480eef0ce8436e3bdd00c796d914a596/third_party/WebKit/Source/core/frame/RemoteFrameView.h
[modify] https://crrev.com/5a589220480eef0ce8436e3bdd00c796d914a596/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
[modify] https://crrev.com/5a589220480eef0ce8436e3bdd00c796d914a596/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h
[modify] https://crrev.com/5a589220480eef0ce8436e3bdd00c796d914a596/third_party/WebKit/Source/platform/FrameViewBase.cpp
[modify] https://crrev.com/5a589220480eef0ce8436e3bdd00c796d914a596/third_party/WebKit/Source/platform/FrameViewBase.h
[modify] https://crrev.com/5a589220480eef0ce8436e3bdd00c796d914a596/third_party/WebKit/Source/platform/scroll/ScrollableArea.h
[modify] https://crrev.com/5a589220480eef0ce8436e3bdd00c796d914a596/third_party/WebKit/Source/platform/scroll/Scrollbar.cpp
[modify] https://crrev.com/5a589220480eef0ce8436e3bdd00c796d914a596/third_party/WebKit/Source/platform/scroll/Scrollbar.h

Project Member

Comment 24 by bugdroid1@chromium.org, Apr 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9a51ef8f83c3ebd1e7c04ec66e35cc191e9870fe

commit 9a51ef8f83c3ebd1e7c04ec66e35cc191e9870fe
Author: joelhockey <joelhockey@chromium.org>
Date: Mon Apr 24 09:27:38 2017

Scrollbar no longer inherits from FrameViewBase.

FrameView now holds Scrollbars separate to other FrameView children.

BUG= 637460 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2834573005
Cr-Commit-Position: refs/heads/master@{#466609}

[modify] https://crrev.com/9a51ef8f83c3ebd1e7c04ec66e35cc191e9870fe/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/9a51ef8f83c3ebd1e7c04ec66e35cc191e9870fe/third_party/WebKit/Source/core/frame/FrameView.h
[modify] https://crrev.com/9a51ef8f83c3ebd1e7c04ec66e35cc191e9870fe/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
[modify] https://crrev.com/9a51ef8f83c3ebd1e7c04ec66e35cc191e9870fe/third_party/WebKit/Source/platform/exported/WebScrollbarThemeClientImpl.cpp
[modify] https://crrev.com/9a51ef8f83c3ebd1e7c04ec66e35cc191e9870fe/third_party/WebKit/Source/platform/exported/WebScrollbarThemeClientImpl.h
[modify] https://crrev.com/9a51ef8f83c3ebd1e7c04ec66e35cc191e9870fe/third_party/WebKit/Source/platform/scroll/Scrollbar.cpp
[modify] https://crrev.com/9a51ef8f83c3ebd1e7c04ec66e35cc191e9870fe/third_party/WebKit/Source/platform/scroll/Scrollbar.h
[modify] https://crrev.com/9a51ef8f83c3ebd1e7c04ec66e35cc191e9870fe/third_party/WebKit/Source/platform/scroll/ScrollbarThemeClient.h

Project Member

Comment 25 by bugdroid1@chromium.org, Apr 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e9592f40c7a6e6959be58a19af9f1483c148ed3b

commit e9592f40c7a6e6959be58a19af9f1483c148ed3b
Author: joelhockey <joelhockey@chromium.org>
Date: Wed Apr 26 12:08:57 2017

Move methods from FrameViewBase to FrameView.

Remove FrameViewBase.cpp file.
This CL is in preparation to move core/paint/ScrollbarManager
to platform/scroll and use it as replacement for FrameViewBase.

BUG= 637460 

Review-Url: https://codereview.chromium.org/2843693003
Cr-Commit-Position: refs/heads/master@{#467303}

[modify] https://crrev.com/e9592f40c7a6e6959be58a19af9f1483c148ed3b/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/e9592f40c7a6e6959be58a19af9f1483c148ed3b/third_party/WebKit/Source/core/frame/FrameView.h
[modify] https://crrev.com/e9592f40c7a6e6959be58a19af9f1483c148ed3b/third_party/WebKit/Source/core/frame/RemoteFrameView.cpp
[modify] https://crrev.com/e9592f40c7a6e6959be58a19af9f1483c148ed3b/third_party/WebKit/Source/core/frame/RemoteFrameView.h
[modify] https://crrev.com/e9592f40c7a6e6959be58a19af9f1483c148ed3b/third_party/WebKit/Source/platform/BUILD.gn
[delete] https://crrev.com/333e43abd4855a0ae2912fb1e517e0813bd00005/third_party/WebKit/Source/platform/FrameViewBase.cpp
[modify] https://crrev.com/e9592f40c7a6e6959be58a19af9f1483c148ed3b/third_party/WebKit/Source/platform/FrameViewBase.h
[modify] https://crrev.com/e9592f40c7a6e6959be58a19af9f1483c148ed3b/third_party/WebKit/Source/web/WebInputEventConversion.cpp

Project Member

Comment 26 by bugdroid1@chromium.org, May 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bed8311f2e1d29053f198a429b71653a6888088a

commit bed8311f2e1d29053f198a429b71653a6888088a
Author: joelhockey <joelhockey@chromium.org>
Date: Tue May 02 09:16:13 2017

Use non-const ref for LocalFrame::LocalFrameRoot and FrameTree::Top

BUG= 637460 

Review-Url: https://codereview.chromium.org/2849403002
Cr-Commit-Position: refs/heads/master@{#468587}

[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/dom/DOMImplementation.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/editing/FrameSelection.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/frame/DOMWindow.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/frame/Deprecation.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/frame/LocalFrame.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/frame/LocalFrame.h
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/frame/RemoteFrameView.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/input/EventHandler.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/input/GestureManager.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/inspector/InspectorTraceEvents.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/inspector/MainThreadDebugger.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/layout/IntersectionGeometry.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/layout/LayoutFrame.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/layout/LayoutObject.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/layout/TextAutosizer.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/loader/MixedContentChecker.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/page/ChromeClient.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/page/ChromeClient.h
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/page/CreateWindow.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/page/DragController.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/page/FocusController.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/page/FrameTree.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/page/FrameTree.h
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/core/timing/Performance.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/web/ChromeClientImpl.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/web/WebPluginContainerImpl.cpp
[modify] https://crrev.com/bed8311f2e1d29053f198a429b71653a6888088a/third_party/WebKit/Source/web/tests/LinkSelectionTest.cpp

Comment 28 by vabr@chromium.org, May 2 2017

I just reverted r468588, because it broke compilation on a couple of bots, e.g., https://build.chromium.org/p/chromium.linux/builders/Linux%20Builder%20%28dbg%29%2832%29/builds/66833 or https://build.chromium.org/p/chromium.memory/builders/Linux%20TSan%20Builder. Sample log attached.
log.txt
198 KB View Download
Project Member

Comment 30 by bugdroid1@chromium.org, May 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d3fb9e2435e2c3015314496c2afa5bf64c4ace56

commit d3fb9e2435e2c3015314496c2afa5bf64c4ace56
Author: joelhockey <joelhockey@chromium.org>
Date: Thu May 11 06:39:29 2017

Add PlatformFrameView class.

PlatformFrameView is used in PlatformChromeClient as the platform
base class for core/frame/FrameView.

This removes a reference to FrameViewBase which is being deleted
in http://crrev.com/2855523002.

BUG= 637460 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2873213002
Cr-Commit-Position: refs/heads/master@{#470849}

[modify] https://crrev.com/d3fb9e2435e2c3015314496c2afa5bf64c4ace56/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/d3fb9e2435e2c3015314496c2afa5bf64c4ace56/third_party/WebKit/Source/core/frame/FrameView.h
[modify] https://crrev.com/d3fb9e2435e2c3015314496c2afa5bf64c4ace56/third_party/WebKit/Source/core/frame/FrameViewTest.cpp
[modify] https://crrev.com/d3fb9e2435e2c3015314496c2afa5bf64c4ace56/third_party/WebKit/Source/core/frame/VisualViewport.cpp
[modify] https://crrev.com/d3fb9e2435e2c3015314496c2afa5bf64c4ace56/third_party/WebKit/Source/core/loader/EmptyClients.h
[modify] https://crrev.com/d3fb9e2435e2c3015314496c2afa5bf64c4ace56/third_party/WebKit/Source/core/page/AutoscrollController.cpp
[modify] https://crrev.com/d3fb9e2435e2c3015314496c2afa5bf64c4ace56/third_party/WebKit/Source/core/page/PageAnimator.cpp
[modify] https://crrev.com/d3fb9e2435e2c3015314496c2afa5bf64c4ace56/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
[modify] https://crrev.com/d3fb9e2435e2c3015314496c2afa5bf64c4ace56/third_party/WebKit/Source/core/svg/graphics/SVGImageChromeClient.cpp
[modify] https://crrev.com/d3fb9e2435e2c3015314496c2afa5bf64c4ace56/third_party/WebKit/Source/core/svg/graphics/SVGImageChromeClient.h
[modify] https://crrev.com/d3fb9e2435e2c3015314496c2afa5bf64c4ace56/third_party/WebKit/Source/platform/BUILD.gn
[modify] https://crrev.com/d3fb9e2435e2c3015314496c2afa5bf64c4ace56/third_party/WebKit/Source/platform/PlatformChromeClient.h
[add] https://crrev.com/d3fb9e2435e2c3015314496c2afa5bf64c4ace56/third_party/WebKit/Source/platform/PlatformFrameView.h
[modify] https://crrev.com/d3fb9e2435e2c3015314496c2afa5bf64c4ace56/third_party/WebKit/Source/web/ChromeClientImpl.cpp
[modify] https://crrev.com/d3fb9e2435e2c3015314496c2afa5bf64c4ace56/third_party/WebKit/Source/web/ChromeClientImpl.h
[modify] https://crrev.com/d3fb9e2435e2c3015314496c2afa5bf64c4ace56/third_party/WebKit/Source/web/InspectorOverlayAgent.cpp
[modify] https://crrev.com/d3fb9e2435e2c3015314496c2afa5bf64c4ace56/third_party/WebKit/Source/web/WebPagePopupImpl.cpp

Project Member

Comment 31 by bugdroid1@chromium.org, May 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0f82aa916a39eb944f388c1ae27435036cade852

commit 0f82aa916a39eb944f388c1ae27435036cade852
Author: joelhockey <joelhockey@chromium.org>
Date: Fri May 12 04:45:31 2017

Remove FrameViewBase as base class of RemoteFrameView.

FrameView now holds separate children for Scrollbars, and a combined
FrameOrPlugin set of children which includes FrameView, PluginView,
and RemoteFrameView.

HTMLFrameOwnerElement::widget_ is of type FrameOrPlugin and holds either
FrameView, PluginView, or RemoteFrameView.  I have pulled the plugin back
from HTMLPlugInObject to be in a single field which simplifies the code
overall.

BUG= 637460 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2845583002
Cr-Commit-Position: refs/heads/master@{#471225}

[modify] https://crrev.com/0f82aa916a39eb944f388c1ae27435036cade852/third_party/WebKit/Source/core/frame/FrameOrPlugin.h
[modify] https://crrev.com/0f82aa916a39eb944f388c1ae27435036cade852/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/0f82aa916a39eb944f388c1ae27435036cade852/third_party/WebKit/Source/core/frame/FrameView.h
[modify] https://crrev.com/0f82aa916a39eb944f388c1ae27435036cade852/third_party/WebKit/Source/core/frame/RemoteFrameView.cpp
[modify] https://crrev.com/0f82aa916a39eb944f388c1ae27435036cade852/third_party/WebKit/Source/core/frame/RemoteFrameView.h
[modify] https://crrev.com/0f82aa916a39eb944f388c1ae27435036cade852/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.cpp
[modify] https://crrev.com/0f82aa916a39eb944f388c1ae27435036cade852/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.h
[modify] https://crrev.com/0f82aa916a39eb944f388c1ae27435036cade852/third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp
[modify] https://crrev.com/0f82aa916a39eb944f388c1ae27435036cade852/third_party/WebKit/Source/core/html/HTMLPlugInElement.h
[modify] https://crrev.com/0f82aa916a39eb944f388c1ae27435036cade852/third_party/WebKit/Source/core/html/PluginDocument.cpp
[modify] https://crrev.com/0f82aa916a39eb944f388c1ae27435036cade852/third_party/WebKit/Source/core/html/PluginDocument.h
[modify] https://crrev.com/0f82aa916a39eb944f388c1ae27435036cade852/third_party/WebKit/Source/core/layout/LayoutPart.cpp
[modify] https://crrev.com/0f82aa916a39eb944f388c1ae27435036cade852/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
[modify] https://crrev.com/0f82aa916a39eb944f388c1ae27435036cade852/third_party/WebKit/Source/core/plugins/PluginView.h
[modify] https://crrev.com/0f82aa916a39eb944f388c1ae27435036cade852/third_party/WebKit/Source/platform/FrameViewBase.h

Project Member

Comment 32 by bugdroid1@chromium.org, May 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4838cef544c67d342c418d208e52cd8a4cf1a3d2

commit 4838cef544c67d342c418d208e52cd8a4cf1a3d2
Author: joelhockey <joelhockey@chromium.org>
Date: Fri May 12 23:44:41 2017

Deleted Widget/FrameViewBase.

Scrollbar has no need for a 'parent' concept.  It already has
ScrollableArea which is the container of scrollbars.

Moved FrameViewBase::ConvertFromRootFrame method to ScrollableArea
where it is implemented in FrameView and PaintLayerScrollableArea
along with other similar Convert* methods.

Custom PaintLayerScrollableArea scrollbars must receive
StyleUpdate calls when frame comes in and out of focus.
The scrollbars attached to FrameView already receive these via
RecalculateCustomScrollbarStyle, so they do not need to be
stored in FrameView::scrollbars_.

LayoutScrollbar was relying on overriding and listening for
SetParent(nullptr) to dispose.  This is now done by overriding
Scrollbar::DisconnectFromScrollableArea.

BUG= 637460 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2855523002
Cr-Commit-Position: refs/heads/master@{#471494}

[modify] https://crrev.com/4838cef544c67d342c418d208e52cd8a4cf1a3d2/third_party/WebKit/Source/bindings/core/v8/ScriptController.cpp
[modify] https://crrev.com/4838cef544c67d342c418d208e52cd8a4cf1a3d2/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/4838cef544c67d342c418d208e52cd8a4cf1a3d2/third_party/WebKit/Source/core/frame/FrameView.h
[modify] https://crrev.com/4838cef544c67d342c418d208e52cd8a4cf1a3d2/third_party/WebKit/Source/core/html/HTMLObjectElement.cpp
[modify] https://crrev.com/4838cef544c67d342c418d208e52cd8a4cf1a3d2/third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp
[modify] https://crrev.com/4838cef544c67d342c418d208e52cd8a4cf1a3d2/third_party/WebKit/Source/core/layout/LayoutScrollbar.cpp
[modify] https://crrev.com/4838cef544c67d342c418d208e52cd8a4cf1a3d2/third_party/WebKit/Source/core/layout/LayoutScrollbar.h
[modify] https://crrev.com/4838cef544c67d342c418d208e52cd8a4cf1a3d2/third_party/WebKit/Source/core/loader/EmptyClients.cpp
[modify] https://crrev.com/4838cef544c67d342c418d208e52cd8a4cf1a3d2/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
[modify] https://crrev.com/4838cef544c67d342c418d208e52cd8a4cf1a3d2/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h
[modify] https://crrev.com/4838cef544c67d342c418d208e52cd8a4cf1a3d2/third_party/WebKit/Source/platform/BUILD.gn
[delete] https://crrev.com/00627245b117b8e2d83a5272fc26222765882323/third_party/WebKit/Source/platform/FrameViewBase.h
[modify] https://crrev.com/4838cef544c67d342c418d208e52cd8a4cf1a3d2/third_party/WebKit/Source/platform/PlatformChromeClient.h
[modify] https://crrev.com/4838cef544c67d342c418d208e52cd8a4cf1a3d2/third_party/WebKit/Source/platform/scroll/ScrollableArea.h
[modify] https://crrev.com/4838cef544c67d342c418d208e52cd8a4cf1a3d2/third_party/WebKit/Source/platform/scroll/Scrollbar.cpp
[modify] https://crrev.com/4838cef544c67d342c418d208e52cd8a4cf1a3d2/third_party/WebKit/Source/platform/scroll/Scrollbar.h
[modify] https://crrev.com/4838cef544c67d342c418d208e52cd8a4cf1a3d2/third_party/WebKit/Source/platform/scroll/ScrollbarThemeClient.h
[modify] https://crrev.com/4838cef544c67d342c418d208e52cd8a4cf1a3d2/third_party/WebKit/Source/web/ContextMenuClientImpl.cpp
[modify] https://crrev.com/4838cef544c67d342c418d208e52cd8a4cf1a3d2/third_party/WebKit/Source/web/WebNode.cpp

Created design doc to describe work done so far, and get feedback from dcheng, szager, haraken about thoughts on how to remove widget tree and fix attach / detach / dispose.

https://docs.google.com/document/d/1cce3wA22_MBwTb1fkEZXG3r3vWYuH6AFCnAXgg7S2gw/edit#
Project Member

Comment 34 by bugdroid1@chromium.org, May 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/36e0b6779687fc64be7cef113c0dd9c7ccb3cdd4

commit 36e0b6779687fc64be7cef113c0dd9c7ccb3cdd4
Author: Joel Hockey <joelhockey@chromium.org>
Date: Thu May 18 09:48:07 2017

Remove FrameView::children_ field as part of removing Widget tree

FrameView now holds only its child plugins, but not children
frames.  It uses FrameTree to dispatch calls to FrameView
and RemoteFrameView children.

FrameView::AddChild is removed, and HTMLFrameOwnerElement now calls
child->SetParent(parent) rather than parent->AddChild(child).
FrameView::RemoveChild is still required since it calls to
RemoveScrollableArea.  SetParent and RemoveChild methods will soon
be removed in CL to remove FrameView::parent_ field.

Bug:  637460 
Change-Id: I39ab8ef7fa7a2f37f162f4e38c9cabcfc94f51f6
Reviewed-on: https://chromium-review.googlesource.com/505956
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#472755}
[modify] https://crrev.com/36e0b6779687fc64be7cef113c0dd9c7ccb3cdd4/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/36e0b6779687fc64be7cef113c0dd9c7ccb3cdd4/third_party/WebKit/Source/core/frame/FrameView.h
[modify] https://crrev.com/36e0b6779687fc64be7cef113c0dd9c7ccb3cdd4/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.cpp
[modify] https://crrev.com/36e0b6779687fc64be7cef113c0dd9c7ccb3cdd4/third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp
[modify] https://crrev.com/36e0b6779687fc64be7cef113c0dd9c7ccb3cdd4/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp

Project Member

Comment 35 by bugdroid1@chromium.org, May 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/81e8236cd00c7fd443cb281ce85599605671b117

commit 81e8236cd00c7fd443cb281ce85599605671b117
Author: Joel Hockey <joelhockey@chromium.org>
Date: Tue May 23 23:58:36 2017

Remove Widget Tree FrameView::parent_

The parent field / relationship was being used to indicate whether the
frame or plugin is attached to layout.  In order to remove
FrameView::parent_ and SetParent / Parent methods, the field is replaced
with |is_attached_| and methods replaced with Attach / Detach / IsAttached.

Attach is equivalent of calling SetParent with valid ptr.

Detach is equivalent of calling RemoveChild which then calls
SetParent(nullptr).

Bug:  637460 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I0385d15b5516aee34b1a29758eeaf8f23951dc26
Reviewed-on: https://chromium-review.googlesource.com/507467
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#474111}
[modify] https://crrev.com/81e8236cd00c7fd443cb281ce85599605671b117/third_party/WebKit/Source/core/frame/FrameOrPlugin.h
[modify] https://crrev.com/81e8236cd00c7fd443cb281ce85599605671b117/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/81e8236cd00c7fd443cb281ce85599605671b117/third_party/WebKit/Source/core/frame/FrameView.h
[modify] https://crrev.com/81e8236cd00c7fd443cb281ce85599605671b117/third_party/WebKit/Source/core/frame/RemoteFrameView.cpp
[modify] https://crrev.com/81e8236cd00c7fd443cb281ce85599605671b117/third_party/WebKit/Source/core/frame/RemoteFrameView.h
[modify] https://crrev.com/81e8236cd00c7fd443cb281ce85599605671b117/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.cpp
[modify] https://crrev.com/81e8236cd00c7fd443cb281ce85599605671b117/third_party/WebKit/Source/core/paint/PaintTiming.cpp
[modify] https://crrev.com/81e8236cd00c7fd443cb281ce85599605671b117/third_party/WebKit/Source/core/plugins/PluginView.h
[modify] https://crrev.com/81e8236cd00c7fd443cb281ce85599605671b117/third_party/WebKit/Source/web/WebPluginContainerImpl.cpp
[modify] https://crrev.com/81e8236cd00c7fd443cb281ce85599605671b117/third_party/WebKit/Source/web/WebPluginContainerImpl.h

Project Member

Comment 36 by bugdroid1@chromium.org, Jun 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0d40f32a010e2dced9b08bfbb6258e4df6f5ca72

commit 0d40f32a010e2dced9b08bfbb6258e4df6f5ca72
Author: Joel Hockey <joelhockey@chromium.org>
Date: Thu Jun 01 07:01:50 2017

s/IsFrameView/IsLocalFrameView

I forgot to update this when renaming FrameView to LocalFrameView in
https://chromium-review.googlesource.com/c/516862/

Bug:  637460 
Change-Id: I71e6b770746a58cde6e726fe6356c627c5b8d419
Reviewed-on: https://chromium-review.googlesource.com/520825
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Cr-Commit-Position: refs/heads/master@{#476217}
[modify] https://crrev.com/0d40f32a010e2dced9b08bfbb6258e4df6f5ca72/third_party/WebKit/Source/core/frame/FrameOrPlugin.h
[modify] https://crrev.com/0d40f32a010e2dced9b08bfbb6258e4df6f5ca72/third_party/WebKit/Source/core/frame/LocalFrameView.h
[modify] https://crrev.com/0d40f32a010e2dced9b08bfbb6258e4df6f5ca72/third_party/WebKit/Source/core/layout/LayoutPart.cpp
[modify] https://crrev.com/0d40f32a010e2dced9b08bfbb6258e4df6f5ca72/third_party/WebKit/Source/core/layout/ScrollAnchor.cpp
[modify] https://crrev.com/0d40f32a010e2dced9b08bfbb6258e4df6f5ca72/third_party/WebKit/Source/core/layout/ScrollAnchorTest.cpp
[modify] https://crrev.com/0d40f32a010e2dced9b08bfbb6258e4df6f5ca72/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
[modify] https://crrev.com/0d40f32a010e2dced9b08bfbb6258e4df6f5ca72/third_party/WebKit/Source/platform/PlatformFrameView.h
[modify] https://crrev.com/0d40f32a010e2dced9b08bfbb6258e4df6f5ca72/third_party/WebKit/Source/platform/scroll/ScrollableArea.h
[modify] https://crrev.com/0d40f32a010e2dced9b08bfbb6258e4df6f5ca72/third_party/WebKit/Source/web/ChromeClientImpl.cpp

Project Member

Comment 37 by bugdroid1@chromium.org, Jun 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c0f90a086a50d171a30947334dc6eeb77d811748

commit c0f90a086a50d171a30947334dc6eeb77d811748
Author: Joel Hockey <joelhockey@chromium.org>
Date: Fri Jun 02 03:59:45 2017

Add PluginView::Element, use non const ref.

Part of https://chromium-review.googlesource.com/c/520862/

Bug:  637460 
Change-Id: I66e4a3e323ebf04f9f0514ff395c54ede6ac87ec
Reviewed-on: https://chromium-review.googlesource.com/522462
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#476556}
[modify] https://crrev.com/c0f90a086a50d171a30947334dc6eeb77d811748/third_party/WebKit/Source/core/frame/LocalFrameClient.h
[modify] https://crrev.com/c0f90a086a50d171a30947334dc6eeb77d811748/third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp
[modify] https://crrev.com/c0f90a086a50d171a30947334dc6eeb77d811748/third_party/WebKit/Source/core/loader/EmptyClients.cpp
[modify] https://crrev.com/c0f90a086a50d171a30947334dc6eeb77d811748/third_party/WebKit/Source/core/loader/EmptyClients.h
[modify] https://crrev.com/c0f90a086a50d171a30947334dc6eeb77d811748/third_party/WebKit/Source/web/LocalFrameClientImpl.cpp
[modify] https://crrev.com/c0f90a086a50d171a30947334dc6eeb77d811748/third_party/WebKit/Source/web/LocalFrameClientImpl.h
[modify] https://crrev.com/c0f90a086a50d171a30947334dc6eeb77d811748/third_party/WebKit/Source/web/WebHelperPluginImpl.cpp
[modify] https://crrev.com/c0f90a086a50d171a30947334dc6eeb77d811748/third_party/WebKit/Source/web/WebPluginContainerImpl.cpp
[modify] https://crrev.com/c0f90a086a50d171a30947334dc6eeb77d811748/third_party/WebKit/Source/web/WebPluginContainerImpl.h

Project Member

Comment 38 by bugdroid1@chromium.org, Jun 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0a5249a589cf027a803e7538e591cd03fec053aa

commit 0a5249a589cf027a803e7538e591cd03fec053aa
Author: Joel Hockey <joelhockey@chromium.org>
Date: Wed Jun 07 08:17:07 2017

Only use deferred operation for plugin dispose.

This causes one bad codepath of:
Document::Shutdown =>
FrameView::Dispose =>
HTMLFrameOwnerElement::SetWidget(nullptr) =>
FrameView::Detach =>
FrameView::SetParentVisible(false) =>
FrameView::SetNeedsCompositingUpdate =>
PaintLayerCompositor::SetNeedsCompositingUpdate =>
DocumentLifecycle::EnsureStateAtMost(kLayoutClean) (ERROR HERE!)

Previously the SetWidget call gets deferred and the subsequent
FrameView::SetNeedsCompositingUpdate call does not call
PaintLayerCompositor since GetLayoutViewItem() is null once
Shutdown is completed and the deferred operations are done.

Now that SetWidget is done synchronously, the fix is to check
inside FrameView::SetNeedsCompositingUpdate whether document
is still attached before calling to PaintLayerCompositor.

Bug:  637460 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I9e6843f3fd8a4e2880822fc6bcb78c05c9c44a00
Reviewed-on: https://chromium-review.googlesource.com/507468
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477579}
[modify] https://crrev.com/0a5249a589cf027a803e7538e591cd03fec053aa/third_party/WebKit/Source/core/dom/ContainerNode.cpp
[modify] https://crrev.com/0a5249a589cf027a803e7538e591cd03fec053aa/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/0a5249a589cf027a803e7538e591cd03fec053aa/third_party/WebKit/Source/core/dom/Element.cpp
[modify] https://crrev.com/0a5249a589cf027a803e7538e591cd03fec053aa/third_party/WebKit/Source/core/frame/LocalFrameView.cpp
[modify] https://crrev.com/0a5249a589cf027a803e7538e591cd03fec053aa/third_party/WebKit/Source/core/frame/LocalFrameView.h
[modify] https://crrev.com/0a5249a589cf027a803e7538e591cd03fec053aa/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.cpp
[modify] https://crrev.com/0a5249a589cf027a803e7538e591cd03fec053aa/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.h
[modify] https://crrev.com/0a5249a589cf027a803e7538e591cd03fec053aa/third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp

Project Member

Comment 39 by bugdroid1@chromium.org, Jun 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2c98545af3b49261e020d4f1485c8ec77179ec0d

commit 2c98545af3b49261e020d4f1485c8ec77179ec0d
Author: Joel Hockey <joelhockey@chromium.org>
Date: Wed Jun 07 13:17:59 2017

Rename FrameOrPlugin (and Widget and FrameViewBase) to EmbeddedContentView

Basically:
  grep -r -l FrameOrPlugin third_party/WebKit/ |
  xargs perl -p -i -e 's/FrameOrPlugin/EmbeddedContentView/g'

followed by:
  git cl format

Renamed Layout[Part] and [Part]Painter to *EmbeddedContent*

LayoutPart -> LayoutEmbeddedContent
LayoutPartItem -> LayoutEmbeddedContentItem
LayoutPartTest -> LayoutEmbeddedContentTest
PartPainter -> EmbeddedContentPainter

Bug:  637460 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I4ed08e96e1730daf2e316be09c81acab60594e10
Reviewed-on: https://chromium-review.googlesource.com/517553
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Stefan Zager <szager@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477622}
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/LayoutTests/fast/events/touch/gesture/gesture-scroll-object-crash-expected.txt
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/LayoutTests/fast/events/touch/gesture/gesture-scroll-object-crash.html
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/LayoutTests/fast/forms/defer-updateFromElement-expected.txt
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/LayoutTests/fast/forms/defer-updateFromElement.html
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/dom/Element.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/dom/Node.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/editing/FindInPageCoordinates.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/editing/FrameCaret.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/editing/FrameSelection.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/editing/iterators/SimplifiedBackwardsTextIterator.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/editing/iterators/TextIterator.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/exported/WebFrameContentDumper.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/exported/WebNode.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/exported/WebPluginContainerBase.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/frame/BUILD.gn
[rename] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/frame/EmbeddedContentView.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/frame/Frame.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/frame/Frame.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/frame/FrameView.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/frame/LocalFrame.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/frame/LocalFrameView.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/frame/LocalFrameView.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/frame/RemoteFrame.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/frame/RemoteFrameView.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/html/HTMLEmbedElement.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/html/HTMLEmbedElement.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/html/HTMLFrameElementBase.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/html/HTMLObjectElement.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/html/HTMLObjectElement.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/html/HTMLPlugInElement.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/html/PluginDocument.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/input/EventHandler.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/input/ScrollManager.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/input/ScrollManager.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/inspector/InspectorLayerTreeAgent.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/HitTestCache.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/HitTestResult.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/HitTestResult.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/ImageQualityController.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[rename] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/LayoutEmbeddedContent.cpp
[rename] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/LayoutEmbeddedContent.h
[rename] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/LayoutEmbeddedContentTest.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/LayoutEmbeddedObject.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/LayoutEmbeddedObject.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/LayoutFrame.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/LayoutFrame.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/LayoutIFrame.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/LayoutIFrame.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/LayoutObject.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/LayoutObject.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/LayoutReplaced.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/LayoutScrollbar.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/LayoutTreeAsText.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/LayoutVideo.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/LayoutView.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/PaintInvalidationState.h
[add] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/api/LayoutEmbeddedContentItem.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/api/LayoutEmbeddedItem.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/api/LayoutItem.h
[delete] https://crrev.com/c83697f687b19a8e07e9958a3f7a9f03339606de/third_party/WebKit/Source/core/layout/api/LayoutPartItem.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/compositing/CompositingLayerAssigner.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/compositing/GraphicsLayerTreeBuilder.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/page/EventWithHitTestResults.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/page/scrolling/RootScrollerController.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/paint/BUILD.gn
[add] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/paint/EmbeddedContentPainter.cpp
[add] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/paint/EmbeddedContentPainter.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/paint/PaintLayerTest.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/paint/PaintPropertyTreePrinter.cpp
[delete] https://crrev.com/c83697f687b19a8e07e9958a3f7a9f03339606de/third_party/WebKit/Source/core/paint/PartPainter.cpp
[delete] https://crrev.com/c83697f687b19a8e07e9958a3f7a9f03339606de/third_party/WebKit/Source/core/paint/PartPainter.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/core/plugins/PluginView.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/modules/accessibility/AXObjectCacheImpl.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/platform/graphics/SquashingDisallowedReasons.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/platform/graphics/SquashingDisallowedReasons.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.mm
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/platform/scroll/ScrollableArea.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/platform/scroll/Scrollbar.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/platform/scroll/Scrollbar.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/web/ChromeClientImpl.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/web/ContextMenuClientImpl.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/web/RemoteFrameClientImpl.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/web/WebFrame.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/web/WebPluginContainerImpl.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/web/WebPluginContainerImpl.h
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/web/WebViewImpl.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/web/tests/ScrollingCoordinatorTest.cpp
[modify] https://crrev.com/2c98545af3b49261e020d4f1485c8ec77179ec0d/third_party/WebKit/Source/web/tests/WebFrameTest.cpp

Project Member

Comment 40 by bugdroid1@chromium.org, Jun 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2946ce1796dab9db6e624d26494964a51d5f377d

commit 2946ce1796dab9db6e624d26494964a51d5f377d
Author: Joel Hockey <joelhockey@chromium.org>
Date: Wed Jun 07 23:45:47 2017

Check is_attached_ explicitly rather than using ParentFrameView() == nullptr as proxy

Bug:  637460 
Change-Id: I55463e07644a7ad9ebd68ed3985135ee0795f31e
Reviewed-on: https://chromium-review.googlesource.com/513702
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477806}
[modify] https://crrev.com/2946ce1796dab9db6e624d26494964a51d5f377d/third_party/WebKit/Source/core/exported/WebPluginContainerImpl.cpp
[modify] https://crrev.com/2946ce1796dab9db6e624d26494964a51d5f377d/third_party/WebKit/Source/core/exported/WebPluginContainerImpl.h

Project Member

Comment 41 by bugdroid1@chromium.org, Jun 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ecdac5cb5eea885c5bdeb80e1d5a5d10de412b8d

commit ecdac5cb5eea885c5bdeb80e1d5a5d10de412b8d
Author: Joel Hockey <joelhockey@chromium.org>
Date: Sat Jun 10 01:54:42 2017

Use FrameTree for UpdateGeometries rather than registering LayoutPart.

FrameOrPlugin has added new method OwnerLayoutObject to allow
access to remote frame and plugin layout objects.

Bug:  637460 
Change-Id: Ie13388fb8911b401b067fd077ae0f71eb5981850
Reviewed-on: https://chromium-review.googlesource.com/520862
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Stefan Zager <szager@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#478497}
[modify] https://crrev.com/ecdac5cb5eea885c5bdeb80e1d5a5d10de412b8d/third_party/WebKit/Source/core/exported/WebPluginContainerImpl.cpp
[modify] https://crrev.com/ecdac5cb5eea885c5bdeb80e1d5a5d10de412b8d/third_party/WebKit/Source/core/exported/WebPluginContainerImpl.h
[modify] https://crrev.com/ecdac5cb5eea885c5bdeb80e1d5a5d10de412b8d/third_party/WebKit/Source/core/frame/EmbeddedContentView.h
[modify] https://crrev.com/ecdac5cb5eea885c5bdeb80e1d5a5d10de412b8d/third_party/WebKit/Source/core/frame/Frame.cpp
[modify] https://crrev.com/ecdac5cb5eea885c5bdeb80e1d5a5d10de412b8d/third_party/WebKit/Source/core/frame/LocalFrameView.cpp
[modify] https://crrev.com/ecdac5cb5eea885c5bdeb80e1d5a5d10de412b8d/third_party/WebKit/Source/core/frame/LocalFrameView.h
[modify] https://crrev.com/ecdac5cb5eea885c5bdeb80e1d5a5d10de412b8d/third_party/WebKit/Source/core/frame/RemoteFrameView.cpp
[modify] https://crrev.com/ecdac5cb5eea885c5bdeb80e1d5a5d10de412b8d/third_party/WebKit/Source/core/frame/RemoteFrameView.h
[modify] https://crrev.com/ecdac5cb5eea885c5bdeb80e1d5a5d10de412b8d/third_party/WebKit/Source/core/layout/LayoutEmbeddedContent.cpp

Project Member

Comment 42 by bugdroid1@chromium.org, Jun 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7fd43c8cf570aa79025c8fe22cf5c7dad2871402

commit 7fd43c8cf570aa79025c8fe22cf5c7dad2871402
Author: Joel Hockey <joelhockey@chromium.org>
Date: Mon Jun 12 10:14:31 2017

Rename [Attach|Detach] to *[To|From]Layout

Follow up from comment on
https://chromium-review.googlesource.com/c/507468/

Bug:  637460 
Change-Id: Ic478edd7c0d5e40a7b8d9236003f44e25a39fea6
Reviewed-on: https://chromium-review.googlesource.com/530445
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#478575}
[modify] https://crrev.com/7fd43c8cf570aa79025c8fe22cf5c7dad2871402/third_party/WebKit/Source/core/exported/WebPluginContainerImpl.cpp
[modify] https://crrev.com/7fd43c8cf570aa79025c8fe22cf5c7dad2871402/third_party/WebKit/Source/core/exported/WebPluginContainerImpl.h
[modify] https://crrev.com/7fd43c8cf570aa79025c8fe22cf5c7dad2871402/third_party/WebKit/Source/core/frame/EmbeddedContentView.h
[modify] https://crrev.com/7fd43c8cf570aa79025c8fe22cf5c7dad2871402/third_party/WebKit/Source/core/frame/LocalFrameView.cpp
[modify] https://crrev.com/7fd43c8cf570aa79025c8fe22cf5c7dad2871402/third_party/WebKit/Source/core/frame/LocalFrameView.h
[modify] https://crrev.com/7fd43c8cf570aa79025c8fe22cf5c7dad2871402/third_party/WebKit/Source/core/frame/RemoteFrameView.cpp
[modify] https://crrev.com/7fd43c8cf570aa79025c8fe22cf5c7dad2871402/third_party/WebKit/Source/core/frame/RemoteFrameView.h
[modify] https://crrev.com/7fd43c8cf570aa79025c8fe22cf5c7dad2871402/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.cpp

Status: Fixed (was: Started)
This work is now complete.

There have been intermittent crashes related to this code change, but they seem to diminishing and they are being tracked in http://crbug.com/729196.

Project Member

Comment 44 by bugdroid1@chromium.org, Jul 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c9040b477f5dd09cc29b141854c6a4da942d537f

commit c9040b477f5dd09cc29b141854c6a4da942d537f
Author: Joel Hockey <joelhockey@chromium.org>
Date: Wed Jul 12 05:16:33 2017

Push UpdateGeometry logic from Layout to EmbeddedContentView.

Code in LayoutEmbeddedContent::UpdateGeometry which is checking
whether view is LocalFrameView or PluginView and then applying
type-specific logic  is moved into new virtual method
EmbeddedContentView::UpdateGeometry and implemented by the
relevant subtype (LocalFrameView, PluginView).

Update RootScrollerController::UpdateIFrameGeometryAndLayoutSize
to call LocalFrameView::UpdateGeometry rather than
calling it on the Layout.

Remove PluginView::GeometryMayHaveChanged, instead
call plugin->ReportGeometry from PluginView::SetFrameRects.
PluginView::GeometryMayHaveChanged was called as a special
case in LayoutEmbeddedContent::UpdateGeometry, but it can be
handled by PluginView::SetFrameRect which is also
called at the same time.

Remove unneeded protector from
LayoutEmbeddedContent::UpdateGeometry.

Bug:  637460 
Change-Id: I2f9b4cab874e167afe9e4fb860351e92881f7bc6
Reviewed-on: https://chromium-review.googlesource.com/527862
Reviewed-by: David Bokan <bokan@chromium.org>
Reviewed-by: Stefan Zager <szager@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485866}
[modify] https://crrev.com/c9040b477f5dd09cc29b141854c6a4da942d537f/third_party/WebKit/Source/core/exported/WebPluginContainerImpl.cpp
[modify] https://crrev.com/c9040b477f5dd09cc29b141854c6a4da942d537f/third_party/WebKit/Source/core/exported/WebPluginContainerImpl.h
[modify] https://crrev.com/c9040b477f5dd09cc29b141854c6a4da942d537f/third_party/WebKit/Source/core/frame/EmbeddedContentView.h
[modify] https://crrev.com/c9040b477f5dd09cc29b141854c6a4da942d537f/third_party/WebKit/Source/core/frame/LocalFrameView.cpp
[modify] https://crrev.com/c9040b477f5dd09cc29b141854c6a4da942d537f/third_party/WebKit/Source/core/frame/LocalFrameView.h
[modify] https://crrev.com/c9040b477f5dd09cc29b141854c6a4da942d537f/third_party/WebKit/Source/core/frame/RemoteFrameView.cpp
[modify] https://crrev.com/c9040b477f5dd09cc29b141854c6a4da942d537f/third_party/WebKit/Source/core/frame/RemoteFrameView.h
[modify] https://crrev.com/c9040b477f5dd09cc29b141854c6a4da942d537f/third_party/WebKit/Source/core/layout/LayoutEmbeddedContent.cpp
[modify] https://crrev.com/c9040b477f5dd09cc29b141854c6a4da942d537f/third_party/WebKit/Source/core/layout/LayoutEmbeddedContent.h
[modify] https://crrev.com/c9040b477f5dd09cc29b141854c6a4da942d537f/third_party/WebKit/Source/core/page/scrolling/RootScrollerController.cpp
[modify] https://crrev.com/c9040b477f5dd09cc29b141854c6a4da942d537f/third_party/WebKit/Source/core/plugins/PluginView.h

Sign in to add a comment