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

Side by Side Diff: chrome/browser/extensions/api/cookies/cookies_api.cc

Issue 10694085: Refactor extension event distribution to use Values instead of JSON strings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase and review changes. Created 8 years, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Implements the Chrome Extensions Cookies API. 5 // Implements the Chrome Extensions Cookies API.
6 6
7 #include "chrome/browser/extensions/api/cookies/cookies_api.h" 7 #include "chrome/browser/extensions/api/cookies/cookies_api.h"
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/json/json_writer.h" 10 #include "base/json/json_writer.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 break; 57 break;
58 58
59 default: 59 default:
60 NOTREACHED(); 60 NOTREACHED();
61 } 61 }
62 } 62 }
63 63
64 void ExtensionCookiesEventRouter::CookieChanged( 64 void ExtensionCookiesEventRouter::CookieChanged(
65 Profile* profile, 65 Profile* profile,
66 ChromeCookieDetails* details) { 66 ChromeCookieDetails* details) {
67 ListValue args; 67 ListValue* args = new ListValue();
68 DictionaryValue* dict = new DictionaryValue(); 68 DictionaryValue* dict = new DictionaryValue();
69 dict->SetBoolean(keys::kRemovedKey, details->removed); 69 dict->SetBoolean(keys::kRemovedKey, details->removed);
70 dict->Set( 70 dict->Set(
71 keys::kCookieKey, 71 keys::kCookieKey,
72 cookies_helpers::CreateCookieValue(*details->cookie, 72 cookies_helpers::CreateCookieValue(*details->cookie,
73 cookies_helpers::GetStoreIdFromProfile(profile))); 73 cookies_helpers::GetStoreIdFromProfile(profile)));
74 74
75 // Map the interal cause to an external string. 75 // Map the interal cause to an external string.
76 std::string cause; 76 std::string cause;
77 switch (details->cause) { 77 switch (details->cause) {
(...skipping 15 matching lines...) Expand all
93 93
94 case net::CookieMonster::Delegate::CHANGE_COOKIE_EXPIRED_OVERWRITE: 94 case net::CookieMonster::Delegate::CHANGE_COOKIE_EXPIRED_OVERWRITE:
95 cause = keys::kExpiredOverwriteChangeCause; 95 cause = keys::kExpiredOverwriteChangeCause;
96 break; 96 break;
97 97
98 default: 98 default:
99 NOTREACHED(); 99 NOTREACHED();
100 } 100 }
101 dict->SetString(keys::kCauseKey, cause); 101 dict->SetString(keys::kCauseKey, cause);
102 102
103 args.Append(dict); 103 args->Append(dict);
104 104
105 std::string json_args;
106 base::JSONWriter::Write(&args, &json_args);
107 GURL cookie_domain = 105 GURL cookie_domain =
108 cookies_helpers::GetURLFromCanonicalCookie(*details->cookie); 106 cookies_helpers::GetURLFromCanonicalCookie(*details->cookie);
109 DispatchEvent(profile, keys::kOnChanged, json_args, cookie_domain); 107 DispatchEvent(profile, keys::kOnChanged, args, cookie_domain);
110 } 108 }
111 109
112 void ExtensionCookiesEventRouter::DispatchEvent(Profile* profile, 110 void ExtensionCookiesEventRouter::DispatchEvent(Profile* profile,
113 const char* event_name, 111 const char* event_name,
114 const std::string& json_args, 112 ListValue* event_args,
115 GURL& cookie_domain) { 113 GURL& cookie_domain) {
116 if (profile && profile->GetExtensionEventRouter()) { 114 if (profile && profile->GetExtensionEventRouter()) {
117 profile->GetExtensionEventRouter()->DispatchEventToRenderers( 115 profile->GetExtensionEventRouter()->DispatchEventToRenderers(
118 event_name, json_args, profile, cookie_domain, EventFilteringInfo()); 116 event_name, event_args, profile, cookie_domain, EventFilteringInfo());
119 } 117 }
120 } 118 }
121 119
122 bool CookiesFunction::ParseUrl(const DictionaryValue* details, GURL* url, 120 bool CookiesFunction::ParseUrl(const DictionaryValue* details, GURL* url,
123 bool check_host_permissions) { 121 bool check_host_permissions) {
124 DCHECK(details && url); 122 DCHECK(details && url);
125 std::string url_string; 123 std::string url_string;
126 // Get the URL string or return false. 124 // Get the URL string or return false.
127 EXTENSION_FUNCTION_VALIDATE(details->GetString(keys::kUrlKey, &url_string)); 125 EXTENSION_FUNCTION_VALIDATE(details->GetString(keys::kUrlKey, &url_string));
128 *url = GURL(url_string); 126 *url = GURL(url_string);
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 } 536 }
539 result_.reset(cookie_store_list); 537 result_.reset(cookie_store_list);
540 return true; 538 return true;
541 } 539 }
542 540
543 void GetAllCookieStoresFunction::Run() { 541 void GetAllCookieStoresFunction::Run() {
544 SendResponse(RunImpl()); 542 SendResponse(RunImpl());
545 } 543 }
546 544
547 } // namespace extensions 545 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698