| 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_
|
|
|