Chromium Code Reviews| 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_ |