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

Unified Diff: chrome/browser/extensions/api/web_request/chrome_extension_web_request_event_router_delegate.cc

Issue 589153002: Remove void* in WebRequestEventRouterDelegate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase. 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: 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..7ddfd8979032ec4963b6a52e5604729dbbcb4b51 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,27 @@ 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,
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));
+ 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(

Powered by Google App Engine
This is Rietveld 408576698