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

Unified Diff: extensions/browser/guest_view/web_view/web_view_guest.cc

Issue 596003002: Allow declarative webrequest and webrequest in extensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: extensions/browser/guest_view/web_view/web_view_guest.cc
diff --git a/extensions/browser/guest_view/web_view/web_view_guest.cc b/extensions/browser/guest_view/web_view/web_view_guest.cc
index b3dda987a080982e9fcc984ca330266b3ccf5556..2e124e01dc070380423b783f5e2f6949dd845d69 100644
--- a/extensions/browser/guest_view/web_view/web_view_guest.cc
+++ b/extensions/browser/guest_view/web_view/web_view_guest.cc
@@ -31,6 +31,7 @@
#include "content/public/common/stop_find_action.h"
#include "content/public/common/url_constants.h"
#include "extensions/browser/api/extensions_api_client.h"
+#include "extensions/browser/api/web_request/web_request_api.h"
#include "extensions/browser/api/web_view/web_view_internal_api.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/guest_view/guest_view_manager.h"
@@ -132,6 +133,19 @@ void ParsePartitionParam(const base::DictionaryValue& create_params,
}
}
+void RemoveWebViewEventListenersOnIOThread(
+ void* profile,
+ const std::string& extension_id,
+ int embedder_process_id,
+ int view_instance_id) {
+ DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
+ ExtensionWebRequestEventRouter::GetInstance()->RemoveWebViewEventListeners(
+ profile,
+ extension_id,
+ embedder_process_id,
+ view_instance_id);
+}
+
} // namespace
// static
@@ -336,8 +350,15 @@ void WebViewGuest::DidStopLoading() {
}
void WebViewGuest::EmbedderDestroyed() {
- if (web_view_guest_delegate_)
- web_view_guest_delegate_->OnEmbedderDestroyed();
+ content::BrowserThread::PostTask(
+ content::BrowserThread::IO,
+ FROM_HERE,
+ base::Bind(
+ &RemoveWebViewEventListenersOnIOThread,
+ browser_context(),
+ embedder_extension_id(),
+ embedder_render_process_id(),
+ view_instance_id()));
}
void WebViewGuest::GuestDestroyed() {
« no previous file with comments | « extensions/browser/api/extensions_api_client.cc ('k') | extensions/browser/guest_view/web_view/web_view_guest_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698