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

Issue 2310563002: Adds routed interface support between RenderFrameHost and RenderFrame (Closed)

Created:
4 years, 3 months ago by Ken Rockot(use gerrit already)
Modified:
4 years, 3 months ago
CC:
Aaron Boodman, abarth-chromium, chromium-reviews, creis+watch_chromium.org, darin (slow to review), darin-cc_chromium.org, jam, mlamouri+watch-content_chromium.org, nasko+codewatch_chromium.org, qsr+mojo_chromium.org, viettrungluu+watch_chromium.org, yzshen+watch_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Adds associated interface support between RenderFrameHost and RenderFrame. Introduces a new content::AssociatedInterfaceRegistry and content::AssociatedInterfaceProvider to serve as Channel-associated interface counterparts to their shell namesakes. RenderFrameHost and RenderFrame each have both of these things on them, and they're routed to the other side using a new RouteProvider interface buried in RenderProcessHostImpl / ChildThreadImpl on either end. Also adds a WebContentsInterfaceRegistry to every WebContents, and a helper WebContentsFrameBindingSet<T> to allow consumers to very easily manage the lifetime of associated interface bindings for each frame in a WebContents. See the follow-up patch for example usage. Part a series of CLs to enable and demonstrate WebContents associated interfaces: 1. https://codereview.chromium.org/2309513002 2. https://codereview.chromium.org/2316963005 3. This CL 4. https://codereview.chromium.org/2310583002 BUG=612500 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation Committed: https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10 Cr-Commit-Position: refs/heads/master@{#418717}

Patch Set 1 #

Total comments: 1

Patch Set 2 : . #

Patch Set 3 : . #

Patch Set 4 : rebase #

Patch Set 5 : rebase #

Patch Set 6 : . #

Patch Set 7 : . #

Total comments: 22

Patch Set 8 : . #

Patch Set 9 : . #

Patch Set 10 : rebase #

Total comments: 3

Patch Set 11 : . #

Total comments: 1

Patch Set 12 : nit #

Unified diffs Side-by-side diffs Delta from patch set Stats (+870 lines, -68 lines) Patch
M content/browser/frame_host/render_frame_host_delegate.h View 1 2 3 4 5 6 7 8 9 10 3 chunks +8 lines, -0 lines 0 comments Download
M content/browser/frame_host/render_frame_host_impl.h View 1 2 3 4 5 6 7 8 9 10 4 chunks +8 lines, -0 lines 0 comments Download
M content/browser/frame_host/render_frame_host_impl.cc View 1 2 3 4 5 6 7 8 9 10 5 chunks +36 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_process_host_impl.h View 1 2 3 4 5 6 7 8 9 10 11 8 chunks +29 lines, -6 lines 0 comments Download
M content/browser/renderer_host/render_process_host_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 14 chunks +82 lines, -39 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.h View 1 2 3 4 5 6 7 8 9 10 5 chunks +20 lines, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.cc View 1 2 3 4 5 6 7 8 9 10 5 chunks +29 lines, -0 lines 0 comments Download
M content/child/child_thread_impl.h View 1 2 3 4 5 6 7 8 9 10 4 chunks +25 lines, -1 line 0 comments Download
M content/child/child_thread_impl.cc View 1 2 3 4 5 6 7 5 chunks +43 lines, -2 lines 0 comments Download
M content/common/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 2 chunks +5 lines, -0 lines 0 comments Download
A content/common/associated_interface_provider_impl.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +33 lines, -0 lines 0 comments Download
A content/common/associated_interface_provider_impl.cc View 1 2 3 4 5 6 7 1 chunk +28 lines, -0 lines 0 comments Download
A content/common/associated_interface_registry_impl.h View 1 2 3 4 5 1 chunk +37 lines, -0 lines 0 comments Download
A content/common/associated_interface_registry_impl.cc View 1 2 3 4 5 1 chunk +38 lines, -0 lines 0 comments Download
A content/common/associated_interfaces.mojom View 1 2 3 4 5 6 7 8 9 10 1 chunk +21 lines, -0 lines 0 comments Download
M content/public/browser/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -0 lines 0 comments Download
M content/public/browser/render_frame_host.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +6 lines, -0 lines 0 comments Download
A content/public/browser/web_contents_binding_set.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +156 lines, -0 lines 0 comments Download
A content/public/browser/web_contents_binding_set.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +43 lines, -0 lines 0 comments Download
M content/public/common/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -0 lines 0 comments Download
A content/public/common/associated_interface_provider.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +56 lines, -0 lines 0 comments Download
A content/public/common/associated_interface_registry.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +64 lines, -0 lines 0 comments Download
M content/public/renderer/render_frame.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +11 lines, -0 lines 0 comments Download
M content/renderer/render_frame_impl.h View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +8 lines, -0 lines 0 comments Download
M content/renderer/render_frame_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +22 lines, -0 lines 0 comments Download
M ipc/ipc_channel_mojo.cc View 1 2 3 4 5 1 chunk +2 lines, -0 lines 0 comments Download
M ipc/ipc_channel_mojo_unittest.cc View 1 2 3 4 5 2 chunks +7 lines, -5 lines 0 comments Download
M ipc/ipc_channel_proxy.h View 1 2 3 4 5 2 chunks +6 lines, -0 lines 0 comments Download
M ipc/ipc_channel_proxy.cc View 1 2 3 4 5 2 chunks +17 lines, -0 lines 0 comments Download
M ipc/ipc_listener.h View 1 2 3 4 5 2 chunks +9 lines, -0 lines 0 comments Download
M ipc/ipc_mojo_bootstrap.cc View 1 2 3 4 5 6 7 8 4 chunks +10 lines, -15 lines 0 comments Download
M ipc/message_router.h View 1 2 3 4 5 6 7 1 chunk +3 lines, -0 lines 0 comments Download
M ipc/message_router.cc View 1 2 3 4 5 1 chunk +4 lines, -0 lines 0 comments Download

