Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(32)

Issue 2860903003: Propagate viewport intersection across OOPIFs at the correct time (Closed)

Created:
3 years, 7 months ago by kenrb
Modified:
3 years, 7 months ago
Reviewers:
szager1, dcheng
CC:
chromium-reviews, blink-reviews, blink-reviews-frames_chromium.org, site-isolation-reviews_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Propagate viewport intersection across OOPIFs at the correct time This corrects a couple of issues with how viewport intersection rects were being sent to OOPIF processes from their parents, which was causing frame throttling bugs: 1. The update is now triggered from the parent FrameView's UpdateViewportIntersectionsForSubtree, rather than the RemoteFrameView's frameRectsChanged. Formerly, this would cause intersection calculations in a dirty layout tree, and also fail to propagate intersection rect changes in the case of nested OOPIFs. 2. Viewport intersections are now updated properly when the iframe is scrolled off of screen. Previously it would return early when an OOPIF had no viewport intersection, which was wrong. BUG=682307, 712320 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation Review-Url: https://codereview.chromium.org/2860903003 Cr-Commit-Position: refs/heads/master@{#469977} Committed: https://chromium.googlesource.com/chromium/src/+/321a171abcca381e3ef72d01996e4ae4dd860212

Patch Set 1 #

Patch Set 2 : Rebase #

Total comments: 7

Patch Set 3 : DCHECK removed. #

Messages

Total messages: 25 (14 generated)
kenrb
szager@: PTAL? The test is an adapted version of cross-origin-subframe.html.
3 years, 7 months ago (2017-05-04 17:27:44 UTC) #8
szager1
https://codereview.chromium.org/2860903003/diff/20001/third_party/WebKit/Source/core/frame/RemoteFrameView.cpp File third_party/WebKit/Source/core/frame/RemoteFrameView.cpp (right): https://codereview.chromium.org/2860903003/diff/20001/third_party/WebKit/Source/core/frame/RemoteFrameView.cpp#newcode62 third_party/WebKit/Source/core/frame/RemoteFrameView.cpp:62: IntRect viewport_intersection; Should this be initialized to last_viewport_intersection_?
3 years, 7 months ago (2017-05-04 19:26:06 UTC) #11
kenrb
https://codereview.chromium.org/2860903003/diff/20001/third_party/WebKit/Source/core/frame/RemoteFrameView.cpp File third_party/WebKit/Source/core/frame/RemoteFrameView.cpp (right): https://codereview.chromium.org/2860903003/diff/20001/third_party/WebKit/Source/core/frame/RemoteFrameView.cpp#newcode62 third_party/WebKit/Source/core/frame/RemoteFrameView.cpp:62: IntRect viewport_intersection; On 2017/05/04 19:26:06, szager1 wrote: > Should ...
3 years, 7 months ago (2017-05-04 19:47:10 UTC) #12
szager1
lgtm, sorry the tests are so hard to write :( You still need OWNERS lgtm
3 years, 7 months ago (2017-05-04 20:29:46 UTC) #13
kenrb
Thanks for the review. dcheng@: PTAL as a Blink OWNER? Feel free to punt if ...
3 years, 7 months ago (2017-05-04 20:45:30 UTC) #15
dcheng
https://codereview.chromium.org/2860903003/diff/20001/third_party/WebKit/Source/core/frame/FrameView.cpp File third_party/WebKit/Source/core/frame/FrameView.cpp (right): https://codereview.chromium.org/2860903003/diff/20001/third_party/WebKit/Source/core/frame/FrameView.cpp#newcode4940 third_party/WebKit/Source/core/frame/FrameView.cpp:4940: DCHECK(child->IsRemoteFrame() || child->IsLocalFrame()); Isn't this DCHECK always going to ...
3 years, 7 months ago (2017-05-05 18:25:14 UTC) #16
kenrb
dcheng: Patch updated to remove the DCHECK. https://codereview.chromium.org/2860903003/diff/20001/third_party/WebKit/Source/core/frame/FrameView.cpp File third_party/WebKit/Source/core/frame/FrameView.cpp (right): https://codereview.chromium.org/2860903003/diff/20001/third_party/WebKit/Source/core/frame/FrameView.cpp#newcode4940 third_party/WebKit/Source/core/frame/FrameView.cpp:4940: DCHECK(child->IsRemoteFrame() || ...
3 years, 7 months ago (2017-05-05 19:01:31 UTC) #17
dcheng
LGTM https://codereview.chromium.org/2860903003/diff/20001/third_party/WebKit/Source/core/frame/FrameView.cpp File third_party/WebKit/Source/core/frame/FrameView.cpp (right): https://codereview.chromium.org/2860903003/diff/20001/third_party/WebKit/Source/core/frame/FrameView.cpp#newcode4943 third_party/WebKit/Source/core/frame/FrameView.cpp:4943: view->UpdateRemoteViewportIntersection(); On 2017/05/05 19:01:31, kenrb wrote: > On ...
3 years, 7 months ago (2017-05-05 22:47:53 UTC) #18
kenrb
On 2017/05/05 22:47:53, dcheng wrote: > LGTM > > https://codereview.chromium.org/2860903003/diff/20001/third_party/WebKit/Source/core/frame/FrameView.cpp > File third_party/WebKit/Source/core/frame/FrameView.cpp (right): > ...
3 years, 7 months ago (2017-05-08 12:23:14 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2860903003/40001
3 years, 7 months ago (2017-05-08 12:23:34 UTC) #22
commit-bot: I haz the power
3 years, 7 months ago (2017-05-08 14:13:50 UTC) #25
Message was sent while issue was closed.
Committed patchset #3 (id:40001) as
https://chromium.googlesource.com/chromium/src/+/321a171abcca381e3ef72d01996e...

Powered by Google App Engine
This is Rietveld 408576698