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

Unified Diff: extensions/browser/api/web_request/web_request_api.cc

Issue 2721793002: Extensions: Make ExtensionWebRequestEventRouter leaky. (Closed)
Patch Set: Delete default destructor Created 3 years, 10 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
« no previous file with comments | « extensions/browser/api/web_request/web_request_api.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/browser/api/web_request/web_request_api.cc
diff --git a/extensions/browser/api/web_request/web_request_api.cc b/extensions/browser/api/web_request/web_request_api.cc
index b81023248535d3064adaf563327f06568d444b64..0451a519b07235a3f02c438f858f37f65b6494aa 100644
--- a/extensions/browser/api/web_request/web_request_api.cc
+++ b/extensions/browser/api/web_request/web_request_api.cc
@@ -563,7 +563,9 @@ ExtensionWebRequestEventRouter::RequestFilter::~RequestFilter() {
// static
ExtensionWebRequestEventRouter* ExtensionWebRequestEventRouter::GetInstance() {
- return base::Singleton<ExtensionWebRequestEventRouter>::get();
+ static ExtensionWebRequestEventRouter* instance =
Devlin 2017/02/28 22:10:04 nit: Let's use CR_DEFINE_STATIC_LOCAL() just so th
karandeepb 2017/02/28 23:01:14 Done.
+ new ExtensionWebRequestEventRouter();
+ return instance;
}
ExtensionWebRequestEventRouter::ExtensionWebRequestEventRouter()
@@ -571,9 +573,6 @@ ExtensionWebRequestEventRouter::ExtensionWebRequestEventRouter()
web_request_event_router_delegate_(
ExtensionsAPIClient::Get()->CreateWebRequestEventRouterDelegate()) {}
-ExtensionWebRequestEventRouter::~ExtensionWebRequestEventRouter() {
-}
-
void ExtensionWebRequestEventRouter::RegisterRulesRegistry(
void* browser_context,
int rules_registry_id,
@@ -1108,9 +1107,10 @@ bool ExtensionWebRequestEventRouter::DispatchEvent(
DispatchEventToListeners(browser_context, std::move(listeners_to_dispatch),
std::move(event_details));
} else {
- event_details.release()->DetermineFrameDataOnIO(base::Bind(
- &ExtensionWebRequestEventRouter::DispatchEventToListeners, AsWeakPtr(),
- browser_context, base::Passed(&listeners_to_dispatch)));
+ event_details.release()->DetermineFrameDataOnIO(
+ base::Bind(&ExtensionWebRequestEventRouter::DispatchEventToListeners,
+ base::Unretained(this), browser_context,
Devlin 2017/02/28 22:10:04 nit: when using Unretained, it's good practice to
karandeepb 2017/02/28 23:01:14 Done.
+ base::Passed(&listeners_to_dispatch)));
}
if (num_handlers_blocking > 0) {
@@ -1943,7 +1943,7 @@ bool ExtensionWebRequestEventRouter::ProcessDeclarativeRules(
rules_registry->ready().Post(
FROM_HERE,
base::Bind(&ExtensionWebRequestEventRouter::OnRulesRegistryReady,
- AsWeakPtr(), browser_context, event_name,
+ base::Unretained(this), browser_context, event_name,
request->identifier(), request_stage));
BlockedRequest& blocked_request = blocked_requests_[request->identifier()];
blocked_request.num_handlers_blocking++;
« no previous file with comments | « extensions/browser/api/web_request/web_request_api.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698