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

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

Issue 6713082: Move WebUIFactory to chrome/browser. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merge 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/web_ui_source.h
diff --git a/content/browser/webui/web_ui_source.h b/content/browser/webui/web_ui_source.h
new file mode 100644
index 0000000000000000000000000000000000000000..09b2b4f7bd6911195a951bc4b727ae6d06f2ffcc
--- /dev/null
+++ b/content/browser/webui/web_ui_source.h
@@ -0,0 +1,47 @@
+// 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_WEB_UI_SOURCE_H_
+#define CONTENT_BROWSER_WEBUI_WEB_UI_SOURCE_H_
+#pragma once
+
+#include "content/browser/webui/web_ui.h"
+
+class Profile;
+class TabContents;
+class GURL;
+
+// Interface for an object which controls which URLs are considered WebUI URLs
+// and creates WebUI instances for given URLs.
+class WebUISource {
stuartmorgan 2011/03/24 21:09:41 Source vs Factory seems a bit arbitrary; I'd have
Evan Stade 2011/03/24 21:28:40 sounds fine to me
+ 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,
jam 2011/03/24 21:38:43 Profile is a Chrome concept that Elliot is moving
+ 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 ~WebUISource() {}
+};
+
+#endif // CONTENT_BROWSER_WEBUI_WEB_UI_SOURCE_H_

Powered by Google App Engine
This is Rietveld 408576698