Chromium Code Reviews| Index: chrome/browser/extensions/extension_function.cc |
| diff --git a/chrome/browser/extensions/extension_function.cc b/chrome/browser/extensions/extension_function.cc |
| index 72728aa2e2c7cfc304cf25a1ac29bcfdbd8e9cab..f708741888dd9b503075f23406e90633ba1edb60 100644 |
| --- a/chrome/browser/extensions/extension_function.cc |
| +++ b/chrome/browser/extensions/extension_function.cc |
| @@ -43,6 +43,25 @@ void UIThreadExtensionFunction::RenderViewHostTracker::Observe( |
| function_->SetRenderViewHost(NULL); |
| } |
| +UIThreadExtensionFunction::ExtensionRenderViewHostObserver:: |
| + ExtensionRenderViewHostObserver(UIThreadExtensionFunction* function, |
| + RenderViewHost* render_view_host) |
| + : RenderViewHostObserver(render_view_host), |
| + function_(function) { |
| +} |
| + |
| +void UIThreadExtensionFunction::ExtensionRenderViewHostObserver:: |
| + RenderViewHostDestroyed(RenderViewHost* render_view_host) { |
| + // Default behavior is to delete this. |
|
asargent_no_longer_on_chrome
2011/11/15 18:56:31
This comment is kind of confusing - do you mean th
Jay Civelli
2011/11/18 23:14:32
Yes. Clarified comment.
|
| + // In our case, we'll be deleted when the UIThreadExtensionFunction containing |
| + // us goes away. |
| +} |
| + |
| +bool UIThreadExtensionFunction::ExtensionRenderViewHostObserver:: |
| + OnMessageReceived(const IPC::Message& message) { |
| + return function_->OnMessageReceivedFromRenderView(message); |
| +} |
| + |
| ExtensionFunction::ExtensionFunction() |
| : request_id_(-1), |
| profile_id_(NULL), |
| @@ -139,6 +158,11 @@ UIThreadExtensionFunction::AsUIThreadExtensionFunction() { |
| return this; |
| } |
| +bool UIThreadExtensionFunction::OnMessageReceivedFromRenderView( |
| + const IPC::Message& message) { |
| + return false; |
| +} |
| + |
| void UIThreadExtensionFunction::Destruct() const { |
| BrowserThread::DeleteOnUIThread::Destruct(this); |
| } |
| @@ -146,6 +170,8 @@ void UIThreadExtensionFunction::Destruct() const { |
| void UIThreadExtensionFunction::SetRenderViewHost( |
| RenderViewHost* render_view_host) { |
| render_view_host_ = render_view_host; |
| + render_view_host_observer_.reset(render_view_host_ ? |
| + new ExtensionRenderViewHostObserver(this, render_view_host) : NULL); |
| tracker_.reset(render_view_host ? new RenderViewHostTracker(this) : NULL); |
| } |