summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/browser/extensions/api/cookies/cookies_api.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-01-20 13:40:20 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-01-22 12:41:23 +0000
commit7961cea6d1041e3e454dae6a1da660b453efd238 (patch)
treec0eeb4a9ff9ba32986289c1653d9608e53ccb444 /chromium/chrome/browser/extensions/api/cookies/cookies_api.cc
parentb7034d0803538058e5c9d904ef03cf5eab34f6ef (diff)
BASELINE: Update Chromium to 78.0.3904.130
Change-Id: If185e0c0061b3437531c97c9c8c78f239352a68b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/chrome/browser/extensions/api/cookies/cookies_api.cc')
-rw-r--r--chromium/chrome/browser/extensions/api/cookies/cookies_api.cc87
1 files changed, 55 insertions, 32 deletions
diff --git a/chromium/chrome/browser/extensions/api/cookies/cookies_api.cc b/chromium/chrome/browser/extensions/api/cookies/cookies_api.cc
index 9a1e1967385..aca854a958e 100644
--- a/chromium/chrome/browser/extensions/api/cookies/cookies_api.cc
+++ b/chromium/chrome/browser/extensions/api/cookies/cookies_api.cc
@@ -182,14 +182,14 @@ void CookiesEventRouter::MaybeStartListening() {
? original_profile->GetOffTheRecordProfile()
: nullptr;
- if (!binding_)
- BindToCookieManager(&binding_, original_profile);
- if (!otr_binding_.is_bound() && otr_profile)
- BindToCookieManager(&otr_binding_, otr_profile);
+ if (!receiver_.is_bound())
+ BindToCookieManager(&receiver_, original_profile);
+ if (!otr_receiver_.is_bound() && otr_profile)
+ BindToCookieManager(&otr_receiver_, otr_profile);
}
void CookiesEventRouter::BindToCookieManager(
- mojo::Binding<network::mojom::CookieChangeListener>* binding,
+ mojo::Receiver<network::mojom::CookieChangeListener>* receiver,
Profile* profile) {
network::mojom::CookieManager* cookie_manager =
content::BrowserContext::GetDefaultStoragePartition(profile)
@@ -197,19 +197,17 @@ void CookiesEventRouter::BindToCookieManager(
if (!cookie_manager)
return;
- network::mojom::CookieChangeListenerPtr listener_ptr;
- binding->Bind(mojo::MakeRequest(&listener_ptr));
- binding->set_connection_error_handler(base::BindOnce(
- &CookiesEventRouter::OnConnectionError, base::Unretained(this), binding));
-
- cookie_manager->AddGlobalChangeListener(std::move(listener_ptr));
+ cookie_manager->AddGlobalChangeListener(receiver->BindNewPipeAndPassRemote());
+ receiver->set_disconnect_handler(
+ base::BindOnce(&CookiesEventRouter::OnConnectionError,
+ base::Unretained(this), receiver));
}
void CookiesEventRouter::OnConnectionError(
- mojo::Binding<network::mojom::CookieChangeListener>* binding) {
+ mojo::Receiver<network::mojom::CookieChangeListener>* receiver) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- binding->Close();
+ receiver->reset();
MaybeStartListening();
}
@@ -251,25 +249,26 @@ ExtensionFunction::ResponseAction CookiesGetFunction::Run() {
if (!parsed_args_->details.store_id.get())
parsed_args_->details.store_id.reset(new std::string(store_id));
+ DCHECK(!url_.is_empty() && url_.is_valid());
cookies_helpers::GetCookieListFromManager(
cookie_manager, url_,
- base::BindOnce(&CookiesGetFunction::GetCookieCallback, this));
+ base::BindOnce(&CookiesGetFunction::GetCookieListCallback, this));
// Will finish asynchronously.
return RespondLater();
}
-void CookiesGetFunction::GetCookieCallback(
- const net::CookieList& cookie_list,
+void CookiesGetFunction::GetCookieListCallback(
+ const net::CookieStatusList& cookie_status_list,
const net::CookieStatusList& excluded_cookies) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- for (const net::CanonicalCookie& cookie : cookie_list) {
+ for (const net::CookieWithStatus& cookie_with_status : cookie_status_list) {
// Return the first matching cookie. Relies on the fact that the
// CookieManager interface returns them in canonical order (longest path,
// then earliest creation time).
- if (cookie.Name() == parsed_args_->details.name) {
+ if (cookie_with_status.cookie.Name() == parsed_args_->details.name) {
api::cookies::Cookie api_cookie = cookies_helpers::CreateCookie(
- cookie, *parsed_args_->details.store_id);
+ cookie_with_status.cookie, *parsed_args_->details.store_id);
Respond(ArgumentList(api::cookies::Get::Results::Create(api_cookie)));
return;
}
@@ -308,22 +307,46 @@ ExtensionFunction::ResponseAction CookiesGetAllFunction::Run() {
parsed_args_->details.store_id.reset(new std::string(store_id));
DCHECK(url_.is_empty() || url_.is_valid());
- cookies_helpers::GetCookieListFromManager(
- cookie_manager, url_,
- base::BindOnce(&CookiesGetAllFunction::GetAllCookiesCallback, this));
+ if (url_.is_empty()) {
+ cookies_helpers::GetAllCookiesFromManager(
+ cookie_manager,
+ base::BindOnce(&CookiesGetAllFunction::GetAllCookiesCallback, this));
+ } else {
+ cookies_helpers::GetCookieListFromManager(
+ cookie_manager, url_,
+ base::BindOnce(&CookiesGetAllFunction::GetCookieListCallback, this));
+ }
return RespondLater();
}
void CookiesGetAllFunction::GetAllCookiesCallback(
- const net::CookieList& cookie_list,
+ const net::CookieList& cookie_list) {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ ResponseValue response;
+ if (extension()) {
+ std::vector<api::cookies::Cookie> match_vector;
+ cookies_helpers::AppendMatchingCookiesFromCookieListToVector(
+ cookie_list, &parsed_args_->details, extension(), &match_vector);
+
+ response =
+ ArgumentList(api::cookies::GetAll::Results::Create(match_vector));
+ } else {
+ // TODO(devlin): When can |extension()| be null for this function?
+ response = NoArguments();
+ }
+ Respond(std::move(response));
+}
+
+void CookiesGetAllFunction::GetCookieListCallback(
+ const net::CookieStatusList& cookie_status_list,
const net::CookieStatusList& excluded_cookies) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
ResponseValue response;
if (extension()) {
std::vector<api::cookies::Cookie> match_vector;
- cookies_helpers::AppendMatchingCookiesToVector(
- cookie_list, url_, &parsed_args_->details, extension(), &match_vector);
+ cookies_helpers::AppendMatchingCookiesFromCookieStatusListToVector(
+ cookie_status_list, &parsed_args_->details, extension(), &match_vector);
response =
ArgumentList(api::cookies::GetAll::Results::Create(match_vector));
@@ -417,7 +440,7 @@ ExtensionFunction::ResponseAction CookiesSetFunction::Run() {
// is generated.
success_ = false;
state_ = SET_COMPLETED;
- GetCookieListCallback(net::CookieList(), net::CookieStatusList());
+ GetCookieListCallback(net::CookieStatusList(), net::CookieStatusList());
return AlreadyResponded();
}
@@ -428,6 +451,7 @@ ExtensionFunction::ResponseAction CookiesSetFunction::Run() {
options.set_include_httponly();
options.set_same_site_cookie_context(
net::CookieOptions::SameSiteCookieContext::SAME_SITE_STRICT);
+ DCHECK(!url_.is_empty() && url_.is_valid());
cookie_manager->SetCanonicalCookie(
*cc, url_.scheme(), options,
base::BindOnce(&CookiesSetFunction::SetCanonicalCookieCallback, this));
@@ -444,12 +468,11 @@ void CookiesSetFunction::SetCanonicalCookieCallback(
DCHECK_CURRENTLY_ON(BrowserThread::UI);
DCHECK_EQ(NO_RESPONSE, state_);
state_ = SET_COMPLETED;
- success_ = (set_cookie_result ==
- net::CanonicalCookie::CookieInclusionStatus::INCLUDE);
+ success_ = set_cookie_result.IsInclude();
}
void CookiesSetFunction::GetCookieListCallback(
- const net::CookieList& cookie_list,
+ const net::CookieStatusList& cookie_list,
const net::CookieStatusList& excluded_cookies) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
DCHECK_EQ(SET_COMPLETED, state_);
@@ -465,16 +488,16 @@ void CookiesSetFunction::GetCookieListCallback(
}
ResponseValue value;
- for (const net::CanonicalCookie& cookie : cookie_list) {
+ for (const net::CookieWithStatus& cookie_with_status : cookie_list) {
// Return the first matching cookie. Relies on the fact that the
// CookieMonster returns them in canonical order (longest path, then
// earliest creation time).
std::string name =
parsed_args_->details.name.get() ? *parsed_args_->details.name
: std::string();
- if (cookie.Name() == name) {
+ if (cookie_with_status.cookie.Name() == name) {
api::cookies::Cookie api_cookie = cookies_helpers::CreateCookie(
- cookie, *parsed_args_->details.store_id);
+ cookie_with_status.cookie, *parsed_args_->details.store_id);
value = ArgumentList(api::cookies::Set::Results::Create(api_cookie));
break;
}