summaryrefslogtreecommitdiffstats
path: root/content/renderer/render_view_browsertest.cc
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-09 21:41:48 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-09 21:41:48 +0000
commit526fcbad45cd81bc953aa643bf6b7229497fa919 (patch)
tree82c003c6e26c86813ddbe50317294c9449167ae0 /content/renderer/render_view_browsertest.cc
parent1d421c2af34c43b3478f00fc45ab9fc17aef071b (diff)
downloadchromium_src-526fcbad45cd81bc953aa643bf6b7229497fa919.zip
chromium_src-526fcbad45cd81bc953aa643bf6b7229497fa919.tar.gz
chromium_src-526fcbad45cd81bc953aa643bf6b7229497fa919.tar.bz2
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 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175890 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/render_view_browsertest.cc')
-rw-r--r--content/renderer/render_view_browsertest.cc39
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) {