diff options
author | ricow@chromium.org <ricow@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-10 08:34:28 +0000 |
---|---|---|
committer | ricow@chromium.org <ricow@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-10 08:34:28 +0000 |
commit | 3c7883723fd18c52db3b3a84f68f96968a21cb97 (patch) | |
tree | d23ff490779abc5a74056536f74dfec35d57797d /content/renderer/render_view_browsertest.cc | |
parent | b1a2b5456d9a4180fd3fea825e94f51fd1837a21 (diff) | |
download | chromium_src-3c7883723fd18c52db3b3a84f68f96968a21cb97.zip chromium_src-3c7883723fd18c52db3b3a84f68f96968a21cb97.tar.gz chromium_src-3c7883723fd18c52db3b3a84f68f96968a21cb97.tar.bz2 |
Revert 175971
> Revert 175890: actually, looks like we want this to also help move chromeos webui pages out of src/chrome.
> > Revert 175822
> >
> > After more investigation of what it would take to share the webui code framework from chrome with content, it didn't seam feasible to do this. The code in chrome (i.e. ChromeURLDataManager) is heavily tied to chrome, and is used by chrome for non-webui stuff. The JS code is also specific to Chrome. It seems better to not bring in all this stuff to content.
> >
> > > Allow multiple WebUIControllerFactory objects to be registered. This makes is possible to implement webui inside content.
> > > Review URL: https://codereview.chromium.org/11783038
> >
> > TBR=jam@chromium.org
> > Review URL: https://codereview.chromium.org/11818036
>
> TBR=jam@chromium.org
> Review URL: https://codereview.chromium.org/11819050
This seems like the most obvious candidate for chromiumos failures:
http://build.chromium.org/p/chromium.chromiumos/builders/ChromiumOS%20%28x86%29/builds/11017
http://build.chromium.org/p/chromium.chromiumos/builders/ChromiumOS%20%28amd64%29/builds/5918
TBR=jam@chromium.org
Review URL: https://codereview.chromium.org/11828040
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176043 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/render_view_browsertest.cc')
-rw-r--r-- | content/renderer/render_view_browsertest.cc | 39 |
1 files changed, 35 insertions, 4 deletions
diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc index 706adc4..c9df9fd 100644 --- a/content/renderer/render_view_browsertest.cc +++ b/content/renderer/render_view_browsertest.cc @@ -96,11 +96,11 @@ class WebUITestWebUIControllerFactory : public WebUIControllerFactory { } virtual bool UseWebUIForURL(BrowserContext* browser_context, const GURL& url) const OVERRIDE { - return HasWebUIScheme(url); + return GetContentClient()->HasWebUIScheme(url); } virtual bool UseWebUIBindingsForURL(BrowserContext* browser_context, const GURL& url) const OVERRIDE { - return HasWebUIScheme(url); + return GetContentClient()->HasWebUIScheme(url); } virtual bool IsURLAcceptableForWebUI( BrowserContext* browser_context, @@ -110,6 +110,28 @@ class WebUITestWebUIControllerFactory : public WebUIControllerFactory { } }; +class WebUITestClient : public ShellContentClient { + public: + WebUITestClient() { + } + + virtual bool HasWebUIScheme(const GURL& url) const OVERRIDE { + return url.SchemeIs(chrome::kChromeUIScheme); + } +}; + +class WebUITestBrowserClient : public ShellContentBrowserClient { + public: + WebUITestBrowserClient() {} + + virtual WebUIControllerFactory* GetWebUIControllerFactory() OVERRIDE { + return &factory_; + } + + private: + WebUITestWebUIControllerFactory factory_; +}; + } // namespace class RenderViewImplTest : public RenderViewTest { @@ -320,8 +342,14 @@ TEST_F(RenderViewImplTest, OnNavigationHttpPost) { } TEST_F(RenderViewImplTest, DecideNavigationPolicy) { - WebUITestWebUIControllerFactory factory; - WebUIControllerFactory::RegisterFactory(&factory); + WebUITestClient client; + WebUITestBrowserClient browser_client; + ContentClient* old_client = GetContentClient(); + ContentBrowserClient* old_browser_client = GetContentClient()->browser(); + + SetContentClient(&client); + GetContentClient()->set_browser_for_testing(&browser_client); + client.set_renderer_for_testing(old_client->renderer()); // Navigations to normal HTTP URLs can be handled locally. WebKit::WebURLRequest request(GURL("http://foo.com")); @@ -356,6 +384,9 @@ TEST_F(RenderViewImplTest, DecideNavigationPolicy) { WebKit::WebNavigationPolicyNewForegroundTab, false); EXPECT_EQ(WebKit::WebNavigationPolicyIgnore, policy); + + GetContentClient()->set_browser_for_testing(old_browser_client); + SetContentClient(old_client); } TEST_F(RenderViewImplTest, DecideNavigationPolicyForWebUI) { |