OOPIF: Replicate dynamic window.name updates.
This CL adds the plumbing to replicate window.name updates to the
associated RenderFrameProxies. This consists of:
- sending a FrameHostMsg_DidChangeName to the browser process whenever
there's a window.name update in JS
- recording the changed name in the frame's FrameReplicationState
- forwarding the updated name to any of the frame's proxies in other
renderer processes via FrameMsg_DidUpdateName.
This is a Chromium-only patch since the plumbing for getting
window.name notifications out of Blink was already in place and used
in <webview>. <webview>'s Chromium-side window.name code is
refactored to use the new plumbing in this CL.
BUG= 426512
Review URL: https://codereview.chromium.org/974723002
Cr-Commit-Position: refs/heads/master@{#319823}
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index e89f17a..8d6c6a0 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -3947,6 +3947,12 @@
NotifyNavigationStateChanged(INVALIDATE_TYPE_URL);
}
+void WebContentsImpl::DidChangeName(RenderFrameHost* render_frame_host,
+ const std::string& name) {
+ FOR_EACH_OBSERVER(WebContentsObserver, observers_,
+ FrameNameChanged(render_frame_host, name));
+}
+
void WebContentsImpl::DidDisownOpener(RenderFrameHost* render_frame_host) {
// No action is necessary if the opener has already been cleared.
if (!opener_)