diff options
author | nasko@chromium.org <nasko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-28 22:12:59 +0000 |
---|---|---|
committer | nasko@chromium.org <nasko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-28 22:12:59 +0000 |
commit | de3c5d8429987bd13bcf5c428be7d44b823a8391 (patch) | |
tree | b1ed8498850518b11190ce1c9781a70b33e129bd /content/browser/site_per_process_browsertest.cc | |
parent | 19f669cd904d431bb9c1ca808f1aa3576ef2a900 (diff) | |
download | chromium_src-de3c5d8429987bd13bcf5c428be7d44b823a8391.zip chromium_src-de3c5d8429987bd13bcf5c428be7d44b823a8391.tar.gz chromium_src-de3c5d8429987bd13bcf5c428be7d44b823a8391.tar.bz2 |
Add WasShown/WasHidden to RenderFrameObserver.
BUG=304341
Review URL: https://codereview.chromium.org/298283003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273375 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/site_per_process_browsertest.cc')
-rw-r--r-- | content/browser/site_per_process_browsertest.cc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/content/browser/site_per_process_browsertest.cc b/content/browser/site_per_process_browsertest.cc index 5c3be86..1bcf3fc 100644 --- a/content/browser/site_per_process_browsertest.cc +++ b/content/browser/site_per_process_browsertest.cc @@ -216,6 +216,14 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, CrossSiteIframe) { NavigateFrameToURL(root->child_at(0), http_url); EXPECT_EQ(http_url, observer.navigation_url()); EXPECT_TRUE(observer.navigation_succeeded()); + { + // There should be only one RenderWidgetHost when there are no + // cross-process iframes. + std::set<RenderWidgetHostImpl*> widgets_set = + static_cast<WebContentsImpl*>(shell()->web_contents()) + ->GetRenderWidgetHostsInTree(); + EXPECT_EQ(1U, widgets_set.size()); + } // These must stay in scope with replace_host. GURL::Replacements replace_host; @@ -238,6 +246,14 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, CrossSiteIframe) { EXPECT_NE(shell()->web_contents()->GetRenderViewHost(), rvh); EXPECT_NE(shell()->web_contents()->GetSiteInstance(), site_instance); EXPECT_NE(shell()->web_contents()->GetRenderProcessHost(), rph); + { + // There should be now two RenderWidgetHosts, one for each process + // rendering a frame. + std::set<RenderWidgetHostImpl*> widgets_set = + static_cast<WebContentsImpl*>(shell()->web_contents()) + ->GetRenderWidgetHostsInTree(); + EXPECT_EQ(2U, widgets_set.size()); + } // Load another cross-site page into the same iframe. cross_site_url = test_server()->GetURL("files/title3.html"); @@ -262,6 +278,12 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, CrossSiteIframe) { EXPECT_NE(shell()->web_contents()->GetRenderProcessHost(), child->current_frame_host()->GetProcess()); EXPECT_NE(rph, child->current_frame_host()->GetProcess()); + { + std::set<RenderWidgetHostImpl*> widgets_set = + static_cast<WebContentsImpl*>(shell()->web_contents()) + ->GetRenderWidgetHostsInTree(); + EXPECT_EQ(2U, widgets_set.size()); + } } // Crash a subframe and ensures its children are cleared from the FrameTree. |