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

Side by Side Diff: extensions/browser/extension_function.h

Issue 105553005: Make PepperWebPlugin not use RenderViews. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: review comments Created 7 years 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 | Annotate | Revision Log
« no previous file with comments | « content/renderer/render_frame_impl.cc ('k') | extensions/browser/extension_function.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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_BROWSER_EXTENSION_FUNCTION_H_ 5 #ifndef EXTENSIONS_BROWSER_EXTENSION_FUNCTION_H_
6 #define EXTENSIONS_BROWSER_EXTENSION_FUNCTION_H_ 6 #define EXTENSIONS_BROWSER_EXTENSION_FUNCTION_H_
7 7
8 #include <list> 8 #include <list>
9 #include <string> 9 #include <string>
10 10
(...skipping 17 matching lines...) Expand all
28 class UIThreadExtensionFunction; 28 class UIThreadExtensionFunction;
29 class IOThreadExtensionFunction; 29 class IOThreadExtensionFunction;
30 30
31 namespace base { 31 namespace base {
32 class ListValue; 32 class ListValue;
33 class Value; 33 class Value;
34 } 34 }
35 35
36 namespace content { 36 namespace content {
37 class BrowserContext; 37 class BrowserContext;
38 class RenderFrameHost;
38 class RenderViewHost; 39 class RenderViewHost;
39 class WebContents; 40 class WebContents;
40 } 41 }
41 42
42 namespace extensions { 43 namespace extensions {
43 class QuotaLimitHeuristic; 44 class QuotaLimitHeuristic;
44 } 45 }
45 46
46 #ifdef NDEBUG 47 #ifdef NDEBUG
47 #define EXTENSION_FUNCTION_VALIDATE(test) do { \ 48 #define EXTENSION_FUNCTION_VALIDATE(test) do { \
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 UIThreadExtensionFunction(); 284 UIThreadExtensionFunction();
284 285
285 virtual UIThreadExtensionFunction* AsUIThreadExtensionFunction() OVERRIDE; 286 virtual UIThreadExtensionFunction* AsUIThreadExtensionFunction() OVERRIDE;
286 287
287 void set_test_delegate(DelegateForTests* delegate) { 288 void set_test_delegate(DelegateForTests* delegate) {
288 delegate_ = delegate; 289 delegate_ = delegate;
289 } 290 }
290 291
291 // Called when a message was received. 292 // Called when a message was received.
292 // Should return true if it processed the message. 293 // Should return true if it processed the message.
293 virtual bool OnMessageReceivedFromRenderView(const IPC::Message& message); 294 virtual bool OnMessageReceived(const IPC::Message& message);
294 295
295 // Set the browser context which contains the extension that has originated 296 // Set the browser context which contains the extension that has originated
296 // this function call. 297 // this function call.
297 void set_context(content::BrowserContext* context) { context_ = context; } 298 void set_context(content::BrowserContext* context) { context_ = context; }
298 content::BrowserContext* context() const { return context_; } 299 content::BrowserContext* context() const { return context_; }
299 300
300 void SetRenderViewHost(content::RenderViewHost* render_view_host); 301 void SetRenderViewHost(content::RenderViewHost* render_view_host);
301 content::RenderViewHost* render_view_host() const { 302 content::RenderViewHost* render_view_host() const {
302 return render_view_host_; 303 return render_view_host_;
303 } 304 }
305 void SetRenderFrameHost(content::RenderFrameHost* render_frame_host);
306 content::RenderFrameHost* render_frame_host() const {
307 return render_frame_host_;
308 }
304 309
305 void set_dispatcher( 310 void set_dispatcher(
306 const base::WeakPtr<ExtensionFunctionDispatcher>& dispatcher) { 311 const base::WeakPtr<ExtensionFunctionDispatcher>& dispatcher) {
307 dispatcher_ = dispatcher; 312 dispatcher_ = dispatcher;
308 } 313 }
309 ExtensionFunctionDispatcher* dispatcher() const { 314 ExtensionFunctionDispatcher* dispatcher() const {
310 return dispatcher_.get(); 315 return dispatcher_.get();
311 } 316 }
312 317
313 // Gets the "current" web contents if any. If there is no associated web 318 // Gets the "current" web contents if any. If there is no associated web
314 // contents then defaults to the foremost one. 319 // contents then defaults to the foremost one.
315 virtual content::WebContents* GetAssociatedWebContents(); 320 virtual content::WebContents* GetAssociatedWebContents();
316 321
317 protected: 322 protected:
318 // Emits a message to the extension's devtools console. 323 // Emits a message to the extension's devtools console.
319 void WriteToConsole(content::ConsoleMessageLevel level, 324 void WriteToConsole(content::ConsoleMessageLevel level,
320 const std::string& message); 325 const std::string& message);
321 326
322 friend struct content::BrowserThread::DeleteOnThread< 327 friend struct content::BrowserThread::DeleteOnThread<
323 content::BrowserThread::UI>; 328 content::BrowserThread::UI>;
324 friend class base::DeleteHelper<UIThreadExtensionFunction>; 329 friend class base::DeleteHelper<UIThreadExtensionFunction>;
325 330
326 virtual ~UIThreadExtensionFunction(); 331 virtual ~UIThreadExtensionFunction();
327 332
328 virtual void SendResponse(bool success) OVERRIDE; 333 virtual void SendResponse(bool success) OVERRIDE;
329 334
330 // The dispatcher that will service this extension function call. 335 // The dispatcher that will service this extension function call.
331 base::WeakPtr<ExtensionFunctionDispatcher> dispatcher_; 336 base::WeakPtr<ExtensionFunctionDispatcher> dispatcher_;
332 337
333 // The RenderViewHost we will send responses too. 338 // The RenderViewHost we will send responses to.
334 content::RenderViewHost* render_view_host_; 339 content::RenderViewHost* render_view_host_;
335 340
341 // The RenderFrameHost we will send responses to.
342 // NOTE: either render_view_host_ or render_frame_host_ will be set, as we
343 // port code to use RenderFrames for OOPIF. See http://crbug.com/304341.
344 content::RenderFrameHost* render_frame_host_;
345
336 // The content::BrowserContext of this function's extension. 346 // The content::BrowserContext of this function's extension.
337 content::BrowserContext* context_; 347 content::BrowserContext* context_;
338 348
339 private: 349 private:
340 class RenderViewHostTracker; 350 class RenderHostTracker;
341 351
342 virtual void Destruct() const OVERRIDE; 352 virtual void Destruct() const OVERRIDE;
343 353
344 scoped_ptr<RenderViewHostTracker> tracker_; 354 scoped_ptr<RenderHostTracker> tracker_;
345 355
346 DelegateForTests* delegate_; 356 DelegateForTests* delegate_;
347 }; 357 };
348 358
349 // Extension functions that run on the IO thread. This type of function avoids 359 // Extension functions that run on the IO thread. This type of function avoids
350 // a roundtrip to and from the UI thread (because communication with the 360 // a roundtrip to and from the UI thread (because communication with the
351 // extension process happens on the IO thread). It's intended to be used when 361 // extension process happens on the IO thread). It's intended to be used when
352 // performance is critical (e.g. the webRequest API which can block network 362 // performance is critical (e.g. the webRequest API which can block network
353 // requests). Generally, UIThreadExtensionFunction is more appropriate and will 363 // requests). Generally, UIThreadExtensionFunction is more appropriate and will
354 // be easier to use and interface with the rest of the browser. 364 // be easier to use and interface with the rest of the browser.
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 public: 436 public:
427 SyncIOThreadExtensionFunction(); 437 SyncIOThreadExtensionFunction();
428 438
429 virtual void Run() OVERRIDE; 439 virtual void Run() OVERRIDE;
430 440
431 protected: 441 protected:
432 virtual ~SyncIOThreadExtensionFunction(); 442 virtual ~SyncIOThreadExtensionFunction();
433 }; 443 };
434 444
435 #endif // EXTENSIONS_BROWSER_EXTENSION_FUNCTION_H_ 445 #endif // EXTENSIONS_BROWSER_EXTENSION_FUNCTION_H_
OLDNEW
« no previous file with comments | « content/renderer/render_frame_impl.cc ('k') | extensions/browser/extension_function.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698