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

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

Issue 10694106: Added support for multiple parameters to Extension API callbacks. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Synced. 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
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 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 base::Bind(&GetCookieFunction::GetCookieCallback, this)); 223 base::Bind(&GetCookieFunction::GetCookieCallback, this));
224 } 224 }
225 225
226 void GetCookieFunction::GetCookieCallback(const net::CookieList& cookie_list) { 226 void GetCookieFunction::GetCookieCallback(const net::CookieList& cookie_list) {
227 net::CookieList::const_iterator it; 227 net::CookieList::const_iterator it;
228 for (it = cookie_list.begin(); it != cookie_list.end(); ++it) { 228 for (it = cookie_list.begin(); it != cookie_list.end(); ++it) {
229 // Return the first matching cookie. Relies on the fact that the 229 // Return the first matching cookie. Relies on the fact that the
230 // CookieMonster returns them in canonical order (longest path, then 230 // CookieMonster returns them in canonical order (longest path, then
231 // earliest creation time). 231 // earliest creation time).
232 if (it->Name() == name_) { 232 if (it->Name() == name_) {
233 result_.reset( 233 SetResult(cookies_helpers::CreateCookieValue(*it, store_id_));
234 cookies_helpers::CreateCookieValue(*it, store_id_));
235 break; 234 break;
236 } 235 }
237 } 236 }
238 237
239 // The cookie doesn't exist; return null. 238 // The cookie doesn't exist; return null.
240 if (it == cookie_list.end()) 239 if (it == cookie_list.end())
241 result_.reset(Value::CreateNullValue()); 240 SetResult(Value::CreateNullValue());
242 241
243 bool rv = BrowserThread::PostTask( 242 bool rv = BrowserThread::PostTask(
244 BrowserThread::UI, FROM_HERE, 243 BrowserThread::UI, FROM_HERE,
245 base::Bind(&GetCookieFunction::RespondOnUIThread, this)); 244 base::Bind(&GetCookieFunction::RespondOnUIThread, this));
246 DCHECK(rv); 245 DCHECK(rv);
247 } 246 }
248 247
249 void GetCookieFunction::RespondOnUIThread() { 248 void GetCookieFunction::RespondOnUIThread() {
250 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 249 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
251 SendResponse(true); 250 SendResponse(true);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 } 288 }
290 289
291 void GetAllCookiesFunction::GetAllCookiesCallback( 290 void GetAllCookiesFunction::GetAllCookiesCallback(
292 const net::CookieList& cookie_list) { 291 const net::CookieList& cookie_list) {
293 const extensions::Extension* extension = GetExtension(); 292 const extensions::Extension* extension = GetExtension();
294 if (extension) { 293 if (extension) {
295 ListValue* matching_list = new ListValue(); 294 ListValue* matching_list = new ListValue();
296 cookies_helpers::AppendMatchingCookiesToList( 295 cookies_helpers::AppendMatchingCookiesToList(
297 cookie_list, store_id_, url_, details_, 296 cookie_list, store_id_, url_, details_,
298 GetExtension(), matching_list); 297 GetExtension(), matching_list);
299 result_.reset(matching_list); 298 SetResult(matching_list);
300 } 299 }
301 bool rv = BrowserThread::PostTask( 300 bool rv = BrowserThread::PostTask(
302 BrowserThread::UI, FROM_HERE, 301 BrowserThread::UI, FROM_HERE,
303 base::Bind(&GetAllCookiesFunction::RespondOnUIThread, this)); 302 base::Bind(&GetAllCookiesFunction::RespondOnUIThread, this));
304 DCHECK(rv); 303 DCHECK(rv);
305 } 304 }
306 305
307 void GetAllCookiesFunction::RespondOnUIThread() { 306 void GetAllCookiesFunction::RespondOnUIThread() {
308 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 307 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
309 SendResponse(true); 308 SendResponse(true);
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 base::Bind(&SetCookieFunction::PullCookieCallback, this)); 400 base::Bind(&SetCookieFunction::PullCookieCallback, this));
402 } 401 }
403 402
404 void SetCookieFunction::PullCookieCallback(const net::CookieList& cookie_list) { 403 void SetCookieFunction::PullCookieCallback(const net::CookieList& cookie_list) {
405 net::CookieList::const_iterator it; 404 net::CookieList::const_iterator it;
406 for (it = cookie_list.begin(); it != cookie_list.end(); ++it) { 405 for (it = cookie_list.begin(); it != cookie_list.end(); ++it) {
407 // Return the first matching cookie. Relies on the fact that the 406 // Return the first matching cookie. Relies on the fact that the
408 // CookieMonster returns them in canonical order (longest path, then 407 // CookieMonster returns them in canonical order (longest path, then
409 // earliest creation time). 408 // earliest creation time).
410 if (it->Name() == name_) { 409 if (it->Name() == name_) {
411 result_.reset( 410 SetResult(cookies_helpers::CreateCookieValue(*it, store_id_));
412 cookies_helpers::CreateCookieValue(*it, store_id_));
413 break; 411 break;
414 } 412 }
415 } 413 }
416 414
417 bool rv = BrowserThread::PostTask( 415 bool rv = BrowserThread::PostTask(
418 BrowserThread::UI, FROM_HERE, 416 BrowserThread::UI, FROM_HERE,
419 base::Bind(&SetCookieFunction::RespondOnUIThread, this)); 417 base::Bind(&SetCookieFunction::RespondOnUIThread, this));
420 DCHECK(rv); 418 DCHECK(rv);
421 } 419 }
422 420
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
474 url_, name_, 472 url_, name_,
475 base::Bind(&RemoveCookieFunction::RemoveCookieCallback, this)); 473 base::Bind(&RemoveCookieFunction::RemoveCookieCallback, this));
476 } 474 }
477 475
478 void RemoveCookieFunction::RemoveCookieCallback() { 476 void RemoveCookieFunction::RemoveCookieCallback() {
479 // Build the callback result 477 // Build the callback result
480 DictionaryValue* resultDictionary = new DictionaryValue(); 478 DictionaryValue* resultDictionary = new DictionaryValue();
481 resultDictionary->SetString(keys::kNameKey, name_); 479 resultDictionary->SetString(keys::kNameKey, name_);
482 resultDictionary->SetString(keys::kUrlKey, url_.spec()); 480 resultDictionary->SetString(keys::kUrlKey, url_.spec());
483 resultDictionary->SetString(keys::kStoreIdKey, store_id_); 481 resultDictionary->SetString(keys::kStoreIdKey, store_id_);
484 result_.reset(resultDictionary); 482 SetResult(resultDictionary);
485 483
486 // Return to UI thread 484 // Return to UI thread
487 bool rv = BrowserThread::PostTask( 485 bool rv = BrowserThread::PostTask(
488 BrowserThread::UI, FROM_HERE, 486 BrowserThread::UI, FROM_HERE,
489 base::Bind(&RemoveCookieFunction::RespondOnUIThread, this)); 487 base::Bind(&RemoveCookieFunction::RespondOnUIThread, this));
490 DCHECK(rv); 488 DCHECK(rv);
491 } 489 }
492 490
493 void RemoveCookieFunction::RespondOnUIThread() { 491 void RemoveCookieFunction::RespondOnUIThread() {
494 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 492 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 cookie_store_list->Append( 527 cookie_store_list->Append(
530 cookies_helpers::CreateCookieStoreValue( 528 cookies_helpers::CreateCookieStoreValue(
531 original_profile, original_tab_ids.release())); 529 original_profile, original_tab_ids.release()));
532 } 530 }
533 if (incognito_tab_ids.get() && incognito_tab_ids->GetSize() > 0 && 531 if (incognito_tab_ids.get() && incognito_tab_ids->GetSize() > 0 &&
534 incognito_profile) { 532 incognito_profile) {
535 cookie_store_list->Append( 533 cookie_store_list->Append(
536 cookies_helpers::CreateCookieStoreValue( 534 cookies_helpers::CreateCookieStoreValue(
537 incognito_profile, incognito_tab_ids.release())); 535 incognito_profile, incognito_tab_ids.release()));
538 } 536 }
539 result_.reset(cookie_store_list); 537 SetResult(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