Chromium Code Reviews| Index: chrome/browser/extensions/api/web_request/chrome_extension_web_request_event_router_delegate.cc |
| diff --git a/chrome/browser/extensions/api/web_request/chrome_extension_web_request_event_router_delegate.cc b/chrome/browser/extensions/api/web_request/chrome_extension_web_request_event_router_delegate.cc |
| index 2a7a1e41039dd8d8240b703fc4c61352a3fcf3bf..53a75082288bb405b7293a448dcb4a12af584e8b 100644 |
| --- a/chrome/browser/extensions/api/web_request/chrome_extension_web_request_event_router_delegate.cc |
| +++ b/chrome/browser/extensions/api/web_request/chrome_extension_web_request_event_router_delegate.cc |
| @@ -11,10 +11,10 @@ |
| #include "base/strings/utf_string_conversions.h" |
| #include "chrome/browser/extensions/activity_log/activity_action_constants.h" |
| #include "chrome/browser/extensions/activity_log/activity_log.h" |
| -#include "chrome/browser/extensions/activity_log/web_request_constants.h" |
| #include "chrome/browser/extensions/api/web_request/web_request_api.h" |
| #include "chrome/browser/extensions/extension_renderer_state.h" |
| #include "content/public/browser/resource_request_info.h" |
| +#include "extensions/browser/api/activity_log/web_request_constants.h" |
| #include "extensions/browser/api/web_request/web_request_api_constants.h" |
| #include "extensions/browser/api/web_request/web_request_api_helpers.h" |
| #include "net/url_request/url_request.h" |
| @@ -25,118 +25,6 @@ namespace keys = extension_web_request_api_constants; |
| namespace { |
| -// Convert a RequestCookieModifications/ResponseCookieModifications object to a |
| -// base::ListValue which summarizes the changes made. This is templated since |
| -// the two types (request/response) are different but contain essentially the |
| -// same fields. |
| -template<typename CookieType> |
| -base::ListValue* SummarizeCookieModifications( |
| - const std::vector<linked_ptr<CookieType> >& modifications) { |
| - scoped_ptr<base::ListValue> cookie_modifications(new base::ListValue()); |
| - for (typename std::vector<linked_ptr<CookieType> >::const_iterator i = |
| - modifications.begin(); |
| - i != modifications.end(); ++i) { |
| - scoped_ptr<base::DictionaryValue> summary(new base::DictionaryValue()); |
| - const CookieType& mod = *i->get(); |
| - switch (mod.type) { |
| - case helpers::ADD: |
| - summary->SetString(activitylog::kCookieModificationTypeKey, |
| - activitylog::kCookieModificationAdd); |
| - break; |
| - case helpers::EDIT: |
| - summary->SetString(activitylog::kCookieModificationTypeKey, |
| - activitylog::kCookieModificationEdit); |
| - break; |
| - case helpers::REMOVE: |
| - summary->SetString(activitylog::kCookieModificationTypeKey, |
| - activitylog::kCookieModificationRemove); |
| - break; |
| - } |
| - if (mod.filter) { |
| - if (mod.filter->name) |
| - summary->SetString(activitylog::kCookieFilterNameKey, |
| - *mod.modification->name); |
| - if (mod.filter->domain) |
| - summary->SetString(activitylog::kCookieFilterDomainKey, |
| - *mod.modification->name); |
| - } |
| - if (mod.modification) { |
| - if (mod.modification->name) |
| - summary->SetString(activitylog::kCookieModDomainKey, |
| - *mod.modification->name); |
| - if (mod.modification->domain) |
| - summary->SetString(activitylog::kCookieModDomainKey, |
| - *mod.modification->name); |
| - } |
| - cookie_modifications->Append(summary.release()); |
| - } |
| - return cookie_modifications.release(); |
| -} |
| - |
| -base::Value* SerializeResponseHeaders(const helpers::ResponseHeaders& headers) { |
| - scoped_ptr<base::ListValue> serialized_headers(new base::ListValue()); |
| - for (helpers::ResponseHeaders::const_iterator i = headers.begin(); |
| - i != headers.end(); ++i) { |
| - serialized_headers->Append( |
| - helpers::CreateHeaderDictionary(i->first, i->second)); |
| - } |
| - return serialized_headers.release(); |
| -} |
| - |
| -// Converts an EventResponseDelta object to a dictionary value suitable for the |
| -// activity log. |
| -scoped_ptr<base::DictionaryValue> SummarizeResponseDelta( |
| - const std::string& event_name, |
| - const helpers::EventResponseDelta& delta) { |
| - scoped_ptr<base::DictionaryValue> details(new base::DictionaryValue()); |
| - if (delta.cancel) { |
| - details->SetBoolean(activitylog::kCancelKey, true); |
| - } |
| - if (!delta.new_url.is_empty()) { |
| - details->SetString(activitylog::kNewUrlKey, delta.new_url.spec()); |
| - } |
| - |
| - scoped_ptr<base::ListValue> modified_headers(new base::ListValue()); |
| - net::HttpRequestHeaders::Iterator iter(delta.modified_request_headers); |
| - while (iter.GetNext()) { |
| - modified_headers->Append( |
| - helpers::CreateHeaderDictionary(iter.name(), iter.value())); |
| - } |
| - if (!modified_headers->empty()) { |
| - details->Set(activitylog::kModifiedRequestHeadersKey, |
| - modified_headers.release()); |
| - } |
| - |
| - scoped_ptr<base::ListValue> deleted_headers(new base::ListValue()); |
| - deleted_headers->AppendStrings(delta.deleted_request_headers); |
| - if (!deleted_headers->empty()) { |
| - details->Set(activitylog::kDeletedRequestHeadersKey, |
| - deleted_headers.release()); |
| - } |
| - |
| - if (!delta.added_response_headers.empty()) { |
| - details->Set(activitylog::kAddedRequestHeadersKey, |
| - SerializeResponseHeaders(delta.added_response_headers)); |
| - } |
| - if (!delta.deleted_response_headers.empty()) { |
| - details->Set(activitylog::kDeletedResponseHeadersKey, |
| - SerializeResponseHeaders(delta.deleted_response_headers)); |
| - } |
| - if (delta.auth_credentials) { |
| - details->SetString(activitylog::kAuthCredentialsKey, |
| - base::UTF16ToUTF8( |
| - delta.auth_credentials->username()) + ":*"); |
| - } |
| - |
| - if (!delta.response_cookie_modifications.empty()) { |
| - details->Set( |
| - activitylog::kResponseCookieModificationsKey, |
| - SummarizeCookieModifications(delta.response_cookie_modifications)); |
| - } |
| - |
| - return details.Pass(); |
| -} |
| - |
| void ExtractExtraRequestDetailsInternal( |
| net::URLRequest* request, int* tab_id, int* window_id) { |
| if (!request->GetUserData(NULL)) |
| @@ -159,57 +47,29 @@ ChromeExtensionWebRequestEventRouterDelegate:: |
| } |
| void ChromeExtensionWebRequestEventRouterDelegate::LogExtensionActivity( |
| - void* browser_context_id, |
| - bool is_incognito, |
| - const std::string& extension_id, |
| - const GURL& url, |
| - const std::string& api_call, |
| - const helpers::EventResponseDelta& delta) { |
| - scoped_ptr<base::DictionaryValue> details = SummarizeResponseDelta( |
| - api_call, delta); |
| - LogExtensionActivityInternal( |
| - browser_context_id, is_incognito, extension_id, |
| - url, api_call, details.Pass()); |
| -} |
| - |
| -void ChromeExtensionWebRequestEventRouterDelegate::LogExtensionActivityInternal( |
| - void* browser_context_id, |
| + content::BrowserContext* browser_context_id, |
|
Fady Samuel
2014/09/22 17:21:21
browser_context
Xi Han
2014/09/22 17:50:26
Done.
|
| bool is_incognito, |
| const std::string& extension_id, |
| const GURL& url, |
| const std::string& api_call, |
| scoped_ptr<base::DictionaryValue> details) { |
| - if (!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)) { |
| - content::BrowserThread::PostTask( |
| - content::BrowserThread::UI, |
| - FROM_HERE, |
| - base::Bind(&ChromeExtensionWebRequestEventRouterDelegate:: |
| - LogExtensionActivityInternal, |
| - base::Unretained(this), |
| - browser_context_id, |
| - is_incognito, |
| - extension_id, |
| - url, |
| - api_call, |
| - base::Passed(&details))); |
| - } else { |
| - content::BrowserContext* browser_context = |
| - static_cast<content::BrowserContext*>(browser_context_id); |
| - if (!extensions::ExtensionsBrowserClient::Get()->IsValidContext( |
| - browser_context)) |
| - return; |
| + DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| + content::BrowserContext* browser_context = |
| + static_cast<content::BrowserContext*>(browser_context_id); |
|
Fady Samuel
2014/09/22 17:21:21
Remove this?
Xi Han
2014/09/22 17:50:26
Great catch, thanks.
|
| + if (!extensions::ExtensionsBrowserClient::Get()->IsValidContext( |
| + browser_context)) |
| + return; |
| - scoped_refptr<extensions::Action> action = |
| - new extensions::Action(extension_id, |
| - base::Time::Now(), |
| - extensions::Action::ACTION_WEB_REQUEST, |
| - api_call); |
| - action->set_page_url(url); |
| - action->set_page_incognito(is_incognito); |
| - action->mutable_other()->Set(activity_log_constants::kActionWebRequest, |
| - details.release()); |
| - extensions::ActivityLog::GetInstance(browser_context)->LogAction(action); |
| - } |
| + scoped_refptr<extensions::Action> action = |
| + new extensions::Action(extension_id, |
| + base::Time::Now(), |
| + extensions::Action::ACTION_WEB_REQUEST, |
| + api_call); |
| + action->set_page_url(url); |
| + action->set_page_incognito(is_incognito); |
| + action->mutable_other()->Set(activity_log_constants::kActionWebRequest, |
| + details.release()); |
| + extensions::ActivityLog::GetInstance(browser_context)->LogAction(action); |
| } |
| void ChromeExtensionWebRequestEventRouterDelegate::ExtractExtraRequestDetails( |