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 986480b7ba2474992d18cc6b9a05bde1730e0fc3..ed9358202c4ddf7085ca8800ec85a5e58ba15871 100644 |
--- a/extensions/browser/api/web_request/web_request_api.cc |
+++ b/extensions/browser/api/web_request/web_request_api.cc |
@@ -37,6 +37,7 @@ |
#include "extensions/browser/api/web_request/web_request_event_details.h" |
#include "extensions/browser/api/web_request/web_request_event_router_delegate.h" |
#include "extensions/browser/api/web_request/web_request_time_tracker.h" |
+#include "extensions/browser/api_activity_monitor.h" |
#include "extensions/browser/event_router.h" |
#include "extensions/browser/extension_prefs.h" |
#include "extensions/browser/extension_registry.h" |
@@ -575,10 +576,9 @@ ExtensionWebRequestEventRouter* ExtensionWebRequestEventRouter::GetInstance() { |
} |
ExtensionWebRequestEventRouter::ExtensionWebRequestEventRouter() |
- : request_time_tracker_(new ExtensionWebRequestTimeTracker) { |
- web_request_event_router_delegate_.reset( |
- ExtensionsAPIClient::Get()->CreateWebRequestEventRouterDelegate()); |
-} |
+ : request_time_tracker_(new ExtensionWebRequestTimeTracker), |
+ web_request_event_router_delegate_( |
+ ExtensionsAPIClient::Get()->CreateWebRequestEventRouterDelegate()) {} |
ExtensionWebRequestEventRouter::~ExtensionWebRequestEventRouter() { |
} |
@@ -1371,7 +1371,8 @@ void ExtensionWebRequestEventRouter::GetMatchingListenersImpl( |
crosses_incognito, |
WebRequestPermissions::REQUIRE_HOST_PERMISSION); |
if (access != PermissionsData::ACCESS_ALLOWED) { |
- if (access == PermissionsData::ACCESS_WITHHELD) { |
+ if (access == PermissionsData::ACCESS_WITHHELD && |
+ web_request_event_router_delegate_) { |
web_request_event_router_delegate_->NotifyWebRequestWithheld( |
render_process_id, render_frame_id, listener.extension_id); |
} |
@@ -1603,34 +1604,6 @@ std::unique_ptr<base::DictionaryValue> SummarizeResponseDelta( |
} // namespace |
-void ExtensionWebRequestEventRouter::LogExtensionActivity( |
- void* browser_context_id, |
- bool is_incognito, |
- const std::string& extension_id, |
- const GURL& url, |
- const std::string& api_call, |
- std::unique_ptr<base::DictionaryValue> details) { |
- if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { |
- BrowserThread::PostTask( |
- BrowserThread::UI, |
- FROM_HERE, |
- base::Bind(&ExtensionWebRequestEventRouter::LogExtensionActivity, |
- base::Unretained(this), |
- browser_context_id, |
- is_incognito, |
- extension_id, |
- url, |
- api_call, |
- base::Passed(&details))); |
- } else { |
- if (web_request_event_router_delegate_) { |
- web_request_event_router_delegate_->LogExtensionActivity( |
- reinterpret_cast<content::BrowserContext*>(browser_context_id), |
- is_incognito, extension_id, url, api_call, std::move(details)); |
- } |
- } |
-} |
- |
void ExtensionWebRequestEventRouter::DecrementBlockCount( |
void* browser_context, |
const std::string& extension_id, |
@@ -1653,12 +1626,10 @@ void ExtensionWebRequestEventRouter::DecrementBlockCount( |
helpers::EventResponseDelta* delta = |
CalculateDelta(&blocked_request, response); |
- LogExtensionActivity(browser_context, |
- blocked_request.is_incognito, |
- extension_id, |
- blocked_request.request->url(), |
- event_name, |
- SummarizeResponseDelta(event_name, *delta)); |
+ activity_monitor::OnWebRequestApiUsed( |
+ static_cast<content::BrowserContext*>(browser_context), extension_id, |
+ blocked_request.request->url(), blocked_request.is_incognito, |
+ event_name, SummarizeResponseDelta(event_name, *delta)); |
blocked_request.response_deltas.push_back( |
linked_ptr<helpers::EventResponseDelta>(delta)); |