Messages

Total messages: 78 (51 generated)
Ken Rockot(use gerrit already)
Apologies for the size. I could split it into two patches, one for host->frame and ...
4 years, 3 months ago (2016-09-02 20:12:30 UTC) #6
tibell
https://codereview.chromium.org/2310563002/diff/1/content/public/renderer/render_frame.h File content/public/renderer/render_frame.h (right): https://codereview.chromium.org/2310563002/diff/1/content/public/renderer/render_frame.h#newcode167 content/public/renderer/render_frame.h:167: virtual void AddRoutedInterface( It's a bit unfortunate that we ...
4 years, 3 months ago (2016-09-05 00:32:13 UTC) #10
Ken Rockot(use gerrit already)
Note that InterfaceRegistry's interface doesn't support associated interfaces anyway, and long-term I don't think we ...
4 years, 3 months ago (2016-09-05 00:46:05 UTC) #11
Sam McNally
On 2016/09/05 00:46:05, Ken Rockot wrote: > Note that InterfaceRegistry's interface doesn't support associated > ...
4 years, 3 months ago (2016-09-07 01:39:33 UTC) #18
Ken Rockot(use gerrit already)
On Tue, Sep 6, 2016 at 6:39 PM, <sammc@chromium.org> wrote: > On 2016/09/05 00:46:05, Ken ...
4 years, 3 months ago (2016-09-07 01:50:11 UTC) #19
tibell
There are quite a few new types/concepts here so I tried to rationalize them for ...
4 years, 3 months ago (2016-09-07 07:30:06 UTC) #20
Sam McNally
On 2016/09/07 01:50:11, Ken Rockot wrote: > On Tue, Sep 6, 2016 at 6:39 PM, ...
4 years, 3 months ago (2016-09-07 07:39:05 UTC) #21
Ken Rockot(use gerrit already)
On 2016/09/07 at 07:30:06, tibell wrote: > There are quite a few new types/concepts here ...
4 years, 3 months ago (2016-09-07 13:42:13 UTC) #22
Ken Rockot(use gerrit already)
On 2016/09/07 at 07:39:05, sammc wrote: > On 2016/09/07 01:50:11, Ken Rockot wrote: > > ...
4 years, 3 months ago (2016-09-07 13:44:31 UTC) #23
Ken Rockot(use gerrit already)
Please take another look if you get a chance before our chat today. I've introduced ...
4 years, 3 months ago (2016-09-08 22:50:46 UTC) #29
tibell
lgtm
4 years, 3 months ago (2016-09-09 04:05:51 UTC) #30
Sam McNally
LGTM https://codereview.chromium.org/2310563002/diff/120001/content/browser/renderer_host/render_process_host_impl.cc File content/browser/renderer_host/render_process_host_impl.cc (right): https://codereview.chromium.org/2310563002/diff/120001/content/browser/renderer_host/render_process_host_impl.cc#newcode847 content/browser/renderer_host/render_process_host_impl.cc:847: while (!queued_messages_.empty()) queued_messages_.clear(); https://codereview.chromium.org/2310563002/diff/120001/content/browser/renderer_host/render_process_host_impl.cc#newcode976 content/browser/renderer_host/render_process_host_impl.cc:976: // Push any ...
4 years, 3 months ago (2016-09-09 05:33:15 UTC) #31
Ken Rockot(use gerrit already)
https://codereview.chromium.org/2310563002/diff/120001/content/browser/renderer_host/render_process_host_impl.cc File content/browser/renderer_host/render_process_host_impl.cc (right): https://codereview.chromium.org/2310563002/diff/120001/content/browser/renderer_host/render_process_host_impl.cc#newcode847 content/browser/renderer_host/render_process_host_impl.cc:847: while (!queued_messages_.empty()) On 2016/09/09 at 05:33:14, Sam McNally wrote: ...
4 years, 3 months ago (2016-09-09 16:01:50 UTC) #39
Ken Rockot(use gerrit already)
Yuzhu, would you mind please looking at the changes to ipc_mojo_bootstrap.cc? They fix a race ...
4 years, 3 months ago (2016-09-09 16:58:42 UTC) #43
yzshen1
On 2016/09/09 16:58:42, Ken Rockot wrote: > Yuzhu, would you mind please looking at the ...
4 years, 3 months ago (2016-09-12 18:06:51 UTC) #48
Ken Rockot(use gerrit already)
On 2016/09/12 at 18:06:51, yzshen wrote: > On 2016/09/09 16:58:42, Ken Rockot wrote: > > ...
4 years, 3 months ago (2016-09-12 21:33:02 UTC) #49
yzshen1
On 2016/09/12 21:33:02, Ken Rockot wrote: > On 2016/09/12 at 18:06:51, yzshen wrote: > > ...
4 years, 3 months ago (2016-09-12 22:18:31 UTC) #50
jam
lgtm https://codereview.chromium.org/2310563002/diff/200001/content/public/renderer/render_frame.h File content/public/renderer/render_frame.h (right): https://codereview.chromium.org/2310563002/diff/200001/content/public/renderer/render_frame.h#newcode18 content/public/renderer/render_frame.h:18: #include "ipc/ipc_sync_channel.h" nit: not needed https://codereview.chromium.org/2310563002/diff/200001/content/renderer/render_frame_impl.cc File content/renderer/render_frame_impl.cc ...
4 years, 3 months ago (2016-09-14 17:05:06 UTC) #59
jam
https://codereview.chromium.org/2310563002/diff/200001/content/public/renderer/render_frame.h File content/public/renderer/render_frame.h (right): https://codereview.chromium.org/2310563002/diff/200001/content/public/renderer/render_frame.h#newcode18 content/public/renderer/render_frame.h:18: #include "ipc/ipc_sync_channel.h" On 2016/09/14 17:05:06, jam wrote: > nit: ...
4 years, 3 months ago (2016-09-14 17:05:59 UTC) #60
Ken Rockot(use gerrit already)
+tsepez@ for mojom review
4 years, 3 months ago (2016-09-14 17:40:36 UTC) #62
Tom Sepez
Mojom LGTM
4 years, 3 months ago (2016-09-14 17:47:40 UTC) #63
nasko
Drive-by comment. https://codereview.chromium.org/2310563002/diff/240001/content/public/renderer/render_frame.h File content/public/renderer/render_frame.h (right): https://codereview.chromium.org/2310563002/diff/240001/content/public/renderer/render_frame.h#newcode167 content/public/renderer/render_frame.h:167: virtual AssociatedInterfaceProvider* GetRemoteAssociatedInterfaces() = 0; Nothing in ...
4 years, 3 months ago (2016-09-14 18:42:24 UTC) #65
Ken Rockot(use gerrit already)
On 2016/09/14 at 18:42:24, nasko wrote: > Drive-by comment. > > https://codereview.chromium.org/2310563002/diff/240001/content/public/renderer/render_frame.h > File content/public/renderer/render_frame.h ...
4 years, 3 months ago (2016-09-14 19:08:23 UTC) #66
nasko
On 2016/09/14 19:08:23, Ken Rockot wrote: > On 2016/09/14 at 18:42:24, nasko wrote: > > ...
4 years, 3 months ago (2016-09-14 20:16:04 UTC) #69
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/2310563002/260001
4 years, 3 months ago (2016-09-14 22:43:24 UTC) #74
commit-bot: I haz the power
Committed patchset #12 (id:260001)
4 years, 3 months ago (2016-09-15 00:10:10 UTC) #76
commit-bot: I haz the power
4 years, 3 months ago (2016-09-15 00:14:33 UTC) #78
Message was sent while issue was closed.
Patchset 12 (id:??) landed as
https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10
Cr-Commit-Position: refs/heads/master@{#418717}

Powered by Google App Engine
This is Rietveld 408576698