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

Issue 1268153002: Refactor CreateOpenerProxies to support updates to frame openers. (Closed)

Created:
5 years, 4 months ago by alexmos
Modified:
5 years, 4 months ago
Reviewers:
Charlie Reis
CC:
chromium-reviews, jam, nasko+codewatch_chromium.org, creis+watch_chromium.org, darin-cc_chromium.org, site-isolation-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Refactor CreateOpenerProxies to support updates to frame openers. Currently, CreateOpenerProxies assumes that (1) each opener chain can be recursively traversed until hitting a node with no opener, and (2) subframes can't have openers. Neither (1) nor (2) will hold once we propagate frame opener updates (that happen via window.open) to the browser process. To address (1), this CL changes the recursive traversal in CreateOpenerProxies to a BFS traversal that is resilient to potential cycles on the opener chain. To address (2), openers are examined for all nodes on a given FrameTree, rather than just for the root node. If the opener graph contains cycles, some proxies created by CreateOpenerProxies may not have their opener_routing_id available at creation time. In a future CL, once opener update IPCs are implemented, these proxies will need to set their openers in a second pass (note that this is expected to be very rare, hence an extra IPC should be ok). This CL prepares for this by adding logic to collect nodes involved in cycles that will need this extra processing. BUG=225940 Committed: https://crrev.com/ce5cab104935d3fedcb3c6af2aec0311be43a812 Cr-Commit-Position: refs/heads/master@{#342221}

Patch Set 1 #

Patch Set 2 : Rebase #

Patch Set 3 : #

Total comments: 25

Patch Set 4 : Charlie's comments #

Total comments: 4

Patch Set 5 : Charlie's nits #

Unified diffs Side-by-side diffs Delta from patch set Stats (+274 lines, -10 lines) Patch
M content/browser/frame_host/render_frame_host_manager.h View 1 2 3 1 chunk +18 lines, -0 lines 0 comments Download
M content/browser/frame_host/render_frame_host_manager.cc View 1 2 3 4 2 chunks +81 lines, -10 lines 0 comments Download
M content/browser/frame_host/render_frame_host_manager_unittest.cc View 1 2 3 4 2 chunks +175 lines, -0 lines 0 comments Download

Messages

Total messages: 15 (5 generated)
alexmos
Hey Charlie, what do you think about this? This tries to prepare CreateOpenerProxies to handle ...
5 years, 4 months ago (2015-08-05 17:45:05 UTC) #2
Charlie Reis
Great explanations-- thanks. So much complexity from such a simple thing... :) (I suppose we ...
5 years, 4 months ago (2015-08-05 23:59:10 UTC) #3
alexmos
https://codereview.chromium.org/1268153002/diff/40001/content/browser/frame_host/render_frame_host_manager.cc File content/browser/frame_host/render_frame_host_manager.cc (right): https://codereview.chromium.org/1268153002/diff/40001/content/browser/frame_host/render_frame_host_manager.cc#newcode172 content/browser/frame_host/render_frame_host_manager.cc:172: namespace { On 2015/08/05 23:59:09, Charlie Reis wrote: > ...
5 years, 4 months ago (2015-08-06 17:05:40 UTC) #4
Charlie Reis
Great. LGTM with nits. https://codereview.chromium.org/1268153002/diff/40001/content/browser/frame_host/render_frame_host_manager.cc File content/browser/frame_host/render_frame_host_manager.cc (right): https://codereview.chromium.org/1268153002/diff/40001/content/browser/frame_host/render_frame_host_manager.cc#newcode185 content/browser/frame_host/render_frame_host_manager.cc:185: FrameTreeNode* node) { On 2015/08/06 ...
5 years, 4 months ago (2015-08-06 17:35:06 UTC) #5
alexmos
Thanks! https://codereview.chromium.org/1268153002/diff/60001/content/browser/frame_host/render_frame_host_manager.cc File content/browser/frame_host/render_frame_host_manager.cc (right): https://codereview.chromium.org/1268153002/diff/60001/content/browser/frame_host/render_frame_host_manager.cc#newcode52 content/browser/frame_host/render_frame_host_manager.cc:52: // Helper function to add the FrameTree of ...
5 years, 4 months ago (2015-08-06 17:42:57 UTC) #6
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1268153002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1268153002/80001
5 years, 4 months ago (2015-08-06 20:13:32 UTC) #9
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_rel_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/89948)
5 years, 4 months ago (2015-08-06 21:40:23 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1268153002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1268153002/80001
5 years, 4 months ago (2015-08-06 22:00:39 UTC) #13
commit-bot: I haz the power
Committed patchset #5 (id:80001)
5 years, 4 months ago (2015-08-06 22:57:32 UTC) #14
commit-bot: I haz the power
5 years, 4 months ago (2015-08-06 22:58:08 UTC) #15
Message was sent while issue was closed.
Patchset 5 (id:??) landed as
https://crrev.com/ce5cab104935d3fedcb3c6af2aec0311be43a812
Cr-Commit-Position: refs/heads/master@{#342221}

Powered by Google App Engine
This is Rietveld 408576698