| OLD | NEW |
| 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 23 matching lines...) Expand all Loading... |
| 34 | 34 |
| 35 namespace content { | 35 namespace content { |
| 36 class BrowserContext; | 36 class BrowserContext; |
| 37 class RenderFrameHost; | 37 class RenderFrameHost; |
| 38 class RenderViewHost; | 38 class RenderViewHost; |
| 39 class WebContents; | 39 class WebContents; |
| 40 } | 40 } |
| 41 | 41 |
| 42 namespace extensions { | 42 namespace extensions { |
| 43 class ExtensionFunctionDispatcher; | 43 class ExtensionFunctionDispatcher; |
| 44 class ExtensionMessageFilter; | 44 class IOThreadExtensionMessageFilter; |
| 45 class QuotaLimitHeuristic; | 45 class QuotaLimitHeuristic; |
| 46 } | 46 } |
| 47 | 47 |
| 48 namespace IPC { | 48 namespace IPC { |
| 49 class Sender; | 49 class Sender; |
| 50 } | 50 } |
| 51 | 51 |
| 52 #ifdef NDEBUG | 52 #ifdef NDEBUG |
| 53 #define EXTENSION_FUNCTION_VALIDATE(test) \ | 53 #define EXTENSION_FUNCTION_VALIDATE(test) \ |
| 54 do { \ | 54 do { \ |
| (...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 516 // performance is critical (e.g. the webRequest API which can block network | 516 // performance is critical (e.g. the webRequest API which can block network |
| 517 // requests). Generally, UIThreadExtensionFunction is more appropriate and will | 517 // requests). Generally, UIThreadExtensionFunction is more appropriate and will |
| 518 // be easier to use and interface with the rest of the browser. | 518 // be easier to use and interface with the rest of the browser. |
| 519 class IOThreadExtensionFunction : public ExtensionFunction { | 519 class IOThreadExtensionFunction : public ExtensionFunction { |
| 520 public: | 520 public: |
| 521 IOThreadExtensionFunction(); | 521 IOThreadExtensionFunction(); |
| 522 | 522 |
| 523 IOThreadExtensionFunction* AsIOThreadExtensionFunction() override; | 523 IOThreadExtensionFunction* AsIOThreadExtensionFunction() override; |
| 524 | 524 |
| 525 void set_ipc_sender( | 525 void set_ipc_sender( |
| 526 base::WeakPtr<extensions::ExtensionMessageFilter> ipc_sender, | 526 base::WeakPtr<extensions::IOThreadExtensionMessageFilter> ipc_sender, |
| 527 int routing_id) { | 527 int routing_id) { |
| 528 ipc_sender_ = ipc_sender; | 528 ipc_sender_ = ipc_sender; |
| 529 routing_id_ = routing_id; | 529 routing_id_ = routing_id; |
| 530 } | 530 } |
| 531 | 531 |
| 532 base::WeakPtr<extensions::ExtensionMessageFilter> ipc_sender_weak() const { | 532 base::WeakPtr<extensions::IOThreadExtensionMessageFilter> ipc_sender_weak() |
| 533 const { |
| 533 return ipc_sender_; | 534 return ipc_sender_; |
| 534 } | 535 } |
| 535 | 536 |
| 536 int routing_id() const { return routing_id_; } | 537 int routing_id() const { return routing_id_; } |
| 537 | 538 |
| 538 void set_extension_info_map(const extensions::InfoMap* extension_info_map) { | 539 void set_extension_info_map(const extensions::InfoMap* extension_info_map) { |
| 539 extension_info_map_ = extension_info_map; | 540 extension_info_map_ = extension_info_map; |
| 540 } | 541 } |
| 541 const extensions::InfoMap* extension_info_map() const { | 542 const extensions::InfoMap* extension_info_map() const { |
| 542 return extension_info_map_.get(); | 543 return extension_info_map_.get(); |
| 543 } | 544 } |
| 544 | 545 |
| 545 protected: | 546 protected: |
| 546 friend struct content::BrowserThread::DeleteOnThread< | 547 friend struct content::BrowserThread::DeleteOnThread< |
| 547 content::BrowserThread::IO>; | 548 content::BrowserThread::IO>; |
| 548 friend class base::DeleteHelper<IOThreadExtensionFunction>; | 549 friend class base::DeleteHelper<IOThreadExtensionFunction>; |
| 549 | 550 |
| 550 ~IOThreadExtensionFunction() override; | 551 ~IOThreadExtensionFunction() override; |
| 551 | 552 |
| 552 void Destruct() const override; | 553 void Destruct() const override; |
| 553 | 554 |
| 554 void SendResponse(bool success) override; | 555 void SendResponse(bool success) override; |
| 555 | 556 |
| 556 private: | 557 private: |
| 557 base::WeakPtr<extensions::ExtensionMessageFilter> ipc_sender_; | 558 base::WeakPtr<extensions::IOThreadExtensionMessageFilter> ipc_sender_; |
| 558 int routing_id_; | 559 int routing_id_; |
| 559 | 560 |
| 560 scoped_refptr<const extensions::InfoMap> extension_info_map_; | 561 scoped_refptr<const extensions::InfoMap> extension_info_map_; |
| 561 }; | 562 }; |
| 562 | 563 |
| 563 // Base class for an extension function that runs asynchronously *relative to | 564 // Base class for an extension function that runs asynchronously *relative to |
| 564 // the browser's UI thread*. | 565 // the browser's UI thread*. |
| 565 class AsyncExtensionFunction : public UIThreadExtensionFunction { | 566 class AsyncExtensionFunction : public UIThreadExtensionFunction { |
| 566 public: | 567 public: |
| 567 AsyncExtensionFunction(); | 568 AsyncExtensionFunction(); |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 625 virtual bool RunSync() = 0; | 626 virtual bool RunSync() = 0; |
| 626 | 627 |
| 627 // ValidationFailure override to match RunSync(). | 628 // ValidationFailure override to match RunSync(). |
| 628 static bool ValidationFailure(SyncIOThreadExtensionFunction* function); | 629 static bool ValidationFailure(SyncIOThreadExtensionFunction* function); |
| 629 | 630 |
| 630 private: | 631 private: |
| 631 ResponseAction Run() override; | 632 ResponseAction Run() override; |
| 632 }; | 633 }; |
| 633 | 634 |
| 634 #endif // EXTENSIONS_BROWSER_EXTENSION_FUNCTION_H_ | 635 #endif // EXTENSIONS_BROWSER_EXTENSION_FUNCTION_H_ |
| OLD | NEW |