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

Unified Diff: chrome/browser/extensions/extension_function.cc

Issue 8530003: Delete the temporary file when generating MHTML with the extension API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed sky's comments. Created 9 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_function.cc
diff --git a/chrome/browser/extensions/extension_function.cc b/chrome/browser/extensions/extension_function.cc
index c4a502f90ae549a5c3e4cdf4ef0d258a3599ccd0..fb943bfa1c0d0c40f6d85df1142eb7501b4a331d 100644
--- a/chrome/browser/extensions/extension_function.cc
+++ b/chrome/browser/extensions/extension_function.cc
@@ -26,8 +26,10 @@ void ExtensionFunctionDeleteTraits::Destruct(const ExtensionFunction* x) {
}
UIThreadExtensionFunction::RenderViewHostTracker::RenderViewHostTracker(
- UIThreadExtensionFunction* function)
- : function_(function) {
+ UIThreadExtensionFunction* function,
+ RenderViewHost* render_view_host)
+ : RenderViewHostObserver(render_view_host),
+ function_(function) {
registrar_.Add(this,
content::NOTIFICATION_RENDER_VIEW_HOST_DELETED,
content::Source<RenderViewHost>(function->render_view_host()));
@@ -43,6 +45,18 @@ void UIThreadExtensionFunction::RenderViewHostTracker::Observe(
function_->SetRenderViewHost(NULL);
}
+void UIThreadExtensionFunction::RenderViewHostTracker::RenderViewHostDestroyed(
+ RenderViewHost* render_view_host) {
+ // Overidding the default behavior of RenderViewHostObserver which is to
+ // delete this. In our case, we'll be deleted when the
+ // UIThreadExtensionFunction that contains us goes away.
+}
+
+bool UIThreadExtensionFunction::RenderViewHostTracker::OnMessageReceived(
+ const IPC::Message& message) {
+ return function_->OnMessageReceivedFromRenderView(message);
+}
+
ExtensionFunction::ExtensionFunction()
: request_id_(-1),
profile_id_(NULL),
@@ -139,6 +153,11 @@ UIThreadExtensionFunction::AsUIThreadExtensionFunction() {
return this;
}
+bool UIThreadExtensionFunction::OnMessageReceivedFromRenderView(
+ const IPC::Message& message) {
+ return false;
+}
+
void UIThreadExtensionFunction::Destruct() const {
BrowserThread::DeleteOnUIThread::Destruct(this);
}
@@ -146,7 +165,8 @@ void UIThreadExtensionFunction::Destruct() const {
void UIThreadExtensionFunction::SetRenderViewHost(
RenderViewHost* render_view_host) {
render_view_host_ = render_view_host;
- tracker_.reset(render_view_host ? new RenderViewHostTracker(this) : NULL);
+ tracker_.reset(render_view_host ?
+ new RenderViewHostTracker(this, render_view_host) : NULL);
}
Browser* UIThreadExtensionFunction::GetCurrentBrowser() {

Powered by Google App Engine
This is Rietveld 408576698