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