| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 EXTENSIONS_RENDERER_DISPATCHER_H_ | 5 #ifndef EXTENSIONS_RENDERER_DISPATCHER_H_ |
| 6 #define EXTENSIONS_RENDERER_DISPATCHER_H_ | 6 #define EXTENSIONS_RENDERER_DISPATCHER_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <map> | 10 #include <map> |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 | 87 |
| 88 void OnRenderFrameCreated(content::RenderFrame* render_frame); | 88 void OnRenderFrameCreated(content::RenderFrame* render_frame); |
| 89 | 89 |
| 90 bool IsExtensionActive(const std::string& extension_id) const; | 90 bool IsExtensionActive(const std::string& extension_id) const; |
| 91 | 91 |
| 92 void DidCreateScriptContext(blink::WebLocalFrame* frame, | 92 void DidCreateScriptContext(blink::WebLocalFrame* frame, |
| 93 const v8::Local<v8::Context>& context, | 93 const v8::Local<v8::Context>& context, |
| 94 int extension_group, | 94 int extension_group, |
| 95 int world_id); | 95 int world_id); |
| 96 | 96 |
| 97 // Runs on a different thread and should not use any member variables. | 97 // Runs on a different thread and should only use thread safe member |
| 98 static void DidInitializeServiceWorkerContextOnWorkerThread( | 98 // variables. |
| 99 void DidInitializeServiceWorkerContextOnWorkerThread( |
| 99 v8::Local<v8::Context> v8_context, | 100 v8::Local<v8::Context> v8_context, |
| 101 int embedded_worker_id, |
| 100 const GURL& url); | 102 const GURL& url); |
| 101 | 103 |
| 102 void WillReleaseScriptContext(blink::WebLocalFrame* frame, | 104 void WillReleaseScriptContext(blink::WebLocalFrame* frame, |
| 103 const v8::Local<v8::Context>& context, | 105 const v8::Local<v8::Context>& context, |
| 104 int world_id); | 106 int world_id); |
| 105 | 107 |
| 106 // Runs on a different thread and should not use any member variables. | 108 // Runs on a different thread and should not use any member variables. |
| 107 static void WillDestroyServiceWorkerContextOnWorkerThread( | 109 static void WillDestroyServiceWorkerContextOnWorkerThread( |
| 108 v8::Local<v8::Context> v8_context, | 110 v8::Local<v8::Context> v8_context, |
| 111 int embedded_worker_id, |
| 109 const GURL& url); | 112 const GURL& url); |
| 110 | 113 |
| 111 // This method is not allowed to run JavaScript code in the frame. | 114 // This method is not allowed to run JavaScript code in the frame. |
| 112 void DidCreateDocumentElement(blink::WebLocalFrame* frame); | 115 void DidCreateDocumentElement(blink::WebLocalFrame* frame); |
| 113 | 116 |
| 114 // These methods may run (untrusted) JavaScript code in the frame, and | 117 // These methods may run (untrusted) JavaScript code in the frame, and |
| 115 // cause |render_frame| to become invalid. | 118 // cause |render_frame| to become invalid. |
| 116 void RunScriptsAtDocumentStart(content::RenderFrame* render_frame); | 119 void RunScriptsAtDocumentStart(content::RenderFrame* render_frame); |
| 117 void RunScriptsAtDocumentEnd(content::RenderFrame* render_frame); | 120 void RunScriptsAtDocumentEnd(content::RenderFrame* render_frame); |
| 118 | 121 |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 | 219 |
| 217 // Adds or removes bindings for every context belonging to |extension_id|, or | 220 // Adds or removes bindings for every context belonging to |extension_id|, or |
| 218 // or all contexts if |extension_id| is empty. | 221 // or all contexts if |extension_id| is empty. |
| 219 void UpdateBindings(const std::string& extension_id); | 222 void UpdateBindings(const std::string& extension_id); |
| 220 | 223 |
| 221 void UpdateBindingsForContext(ScriptContext* context); | 224 void UpdateBindingsForContext(ScriptContext* context); |
| 222 | 225 |
| 223 void RegisterBinding(const std::string& api_name, ScriptContext* context); | 226 void RegisterBinding(const std::string& api_name, ScriptContext* context); |
| 224 | 227 |
| 225 void RegisterNativeHandlers(ModuleSystem* module_system, | 228 void RegisterNativeHandlers(ModuleSystem* module_system, |
| 226 ScriptContext* context); | 229 ScriptContext* context, |
| 230 RequestSender* request_sender, |
| 231 V8SchemaRegistry* v8_schema_registry); |
| 227 | 232 |
| 228 // Determines if a ScriptContext can connect to any externally_connectable- | 233 // Determines if a ScriptContext can connect to any externally_connectable- |
| 229 // enabled extension. | 234 // enabled extension. |
| 230 bool IsRuntimeAvailableToContext(ScriptContext* context); | 235 bool IsRuntimeAvailableToContext(ScriptContext* context); |
| 231 | 236 |
| 232 // Updates a web page context with any content capabilities granted by active | 237 // Updates a web page context with any content capabilities granted by active |
| 233 // extensions. | 238 // extensions. |
| 234 void UpdateContentCapabilities(ScriptContext* context); | 239 void UpdateContentCapabilities(ScriptContext* context); |
| 235 | 240 |
| 236 // Inserts static source code into |source_map_|. | 241 // Inserts static source code into |source_map_|. |
| 237 void PopulateSourceMap(); | 242 void PopulateSourceMap(); |
| 238 | 243 |
| 239 // Returns whether the current renderer hosts a platform app. | 244 // Returns whether the current renderer hosts a platform app. |
| 240 bool IsWithinPlatformApp(); | 245 bool IsWithinPlatformApp(); |
| 241 | 246 |
| 242 // Gets |field| from |object| or creates it as an empty object if it doesn't | 247 // Gets |field| from |object| or creates it as an empty object if it doesn't |
| 243 // exist. | 248 // exist. |
| 244 v8::Local<v8::Object> GetOrCreateObject(const v8::Local<v8::Object>& object, | 249 static v8::Local<v8::Object> GetOrCreateObject( |
| 245 const std::string& field, | 250 const v8::Local<v8::Object>& object, |
| 246 v8::Isolate* isolate); | 251 const std::string& field, |
| 252 v8::Isolate* isolate); |
| 247 | 253 |
| 248 v8::Local<v8::Object> GetOrCreateBindObjectIfAvailable( | 254 static v8::Local<v8::Object> GetOrCreateBindObjectIfAvailable( |
| 249 const std::string& api_name, | 255 const std::string& api_name, |
| 250 std::string* bind_name, | 256 std::string* bind_name, |
| 251 ScriptContext* context); | 257 ScriptContext* context); |
| 252 | 258 |
| 253 // Requires the GuestView modules in the module system of the ScriptContext | 259 // Requires the GuestView modules in the module system of the ScriptContext |
| 254 // |context|. | 260 // |context|. |
| 255 void RequireGuestViewModules(ScriptContext* context); | 261 void RequireGuestViewModules(ScriptContext* context); |
| 256 | 262 |
| 257 // The delegate for this dispatcher. Not owned, but must extend beyond the | 263 // The delegate for this dispatcher. Not owned, but must extend beyond the |
| 258 // Dispatcher's own lifetime. | 264 // Dispatcher's own lifetime. |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 309 // if this renderer is a WebView guest render process. Otherwise, this will be | 315 // if this renderer is a WebView guest render process. Otherwise, this will be |
| 310 // empty. | 316 // empty. |
| 311 std::string webview_partition_id_; | 317 std::string webview_partition_id_; |
| 312 | 318 |
| 313 DISALLOW_COPY_AND_ASSIGN(Dispatcher); | 319 DISALLOW_COPY_AND_ASSIGN(Dispatcher); |
| 314 }; | 320 }; |
| 315 | 321 |
| 316 } // namespace extensions | 322 } // namespace extensions |
| 317 | 323 |
| 318 #endif // EXTENSIONS_RENDERER_DISPATCHER_H_ | 324 #endif // EXTENSIONS_RENDERER_DISPATCHER_H_ |
| OLD | NEW |