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

Side by Side Diff: extensions/renderer/dispatcher.h

Issue 1966283002: Remove port lifetime management from renderer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use MakeUnique instead of WrapUnique Created 4 years, 6 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 | « extensions/common/extension_messages.h ('k') | extensions/renderer/dispatcher.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 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 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 const std::string& event_name) const; 126 const std::string& event_name) const;
127 127
128 // Shared implementation of the various MessageInvoke IPCs. 128 // Shared implementation of the various MessageInvoke IPCs.
129 void InvokeModuleSystemMethod(content::RenderFrame* render_frame, 129 void InvokeModuleSystemMethod(content::RenderFrame* render_frame,
130 const std::string& extension_id, 130 const std::string& extension_id,
131 const std::string& module_name, 131 const std::string& module_name,
132 const std::string& function_name, 132 const std::string& function_name,
133 const base::ListValue& args, 133 const base::ListValue& args,
134 bool user_gesture); 134 bool user_gesture);
135 135
136 void ClearPortData(int port_id);
137
138 // Returns a list of (module name, resource id) pairs for the JS modules to 136 // Returns a list of (module name, resource id) pairs for the JS modules to
139 // add to the source map. 137 // add to the source map.
140 static std::vector<std::pair<std::string, int> > GetJsResources(); 138 static std::vector<std::pair<std::string, int> > GetJsResources();
141 static void RegisterNativeHandlers(ModuleSystem* module_system, 139 static void RegisterNativeHandlers(ModuleSystem* module_system,
142 ScriptContext* context, 140 ScriptContext* context,
143 Dispatcher* dispatcher, 141 Dispatcher* dispatcher,
144 RequestSender* request_sender, 142 RequestSender* request_sender,
145 V8SchemaRegistry* v8_schema_registry); 143 V8SchemaRegistry* v8_schema_registry);
146 144
147 bool WasWebRequestUsedBySomeExtensions() const { return webrequest_used_; } 145 bool WasWebRequestUsedBySomeExtensions() const { return webrequest_used_; }
148 146
149 private: 147 private:
150 // The RendererPermissionsPolicyDelegateTest.CannotScriptWebstore test needs 148 // The RendererPermissionsPolicyDelegateTest.CannotScriptWebstore test needs
151 // to call the OnActivateExtension IPCs. 149 // to call the OnActivateExtension IPCs.
152 friend class ::ChromeRenderViewTest; 150 friend class ::ChromeRenderViewTest;
153 FRIEND_TEST_ALL_PREFIXES(RendererPermissionsPolicyDelegateTest, 151 FRIEND_TEST_ALL_PREFIXES(RendererPermissionsPolicyDelegateTest,
154 CannotScriptWebstore); 152 CannotScriptWebstore);
155 153
156 // RenderThreadObserver implementation: 154 // RenderThreadObserver implementation:
157 bool OnControlMessageReceived(const IPC::Message& message) override; 155 bool OnControlMessageReceived(const IPC::Message& message) override;
158 void IdleNotification() override; 156 void IdleNotification() override;
159 void OnRenderProcessShutdown() override; 157 void OnRenderProcessShutdown() override;
160 158
161 void OnActivateExtension(const std::string& extension_id); 159 void OnActivateExtension(const std::string& extension_id);
162 void OnCancelSuspend(const std::string& extension_id); 160 void OnCancelSuspend(const std::string& extension_id);
163 void OnDeliverMessage(int target_port_id, const Message& message); 161 void OnDeliverMessage(int target_port_id,
162 int source_tab_id,
163 const Message& message);
164 void OnDispatchOnConnect(int target_port_id, 164 void OnDispatchOnConnect(int target_port_id,
165 const std::string& channel_name, 165 const std::string& channel_name,
166 const ExtensionMsg_TabConnectionInfo& source, 166 const ExtensionMsg_TabConnectionInfo& source,
167 const ExtensionMsg_ExternalConnectionInfo& info, 167 const ExtensionMsg_ExternalConnectionInfo& info,
168 const std::string& tls_channel_id); 168 const std::string& tls_channel_id);
169 void OnDispatchOnDisconnect(int port_id, const std::string& error_message); 169 void OnDispatchOnDisconnect(int port_id, const std::string& error_message);
170 void OnLoaded( 170 void OnLoaded(
171 const std::vector<ExtensionMsg_Loaded_Params>& loaded_extensions); 171 const std::vector<ExtensionMsg_Loaded_Params>& loaded_extensions);
172 void OnMessageInvoke(const std::string& extension_id, 172 void OnMessageInvoke(const std::string& extension_id,
173 const std::string& module_name, 173 const std::string& module_name,
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 // Cache for the v8 representation of extension API schemas. 287 // Cache for the v8 representation of extension API schemas.
288 std::unique_ptr<V8SchemaRegistry> v8_schema_registry_; 288 std::unique_ptr<V8SchemaRegistry> v8_schema_registry_;
289 289
290 // Sends API requests to the extension host. 290 // Sends API requests to the extension host.
291 std::unique_ptr<RequestSender> request_sender_; 291 std::unique_ptr<RequestSender> request_sender_;
292 292
293 // The platforms system font family and size; 293 // The platforms system font family and size;
294 std::string system_font_family_; 294 std::string system_font_family_;
295 std::string system_font_size_; 295 std::string system_font_size_;
296 296
297 // Mapping of port IDs to tabs. If there is no tab, the value would be -1.
298 std::map<int, int> port_to_tab_id_map_;
299
300 // It is important for this to come after the ScriptInjectionManager, so that 297 // It is important for this to come after the ScriptInjectionManager, so that
301 // the observer is destroyed before the UserScriptSet. 298 // the observer is destroyed before the UserScriptSet.
302 ScopedObserver<UserScriptSetManager, UserScriptSetManager::Observer> 299 ScopedObserver<UserScriptSetManager, UserScriptSetManager::Observer>
303 user_script_set_manager_observer_; 300 user_script_set_manager_observer_;
304 301
305 // Status of webrequest usage. 302 // Status of webrequest usage.
306 bool webrequest_used_; 303 bool webrequest_used_;
307 304
308 // The WebView partition ID associated with this process's storage partition, 305 // The WebView partition ID associated with this process's storage partition,
309 // if this renderer is a WebView guest render process. Otherwise, this will be 306 // if this renderer is a WebView guest render process. Otherwise, this will be
310 // empty. 307 // empty.
311 std::string webview_partition_id_; 308 std::string webview_partition_id_;
312 309
313 DISALLOW_COPY_AND_ASSIGN(Dispatcher); 310 DISALLOW_COPY_AND_ASSIGN(Dispatcher);
314 }; 311 };
315 312
316 } // namespace extensions 313 } // namespace extensions
317 314
318 #endif // EXTENSIONS_RENDERER_DISPATCHER_H_ 315 #endif // EXTENSIONS_RENDERER_DISPATCHER_H_
OLDNEW
« no previous file with comments | « extensions/common/extension_messages.h ('k') | extensions/renderer/dispatcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698