Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1468)

Unified Diff: content/browser/webui/content_web_ui_client.h

Issue 6713082: Move WebUIFactory to chrome/browser. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ContentWebUIClient Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/webui/content_web_ui_client.h
diff --git a/content/browser/webui/content_web_ui_client.h b/content/browser/webui/content_web_ui_client.h
new file mode 100644
index 0000000000000000000000000000000000000000..590a45a63860b4a552f210f60a1047f384619ec0
--- /dev/null
+++ b/content/browser/webui/content_web_ui_client.h
@@ -0,0 +1,51 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_BROWSER_WEBUI_CONTENT_WEB_UI_CLIENT_H_
+#define CONTENT_BROWSER_WEBUI_CONTENT_WEB_UI_CLIENT_H_
+#pragma once
+
+#include "content/browser/webui/web_ui.h"
+
+class Profile;
+class TabContents;
+class GURL;
+
+namespace content {
+
+// Interface for an object which controls which URLs are considered WebUI URLs
+// and creates WebUI instances for given URLs.
+class ContentWebUIClient {
+ public:
+ // Returns a WebUI instance for the given URL, or NULL if the URL doesn't
+ // correspond to a WebUI.
+ virtual WebUI* CreateWebUIForURL(TabContents* source,
+ const GURL& url) const = 0;
+
+ // Gets the WebUI type for the given URL. This will return kNoWebUI if the
+ // corresponding call to CreateWebUIForURL would fail, or something non-NULL
+ // if CreateWebUIForURL would succeed.
+ virtual WebUI::WebUITypeID GetWebUIType(Profile* profile,
+ const GURL& url) const = 0;
+
+ // Shorthand for the above, but returns a simple yes/no.
+ virtual bool UseWebUIForURL(Profile* profile, const GURL& url) const = 0;
+
+ // Returns true if the url has a scheme for WebUI. This differs from the above
+ // in that it only checks the scheme; it is faster and can be used to
+ // determine security policy.
+ virtual bool HasWebUIScheme(const GURL& url) const = 0;
+
+ // Returns true if the given URL can be loaded by Web UI system. This allows
+ // URLs with WebUI types (as above) and also URLs that can be loaded by
+ // normal tabs such as javascript: URLs or about:hang.
+ virtual bool IsURLAcceptableForWebUI(Profile* profile,
+ const GURL& url) const = 0;
+
+ virtual ~ContentWebUIClient() {}
+};
+
+} // content
+
+#endif // CONTENT_BROWSER_WEBUI_CONTENT_WEB_UI_CLIENT_H_

Powered by Google App Engine
This is Rietveld 408576698