| Index: content/browser/web_contents/web_contents_impl.h
|
| diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
|
| index ef56b7d756f7ead6568d15ea4d635612cdac7c00..e6feb0576e08ba51316e911862d204e8b1ea0d8b 100644
|
| --- a/content/browser/web_contents/web_contents_impl.h
|
| +++ b/content/browser/web_contents/web_contents_impl.h
|
| @@ -512,12 +512,15 @@ class CONTENT_EXPORT WebContentsImpl
|
| blink::WebPopupType popup_type) override;
|
| void CreateNewFullscreenWidget(int32_t render_process_id,
|
| int32_t route_id) override;
|
| - void ShowCreatedWindow(int route_id,
|
| + void ShowCreatedWindow(int process_id,
|
| + int route_id,
|
| WindowOpenDisposition disposition,
|
| const gfx::Rect& initial_rect,
|
| bool user_gesture) override;
|
| - void ShowCreatedWidget(int route_id, const gfx::Rect& initial_rect) override;
|
| - void ShowCreatedFullscreenWidget(int route_id) override;
|
| + void ShowCreatedWidget(int process_id,
|
| + int route_id,
|
| + const gfx::Rect& initial_rect) override;
|
| + void ShowCreatedFullscreenWidget(int process_id, int route_id) override;
|
| void RequestMediaAccessPermission(
|
| const MediaStreamRequest& request,
|
| const MediaResponseCallback& callback) override;
|
| @@ -779,6 +782,10 @@ private:
|
| FRIEND_TEST_ALL_PREFIXES(NavigationControllerTest, HistoryNavigate);
|
| FRIEND_TEST_ALL_PREFIXES(RenderFrameHostManagerTest, PageDoesBackAndReload);
|
| FRIEND_TEST_ALL_PREFIXES(SitePerProcessBrowserTest, CrossSiteIframe);
|
| + FRIEND_TEST_ALL_PREFIXES(SitePerProcessBrowserTest,
|
| + TwoSubframesCreatePopupsSimultaneously);
|
| + FRIEND_TEST_ALL_PREFIXES(SitePerProcessBrowserTest,
|
| + TwoSubframesCreatePopupMenuWidgetsSimultaneously);
|
| FRIEND_TEST_ALL_PREFIXES(SitePerProcessAccessibilityBrowserTest,
|
| CrossSiteIframeAccessibility);
|
| FRIEND_TEST_ALL_PREFIXES(WebContentsImplBrowserTest,
|
| @@ -997,18 +1004,19 @@ private:
|
| blink::WebPopupType popup_type);
|
|
|
| // Helper for ShowCreatedWidget/ShowCreatedFullscreenWidget.
|
| - void ShowCreatedWidget(int route_id,
|
| + void ShowCreatedWidget(int process_id,
|
| + int route_id,
|
| bool is_fullscreen,
|
| const gfx::Rect& initial_rect);
|
|
|
| // Finds the new RenderWidgetHost and returns it. Note that this can only be
|
| // called once as this call also removes it from the internal map.
|
| - RenderWidgetHostView* GetCreatedWidget(int route_id);
|
| + RenderWidgetHostView* GetCreatedWidget(int process_id, int route_id);
|
|
|
| // Finds the new WebContentsImpl by route_id, initializes it for
|
| // renderer-initiated creation, and returns it. Note that this can only be
|
| // called once as this call also removes it from the internal map.
|
| - WebContentsImpl* GetCreatedWindow(int route_id);
|
| + WebContentsImpl* GetCreatedWindow(int process_id, int route_id);
|
|
|
| // Sends a Page message IPC.
|
| void SendPageMessage(IPC::Message* msg);
|
| @@ -1091,14 +1099,13 @@ private:
|
| RenderViewHostDelegateView* render_view_host_delegate_view_;
|
|
|
| // Tracks created WebContentsImpl objects that have not been shown yet. They
|
| - // are identified by the route ID passed to CreateNewWindow.
|
| - typedef std::map<int, WebContentsImpl*> PendingContents;
|
| - PendingContents pending_contents_;
|
| -
|
| - // These maps hold on to the widgets that we created on behalf of the renderer
|
| - // that haven't shown yet.
|
| - typedef std::map<int, RenderWidgetHostView*> PendingWidgetViews;
|
| - PendingWidgetViews pending_widget_views_;
|
| + // are identified by the process ID and routing ID passed to CreateNewWindow.
|
| + typedef std::pair<int, int> ProcessRoutingIdPair;
|
| + std::map<ProcessRoutingIdPair, WebContentsImpl*> pending_contents_;
|
| +
|
| + // This map holds widgets that were created on behalf of the renderer but
|
| + // haven't been shown yet.
|
| + std::map<ProcessRoutingIdPair, RenderWidgetHostView*> pending_widget_views_;
|
|
|
| typedef std::map<WebContentsImpl*, DestructionObserver*> DestructionObservers;
|
| DestructionObservers destruction_observers_;
|
|
|