diff options
author | laforge@chromium.org <laforge@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-14 22:18:26 +0000 |
---|---|---|
committer | laforge@chromium.org <laforge@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-14 22:18:26 +0000 |
commit | 9646ec7bf5d6eff7ce35f0338c1d3815876b4708 (patch) | |
tree | 27649a3feb7190bc795fa70ef99d45912bcef71b | |
parent | dfeb2e9e00b89902b88439818e41c54a4397e5b6 (diff) | |
download | chromium_src-9646ec7bf5d6eff7ce35f0338c1d3815876b4708.zip chromium_src-9646ec7bf5d6eff7ce35f0338c1d3815876b4708.tar.gz chromium_src-9646ec7bf5d6eff7ce35f0338c1d3815876b4708.tar.bz2 |
Revert 251428 "Merge 251420 "Clear the pending_and_current_web_u..."
> Merge 251420 "Clear the pending_and_current_web_ui_ if we reuse it."
>
> > Clear the pending_and_current_web_ui_ if we reuse it.
> >
> > R=nasko@chromium.org
> > TBR=estade@chromium.org
> > BUG=330811
> > TEST=See bug comment 9 for repro steps.
> >
> > Review URL: https://codereview.chromium.org/166033006
>
> TBR=creis@chromium.org
>
> Review URL: https://codereview.chromium.org/167743002
TBR=laforge@chromium.org
Review URL: https://codereview.chromium.org/167313003
git-svn-id: svn://svn.chromium.org/chrome/branches/1750/src@251431 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | content/browser/frame_host/render_frame_host_manager.cc | 8 | ||||
-rw-r--r-- | content/browser/frame_host/render_frame_host_manager_browsertest.cc | 25 |
2 files changed, 2 insertions, 31 deletions
diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc index aeb87e7..f49d50b 100644 --- a/content/browser/frame_host/render_frame_host_manager.cc +++ b/content/browser/frame_host/render_frame_host_manager.cc @@ -826,14 +826,10 @@ void RenderFrameHostManager::CommitPending() { // |pending_web_ui_|, or clear |web_ui_| if there is no pending WebUI, or // leave |web_ui_| as is if reusing it. DCHECK(!(pending_web_ui_.get() && pending_and_current_web_ui_.get())); - if (pending_web_ui_) { + if (pending_web_ui_) web_ui_.reset(pending_web_ui_.release()); - } else if (!pending_and_current_web_ui_.get()) { + else if (!pending_and_current_web_ui_.get()) web_ui_.reset(); - } else { - DCHECK_EQ(pending_and_current_web_ui_.get(), web_ui_.get()); - pending_and_current_web_ui_.reset(); - } // It's possible for the pending_render_view_host_ to be NULL when we aren't // crossing process boundaries. If so, we just needed to handle the Web UI diff --git a/content/browser/frame_host/render_frame_host_manager_browsertest.cc b/content/browser/frame_host/render_frame_host_manager_browsertest.cc index 67cdcc0..0116c4d 100644 --- a/content/browser/frame_host/render_frame_host_manager_browsertest.cc +++ b/content/browser/frame_host/render_frame_host_manager_browsertest.cc @@ -13,7 +13,6 @@ #include "content/browser/renderer_host/render_view_host_impl.h" #include "content/browser/site_instance_impl.h" #include "content/browser/web_contents/web_contents_impl.h" -#include "content/browser/webui/web_ui_impl.h" #include "content/common/content_constants_internal.h" #include "content/public/browser/navigation_controller.h" #include "content/public/browser/navigation_entry.h" @@ -1428,28 +1427,4 @@ IN_PROC_BROWSER_TEST_F(RenderFrameHostManagerTest, crash_observer2.Wait(); } -// Ensure that pending_and_current_web_ui_ is cleared when a URL commits. -// Otherwise it might get picked up by InitRenderView when granting bindings -// to other RenderViewHosts. See http://crbug.com/330811. -IN_PROC_BROWSER_TEST_F(RenderFrameHostManagerTest, ClearPendingWebUIOnCommit) { - // Visit a WebUI page with bindings. - GURL webui_url(GURL(std::string(kChromeUIScheme) + "://" + - std::string(kChromeUIGpuHost))); - NavigateToURL(shell(), webui_url); - EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - shell()->web_contents()->GetRenderProcessHost()->GetID())); - WebContentsImpl* web_contents = static_cast<WebContentsImpl*>( - shell()->web_contents()); - WebUIImpl* webui = web_contents->GetRenderManagerForTesting()->web_ui(); - EXPECT_TRUE(webui); - EXPECT_FALSE(web_contents->GetRenderManagerForTesting()->pending_web_ui()); - - // Navigate to another WebUI URL that reuses the WebUI object. Make sure we - // clear pending_web_ui() when it commits. - GURL webui_url2(webui_url.spec() + "#foo"); - NavigateToURL(shell(), webui_url2); - EXPECT_EQ(webui, web_contents->GetRenderManagerForTesting()->web_ui()); - EXPECT_FALSE(web_contents->GetRenderManagerForTesting()->pending_web_ui()); -} - } // namespace content |