Chromium Code Reviews| Index: ios/web/public/web_client.h |
| diff --git a/ios/web/public/web_client.h b/ios/web/public/web_client.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..fdbb7de1b3ee4272767e354bf2d4c870f0b1e6b5 |
| --- /dev/null |
| +++ b/ios/web/public/web_client.h |
| @@ -0,0 +1,108 @@ |
| +// Copyright 2014 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 IOS_WEB_PUBLIC_WEB_CLIENT_H_ |
| +#define IOS_WEB_PUBLIC_WEB_CLIENT_H_ |
| + |
| +#include <string> |
| +#include <vector> |
| + |
| +#include "base/strings/string16.h" |
| +#include "base/strings/string_piece.h" |
| +#include "ui/base/layout.h" |
| + |
| +namespace base { |
| +class RefCountedStaticMemory; |
| +} |
| + |
| +class GURL; |
| + |
| +#ifdef __OBJC__ |
| +@class UIWebView; |
| +#else |
| +class UIWebView; |
| +#endif |
| + |
| +namespace web { |
| + |
| +class BrowserState; |
| +class BrowserURLRewriter; |
| +class WebClient; |
| +class WebMainParts; |
| +class WebViewFactory; |
| + |
| +// Setter and getter for the client. The client should be set early, before any |
| +// web code is called. |
| +void SetWebClient(WebClient* client); |
| + |
| +WebClient* GetWebClient(); |
|
sdefresne
2015/01/30 10:29:46
Please document this method.
droger
2015/01/30 10:36:52
It's documented on line 35, I removed the blank li
|
| + |
| +// Interface that the embedder of the web layer implements. |
| +class WebClient { |
| + public: |
| + WebClient(); |
| + virtual ~WebClient(); |
| + |
| + // Allows the embedder to set a custom WebMainParts implementation for the |
| + // browser startup code. |
| + virtual WebMainParts* CreateWebMainParts(); |
| + |
| + // Gives the embedder a chance to perform tasks before a web view is created. |
| + virtual void PreWebViewCreation() const {}; |
|
sdefresne
2015/01/30 10:29:46
style: remove ";" after "{}" (here and everywhere
droger
2015/01/30 10:36:52
Done.
|
| + |
| + // Gives the embedder a chance to set up the given web view before presenting |
| + // it in the UI. |
| + virtual void PostWebViewCreation(UIWebView* web_view) const {}; |
| + |
| + // Returns a factory that vends WebViews. |
| + virtual WebViewFactory* GetWebViewFactory() const; |
| + |
| + // Returns the languages used in the Accept-Languages HTTP header. |
| + // Used to decide URL formating. |
| + virtual std::string GetAcceptLangs(BrowserState* state) const; |
| + |
| + // Returns true if URL has application specific schema. Embedder must return |
| + // true for every custom app specific schema it supports. For example Chromium |
| + // browser would return true for "chrome://about" URL. |
| + virtual bool IsAppSpecificURL(const GURL& url) const; |
| + |
| + // Returns text to be displayed for an unsupported plug-in. |
| + virtual base::string16 GetPluginNotSupportedText() const; |
| + |
| + // Returns a string describing the embedder product name and version, of the |
| + // form "productname/version". Used as part of the user agent string. |
| + virtual std::string GetProduct() const; |
| + |
| + // Returns the user agent. |desktop_user_agent| is true if desktop user agent |
| + // is requested. |
| + virtual std::string GetUserAgent(bool desktop_user_agent) const; |
| + |
| + // Returns a string resource given its id. |
| + virtual base::string16 GetLocalizedString(int message_id) const; |
| + |
| + // Return the contents of a resource in a StringPiece given the resource id. |
|
sdefresne
2015/01/30 10:29:46
nit: Returns
|
| + virtual base::StringPiece GetDataResource(int resource_id, |
| + ui::ScaleFactor scale_factor) const; |
| + |
| + // Returns the raw bytes of a scale independent data resource. |
| + virtual base::RefCountedStaticMemory* GetDataResourceBytes( |
| + int resource_id) const; |
| + |
| + // Returns a list of additional WebUI schemes, if any. These additional |
| + // schemes act as aliases to the about: scheme. The additional schemes may or |
| + // may not serve specific WebUI pages depending on the particular |
| + // URLDataSourceIOS and its override of |
| + // URLDataSourceIOS::ShouldServiceRequest. For all schemes returned here, |
| + // view-source is allowed. |
| + virtual void GetAdditionalWebUISchemes( |
| + std::vector<std::string>* additional_schemes) {} |
| + |
| + // Gives the embedder a chance to add url rewriters to the BrowserURLRewriter |
| + // singeleton. |
|
sdefresne
2015/01/30 10:29:46
nit: singleton
|
| + virtual void PostBrowserURLRewriterCreation(BrowserURLRewriter* rewriter) {} |
| +}; |
| + |
| +} // namespace web |
| + |
| +#endif // IOS_WEB_PUBLIC_WEB_CLIENT_H_ |