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

Side by Side Diff: content/public/common/content_client.h

Issue 2622693002: Cleanup of static lists of schemes & origins that are created at startup. (Closed)
Patch Set: merge Created 3 years, 11 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 unified diff | Download patch
« no previous file with comments | « content/common/url_schemes.cc ('k') | content/public/common/content_client.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_PUBLIC_COMMON_CONTENT_CLIENT_H_ 5 #ifndef CONTENT_PUBLIC_COMMON_CONTENT_CLIENT_H_
6 #define CONTENT_PUBLIC_COMMON_CONTENT_CLIENT_H_ 6 #define CONTENT_PUBLIC_COMMON_CONTENT_CLIENT_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/strings/string16.h" 12 #include "base/strings/string16.h"
13 #include "base/strings/string_piece.h" 13 #include "base/strings/string_piece.h"
14 #include "build/build_config.h" 14 #include "build/build_config.h"
15 #include "content/common/content_export.h" 15 #include "content/common/content_export.h"
16 #include "ui/base/layout.h" 16 #include "ui/base/layout.h"
17 #include "url/gurl.h"
17 #include "url/url_util.h" 18 #include "url/url_util.h"
18 19
19 class GURL;
20
21 namespace base { 20 namespace base {
22 class RefCountedMemory; 21 class RefCountedMemory;
23 } 22 }
24 23
25 namespace IPC { 24 namespace IPC {
26 class Message; 25 class Message;
27 } 26 }
28 27
29 namespace gfx { 28 namespace gfx {
30 class Image; 29 class Image;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 85
87 // Gives the embedder a chance to register its own pepper plugins. 86 // Gives the embedder a chance to register its own pepper plugins.
88 virtual void AddPepperPlugins( 87 virtual void AddPepperPlugins(
89 std::vector<content::PepperPluginInfo>* plugins) {} 88 std::vector<content::PepperPluginInfo>* plugins) {}
90 89
91 // Gives the embedder a chance to register the content decryption 90 // Gives the embedder a chance to register the content decryption
92 // modules it supports. 91 // modules it supports.
93 virtual void AddContentDecryptionModules( 92 virtual void AddContentDecryptionModules(
94 std::vector<content::CdmInfo>* cdms) {} 93 std::vector<content::CdmInfo>* cdms) {}
95 94
96 // Gives the embedder a chance to register its own standard, referrer and 95 // Gives the embedder a chance to register its own schemes early in the
97 // saveable url schemes early on in the startup sequence. 96 // startup sequence.
98 virtual void AddAdditionalSchemes( 97 // For the secure schemes and origins that need to be considered trustworthy,
99 std::vector<url::SchemeWithType>* standard_schemes, 98 // see https://www.w3.org/TR/powerful-features/#is-origin-trustworthy.
100 std::vector<url::SchemeWithType>* referrer_schemes, 99 // |service_workers_schemes| are additional schemes that should be allowed to
101 std::vector<std::string>* savable_schemes) {} 100 // register service workers. Only secure and trustworthy schemes should be
101 // added.
102 struct Schemes {
103 Schemes();
104 ~Schemes();
105 std::vector<std::string> standard_schemes;
106 std::vector<std::string> referrer_schemes;
107 std::vector<std::string> savable_schemes;
108 std::vector<std::string> secure_schemes;
109 std::vector<std::string> service_worker_schemes;
110 std::vector<GURL> secure_origins;
111 };
112
113 virtual void AddAdditionalSchemes(Schemes* schemes) {}
102 114
103 // Returns whether the given message should be sent in a swapped out renderer. 115 // Returns whether the given message should be sent in a swapped out renderer.
104 virtual bool CanSendWhileSwappedOut(const IPC::Message* message); 116 virtual bool CanSendWhileSwappedOut(const IPC::Message* message);
105 117
106 // Returns a string describing the embedder product name and version, 118 // Returns a string describing the embedder product name and version,
107 // of the form "productname/version", with no other slashes. 119 // of the form "productname/version", with no other slashes.
108 // Used as part of the user agent string. 120 // Used as part of the user agent string.
109 virtual std::string GetProduct() const; 121 virtual std::string GetProduct() const;
110 122
111 // Returns the user agent. Content may cache this value. 123 // Returns the user agent. Content may cache this value.
(...skipping 24 matching lines...) Expand all
136 // for |sandbox_type| are defined by the embedder and should start with 148 // for |sandbox_type| are defined by the embedder and should start with
137 // SandboxType::SANDBOX_TYPE_AFTER_LAST_TYPE. Returns false if no sandbox 149 // SandboxType::SANDBOX_TYPE_AFTER_LAST_TYPE. Returns false if no sandbox
138 // profile for the given |sandbox_type| exists. Otherwise, 150 // profile for the given |sandbox_type| exists. Otherwise,
139 // |sandbox_profile_resource_id| is set to the resource ID corresponding to 151 // |sandbox_profile_resource_id| is set to the resource ID corresponding to
140 // the sandbox profile to use and true is returned. 152 // the sandbox profile to use and true is returned.
141 virtual bool GetSandboxProfileForSandboxType( 153 virtual bool GetSandboxProfileForSandboxType(
142 int sandbox_type, 154 int sandbox_type,
143 int* sandbox_profile_resource_id) const; 155 int* sandbox_profile_resource_id) const;
144 #endif 156 #endif
145 157
146 // Gives the embedder a chance to register additional schemes and origins
147 // that need to be considered trustworthy.
148 // See https://www.w3.org/TR/powerful-features/#is-origin-trustworthy.
149 virtual void AddSecureSchemesAndOrigins(std::set<std::string>* schemes,
150 std::set<GURL>* origins) {}
151
152 // Gives the embedder a chance to register additional schemes that
153 // should be allowed to register service workers. Only secure and
154 // trustworthy schemes should be added.
155 virtual void AddServiceWorkerSchemes(std::set<std::string>* schemes) {}
156
157 // Returns whether or not V8 script extensions should be allowed for a 158 // Returns whether or not V8 script extensions should be allowed for a
158 // service worker. 159 // service worker.
159 virtual bool AllowScriptExtensionForServiceWorker(const GURL& script_url); 160 virtual bool AllowScriptExtensionForServiceWorker(const GURL& script_url);
160 161
161 // Returns true if the embedder wishes to supplement the site isolation policy 162 // Returns true if the embedder wishes to supplement the site isolation policy
162 // used by the content layer. Returning true enables the infrastructure for 163 // used by the content layer. Returning true enables the infrastructure for
163 // out-of-process iframes, and causes the content layer to consult 164 // out-of-process iframes, and causes the content layer to consult
164 // ContentBrowserClient::DoesSiteRequireDedicatedProcess() when making process 165 // ContentBrowserClient::DoesSiteRequireDedicatedProcess() when making process
165 // model decisions. 166 // model decisions.
166 virtual bool IsSupplementarySiteIsolationModeEnabled(); 167 virtual bool IsSupplementarySiteIsolationModeEnabled();
(...skipping 22 matching lines...) Expand all
189 ContentGpuClient* gpu_; 190 ContentGpuClient* gpu_;
190 // The embedder API for participating in renderer logic. 191 // The embedder API for participating in renderer logic.
191 ContentRendererClient* renderer_; 192 ContentRendererClient* renderer_;
192 // The embedder API for participating in utility logic. 193 // The embedder API for participating in utility logic.
193 ContentUtilityClient* utility_; 194 ContentUtilityClient* utility_;
194 }; 195 };
195 196
196 } // namespace content 197 } // namespace content
197 198
198 #endif // CONTENT_PUBLIC_COMMON_CONTENT_CLIENT_H_ 199 #endif // CONTENT_PUBLIC_COMMON_CONTENT_CLIENT_H_
OLDNEW
« no previous file with comments | « content/common/url_schemes.cc ('k') | content/public/common/content_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698