| OLD | NEW |
| 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 <memory> | 9 #include <memory> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 221 if (!ParseStoreContext(this, &store_id, &store_context)) | 221 if (!ParseStoreContext(this, &store_id, &store_context)) |
| 222 return false; | 222 return false; |
| 223 store_browser_context_ = store_context; | 223 store_browser_context_ = store_context; |
| 224 if (!parsed_args_->details.store_id.get()) | 224 if (!parsed_args_->details.store_id.get()) |
| 225 parsed_args_->details.store_id.reset(new std::string(store_id)); | 225 parsed_args_->details.store_id.reset(new std::string(store_id)); |
| 226 | 226 |
| 227 store_browser_context_ = store_context; | 227 store_browser_context_ = store_context; |
| 228 | 228 |
| 229 bool rv = BrowserThread::PostTask( | 229 bool rv = BrowserThread::PostTask( |
| 230 BrowserThread::IO, FROM_HERE, | 230 BrowserThread::IO, FROM_HERE, |
| 231 base::Bind(&CookiesGetFunction::GetCookieOnIOThread, this)); | 231 base::BindOnce(&CookiesGetFunction::GetCookieOnIOThread, this)); |
| 232 DCHECK(rv); | 232 DCHECK(rv); |
| 233 | 233 |
| 234 // Will finish asynchronously. | 234 // Will finish asynchronously. |
| 235 return true; | 235 return true; |
| 236 } | 236 } |
| 237 | 237 |
| 238 void CookiesGetFunction::GetCookieOnIOThread() { | 238 void CookiesGetFunction::GetCookieOnIOThread() { |
| 239 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 239 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 240 net::CookieStore* cookie_store = | 240 net::CookieStore* cookie_store = |
| 241 store_browser_context_->GetURLRequestContext()->cookie_store(); | 241 store_browser_context_->GetURLRequestContext()->cookie_store(); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 256 break; | 256 break; |
| 257 } | 257 } |
| 258 } | 258 } |
| 259 | 259 |
| 260 // The cookie doesn't exist; return null. | 260 // The cookie doesn't exist; return null. |
| 261 if (!results_) | 261 if (!results_) |
| 262 SetResult(base::MakeUnique<base::Value>()); | 262 SetResult(base::MakeUnique<base::Value>()); |
| 263 | 263 |
| 264 bool rv = BrowserThread::PostTask( | 264 bool rv = BrowserThread::PostTask( |
| 265 BrowserThread::UI, FROM_HERE, | 265 BrowserThread::UI, FROM_HERE, |
| 266 base::Bind(&CookiesGetFunction::RespondOnUIThread, this)); | 266 base::BindOnce(&CookiesGetFunction::RespondOnUIThread, this)); |
| 267 DCHECK(rv); | 267 DCHECK(rv); |
| 268 } | 268 } |
| 269 | 269 |
| 270 void CookiesGetFunction::RespondOnUIThread() { | 270 void CookiesGetFunction::RespondOnUIThread() { |
| 271 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 271 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 272 SendResponse(true); | 272 SendResponse(true); |
| 273 } | 273 } |
| 274 | 274 |
| 275 CookiesGetAllFunction::CookiesGetAllFunction() { | 275 CookiesGetAllFunction::CookiesGetAllFunction() { |
| 276 } | 276 } |
| (...skipping 15 matching lines...) Expand all Loading... |
| 292 : std::string(); | 292 : std::string(); |
| 293 net::URLRequestContextGetter* store_context = NULL; | 293 net::URLRequestContextGetter* store_context = NULL; |
| 294 if (!ParseStoreContext(this, &store_id, &store_context)) | 294 if (!ParseStoreContext(this, &store_id, &store_context)) |
| 295 return false; | 295 return false; |
| 296 store_browser_context_ = store_context; | 296 store_browser_context_ = store_context; |
| 297 if (!parsed_args_->details.store_id.get()) | 297 if (!parsed_args_->details.store_id.get()) |
| 298 parsed_args_->details.store_id.reset(new std::string(store_id)); | 298 parsed_args_->details.store_id.reset(new std::string(store_id)); |
| 299 | 299 |
| 300 bool rv = BrowserThread::PostTask( | 300 bool rv = BrowserThread::PostTask( |
| 301 BrowserThread::IO, FROM_HERE, | 301 BrowserThread::IO, FROM_HERE, |
| 302 base::Bind(&CookiesGetAllFunction::GetAllCookiesOnIOThread, this)); | 302 base::BindOnce(&CookiesGetAllFunction::GetAllCookiesOnIOThread, this)); |
| 303 DCHECK(rv); | 303 DCHECK(rv); |
| 304 | 304 |
| 305 // Will finish asynchronously. | 305 // Will finish asynchronously. |
| 306 return true; | 306 return true; |
| 307 } | 307 } |
| 308 | 308 |
| 309 void CookiesGetAllFunction::GetAllCookiesOnIOThread() { | 309 void CookiesGetAllFunction::GetAllCookiesOnIOThread() { |
| 310 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 310 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 311 net::CookieStore* cookie_store = | 311 net::CookieStore* cookie_store = |
| 312 store_browser_context_->GetURLRequestContext()->cookie_store(); | 312 store_browser_context_->GetURLRequestContext()->cookie_store(); |
| 313 cookies_helpers::GetCookieListFromStore( | 313 cookies_helpers::GetCookieListFromStore( |
| 314 cookie_store, url_, | 314 cookie_store, url_, |
| 315 base::Bind(&CookiesGetAllFunction::GetAllCookiesCallback, this)); | 315 base::Bind(&CookiesGetAllFunction::GetAllCookiesCallback, this)); |
| 316 } | 316 } |
| 317 | 317 |
| 318 void CookiesGetAllFunction::GetAllCookiesCallback( | 318 void CookiesGetAllFunction::GetAllCookiesCallback( |
| 319 const net::CookieList& cookie_list) { | 319 const net::CookieList& cookie_list) { |
| 320 if (extension()) { | 320 if (extension()) { |
| 321 std::vector<cookies::Cookie> match_vector; | 321 std::vector<cookies::Cookie> match_vector; |
| 322 cookies_helpers::AppendMatchingCookiesToVector( | 322 cookies_helpers::AppendMatchingCookiesToVector( |
| 323 cookie_list, url_, &parsed_args_->details, extension(), &match_vector); | 323 cookie_list, url_, &parsed_args_->details, extension(), &match_vector); |
| 324 | 324 |
| 325 results_ = GetAll::Results::Create(match_vector); | 325 results_ = GetAll::Results::Create(match_vector); |
| 326 } | 326 } |
| 327 bool rv = BrowserThread::PostTask( | 327 bool rv = BrowserThread::PostTask( |
| 328 BrowserThread::UI, FROM_HERE, | 328 BrowserThread::UI, FROM_HERE, |
| 329 base::Bind(&CookiesGetAllFunction::RespondOnUIThread, this)); | 329 base::BindOnce(&CookiesGetAllFunction::RespondOnUIThread, this)); |
| 330 DCHECK(rv); | 330 DCHECK(rv); |
| 331 } | 331 } |
| 332 | 332 |
| 333 void CookiesGetAllFunction::RespondOnUIThread() { | 333 void CookiesGetAllFunction::RespondOnUIThread() { |
| 334 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 334 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 335 SendResponse(true); | 335 SendResponse(true); |
| 336 } | 336 } |
| 337 | 337 |
| 338 CookiesSetFunction::CookiesSetFunction() : success_(false) { | 338 CookiesSetFunction::CookiesSetFunction() : success_(false) { |
| 339 } | 339 } |
| (...skipping 14 matching lines...) Expand all Loading... |
| 354 : std::string(); | 354 : std::string(); |
| 355 net::URLRequestContextGetter* store_context = NULL; | 355 net::URLRequestContextGetter* store_context = NULL; |
| 356 if (!ParseStoreContext(this, &store_id, &store_context)) | 356 if (!ParseStoreContext(this, &store_id, &store_context)) |
| 357 return false; | 357 return false; |
| 358 store_browser_context_ = store_context; | 358 store_browser_context_ = store_context; |
| 359 if (!parsed_args_->details.store_id.get()) | 359 if (!parsed_args_->details.store_id.get()) |
| 360 parsed_args_->details.store_id.reset(new std::string(store_id)); | 360 parsed_args_->details.store_id.reset(new std::string(store_id)); |
| 361 | 361 |
| 362 bool rv = BrowserThread::PostTask( | 362 bool rv = BrowserThread::PostTask( |
| 363 BrowserThread::IO, FROM_HERE, | 363 BrowserThread::IO, FROM_HERE, |
| 364 base::Bind(&CookiesSetFunction::SetCookieOnIOThread, this)); | 364 base::BindOnce(&CookiesSetFunction::SetCookieOnIOThread, this)); |
| 365 DCHECK(rv); | 365 DCHECK(rv); |
| 366 | 366 |
| 367 // Will finish asynchronously. | 367 // Will finish asynchronously. |
| 368 return true; | 368 return true; |
| 369 } | 369 } |
| 370 | 370 |
| 371 void CookiesSetFunction::SetCookieOnIOThread() { | 371 void CookiesSetFunction::SetCookieOnIOThread() { |
| 372 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 372 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 373 net::CookieStore* cookie_store = | 373 net::CookieStore* cookie_store = |
| 374 store_browser_context_->GetURLRequestContext()->cookie_store(); | 374 store_browser_context_->GetURLRequestContext()->cookie_store(); |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 441 if (cookie.Name() == name) { | 441 if (cookie.Name() == name) { |
| 442 cookies::Cookie api_cookie = cookies_helpers::CreateCookie( | 442 cookies::Cookie api_cookie = cookies_helpers::CreateCookie( |
| 443 cookie, *parsed_args_->details.store_id); | 443 cookie, *parsed_args_->details.store_id); |
| 444 results_ = Set::Results::Create(api_cookie); | 444 results_ = Set::Results::Create(api_cookie); |
| 445 break; | 445 break; |
| 446 } | 446 } |
| 447 } | 447 } |
| 448 | 448 |
| 449 bool rv = BrowserThread::PostTask( | 449 bool rv = BrowserThread::PostTask( |
| 450 BrowserThread::UI, FROM_HERE, | 450 BrowserThread::UI, FROM_HERE, |
| 451 base::Bind(&CookiesSetFunction::RespondOnUIThread, this)); | 451 base::BindOnce(&CookiesSetFunction::RespondOnUIThread, this)); |
| 452 DCHECK(rv); | 452 DCHECK(rv); |
| 453 } | 453 } |
| 454 | 454 |
| 455 void CookiesSetFunction::RespondOnUIThread() { | 455 void CookiesSetFunction::RespondOnUIThread() { |
| 456 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 456 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 457 if (!success_) { | 457 if (!success_) { |
| 458 std::string name = | 458 std::string name = |
| 459 parsed_args_->details.name.get() ? *parsed_args_->details.name | 459 parsed_args_->details.name.get() ? *parsed_args_->details.name |
| 460 : std::string(); | 460 : std::string(); |
| 461 error_ = ErrorUtils::FormatErrorMessage(keys::kCookieSetFailedError, name); | 461 error_ = ErrorUtils::FormatErrorMessage(keys::kCookieSetFailedError, name); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 483 net::URLRequestContextGetter* store_context = NULL; | 483 net::URLRequestContextGetter* store_context = NULL; |
| 484 if (!ParseStoreContext(this, &store_id, &store_context)) | 484 if (!ParseStoreContext(this, &store_id, &store_context)) |
| 485 return false; | 485 return false; |
| 486 store_browser_context_ = store_context; | 486 store_browser_context_ = store_context; |
| 487 if (!parsed_args_->details.store_id.get()) | 487 if (!parsed_args_->details.store_id.get()) |
| 488 parsed_args_->details.store_id.reset(new std::string(store_id)); | 488 parsed_args_->details.store_id.reset(new std::string(store_id)); |
| 489 | 489 |
| 490 // Pass the work off to the IO thread. | 490 // Pass the work off to the IO thread. |
| 491 bool rv = BrowserThread::PostTask( | 491 bool rv = BrowserThread::PostTask( |
| 492 BrowserThread::IO, FROM_HERE, | 492 BrowserThread::IO, FROM_HERE, |
| 493 base::Bind(&CookiesRemoveFunction::RemoveCookieOnIOThread, this)); | 493 base::BindOnce(&CookiesRemoveFunction::RemoveCookieOnIOThread, this)); |
| 494 DCHECK(rv); | 494 DCHECK(rv); |
| 495 | 495 |
| 496 // Will return asynchronously. | 496 // Will return asynchronously. |
| 497 return true; | 497 return true; |
| 498 } | 498 } |
| 499 | 499 |
| 500 void CookiesRemoveFunction::RemoveCookieOnIOThread() { | 500 void CookiesRemoveFunction::RemoveCookieOnIOThread() { |
| 501 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 501 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 502 | 502 |
| 503 // Remove the cookie | 503 // Remove the cookie |
| 504 net::CookieStore* cookie_store = | 504 net::CookieStore* cookie_store = |
| 505 store_browser_context_->GetURLRequestContext()->cookie_store(); | 505 store_browser_context_->GetURLRequestContext()->cookie_store(); |
| 506 cookie_store->DeleteCookieAsync( | 506 cookie_store->DeleteCookieAsync( |
| 507 url_, parsed_args_->details.name, | 507 url_, parsed_args_->details.name, |
| 508 base::Bind(&CookiesRemoveFunction::RemoveCookieCallback, this)); | 508 base::Bind(&CookiesRemoveFunction::RemoveCookieCallback, this)); |
| 509 } | 509 } |
| 510 | 510 |
| 511 void CookiesRemoveFunction::RemoveCookieCallback() { | 511 void CookiesRemoveFunction::RemoveCookieCallback() { |
| 512 // Build the callback result | 512 // Build the callback result |
| 513 Remove::Results::Details details; | 513 Remove::Results::Details details; |
| 514 details.name = parsed_args_->details.name; | 514 details.name = parsed_args_->details.name; |
| 515 details.url = url_.spec(); | 515 details.url = url_.spec(); |
| 516 details.store_id = *parsed_args_->details.store_id; | 516 details.store_id = *parsed_args_->details.store_id; |
| 517 results_ = Remove::Results::Create(details); | 517 results_ = Remove::Results::Create(details); |
| 518 | 518 |
| 519 // Return to UI thread | 519 // Return to UI thread |
| 520 bool rv = BrowserThread::PostTask( | 520 bool rv = BrowserThread::PostTask( |
| 521 BrowserThread::UI, FROM_HERE, | 521 BrowserThread::UI, FROM_HERE, |
| 522 base::Bind(&CookiesRemoveFunction::RespondOnUIThread, this)); | 522 base::BindOnce(&CookiesRemoveFunction::RespondOnUIThread, this)); |
| 523 DCHECK(rv); | 523 DCHECK(rv); |
| 524 } | 524 } |
| 525 | 525 |
| 526 void CookiesRemoveFunction::RespondOnUIThread() { | 526 void CookiesRemoveFunction::RespondOnUIThread() { |
| 527 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 527 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 528 SendResponse(true); | 528 SendResponse(true); |
| 529 } | 529 } |
| 530 | 530 |
| 531 ExtensionFunction::ResponseAction CookiesGetAllCookieStoresFunction::Run() { | 531 ExtensionFunction::ResponseAction CookiesGetAllCookieStoresFunction::Run() { |
| 532 Profile* original_profile = Profile::FromBrowserContext(browser_context()); | 532 Profile* original_profile = Profile::FromBrowserContext(browser_context()); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 588 BrowserContextKeyedAPIFactory<CookiesAPI>* CookiesAPI::GetFactoryInstance() { | 588 BrowserContextKeyedAPIFactory<CookiesAPI>* CookiesAPI::GetFactoryInstance() { |
| 589 return g_factory.Pointer(); | 589 return g_factory.Pointer(); |
| 590 } | 590 } |
| 591 | 591 |
| 592 void CookiesAPI::OnListenerAdded(const EventListenerInfo& details) { | 592 void CookiesAPI::OnListenerAdded(const EventListenerInfo& details) { |
| 593 cookies_event_router_.reset(new CookiesEventRouter(browser_context_)); | 593 cookies_event_router_.reset(new CookiesEventRouter(browser_context_)); |
| 594 EventRouter::Get(browser_context_)->UnregisterObserver(this); | 594 EventRouter::Get(browser_context_)->UnregisterObserver(this); |
| 595 } | 595 } |
| 596 | 596 |
| 597 } // namespace extensions | 597 } // namespace extensions |
| OLD | NEW |