| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 #include "android_webview/browser/net/aw_cookie_store_wrapper.h" | 5 #include "android_webview/browser/net/aw_cookie_store_wrapper.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "android_webview/browser/net/init_native_callback.h" | 9 #include "android_webview/browser/net/init_native_callback.h" |
| 10 #include "base/memory/ref_counted_delete_on_sequence.h" | 10 #include "base/memory/ref_counted_delete_on_sequence.h" |
| 11 #include "base/threading/thread_task_runner_handle.h" | 11 #include "base/threading/thread_task_runner_handle.h" |
| 12 #include "url/gurl.h" | 12 #include "url/gurl.h" |
| 13 | 13 |
| 14 namespace android_webview { | 14 namespace android_webview { |
| 15 | 15 |
| 16 namespace { | 16 namespace { |
| 17 | 17 |
| 18 // Posts |task| to the thread that the global CookieStore lives on. | 18 // Posts |task| to the thread that the global CookieStore lives on. |
| 19 void PostTaskToCookieStoreTaskRunner(const base::Closure& task) { | 19 void PostTaskToCookieStoreTaskRunner(base::OnceClosure task) { |
| 20 GetCookieStoreTaskRunner()->PostTask(FROM_HERE, task); | 20 GetCookieStoreTaskRunner()->PostTask(FROM_HERE, std::move(task)); |
| 21 } | 21 } |
| 22 | 22 |
| 23 // Wraps a subscription to cookie change notifications for the global | 23 // Wraps a subscription to cookie change notifications for the global |
| 24 // CookieStore for a consumer that lives on another thread. Handles passing | 24 // CookieStore for a consumer that lives on another thread. Handles passing |
| 25 // messages between thread, and destroys itself when the consumer unsubscribes. | 25 // messages between thread, and destroys itself when the consumer unsubscribes. |
| 26 // Must be created on the consumer's thread. Each instance only supports a | 26 // Must be created on the consumer's thread. Each instance only supports a |
| 27 // single subscription. | 27 // single subscription. |
| 28 class SubscriptionWrapper { | 28 class SubscriptionWrapper { |
| 29 public: | 29 public: |
| 30 SubscriptionWrapper() : weak_factory_(this) {} | 30 SubscriptionWrapper() : weak_factory_(this) {} |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 bool secure, | 121 bool secure, |
| 122 bool http_only, | 122 bool http_only, |
| 123 net::CookieSameSite same_site, | 123 net::CookieSameSite same_site, |
| 124 net::CookiePriority priority, | 124 net::CookiePriority priority, |
| 125 const net::CookieStore::SetCookiesCallback& callback) { | 125 const net::CookieStore::SetCookiesCallback& callback) { |
| 126 GetCookieStore()->SetCookieWithDetailsAsync( | 126 GetCookieStore()->SetCookieWithDetailsAsync( |
| 127 url, name, value, domain, path, creation_time, expiration_time, | 127 url, name, value, domain, path, creation_time, expiration_time, |
| 128 last_access_time, secure, http_only, same_site, priority, callback); | 128 last_access_time, secure, http_only, same_site, priority, callback); |
| 129 } | 129 } |
| 130 | 130 |
| 131 void SetCanonicalCookieAsyncOnCookieThread( |
| 132 std::unique_ptr<net::CanonicalCookie> cookie, |
| 133 bool secure_source, |
| 134 bool modify_http_only, |
| 135 const net::CookieStore::SetCookiesCallback& callback) { |
| 136 GetCookieStore()->SetCanonicalCookieAsync(std::move(cookie), secure_source, |
| 137 modify_http_only, callback); |
| 138 } |
| 139 |
| 131 void GetCookiesWithOptionsAsyncOnCookieThread( | 140 void GetCookiesWithOptionsAsyncOnCookieThread( |
| 132 const GURL& url, | 141 const GURL& url, |
| 133 const net::CookieOptions& options, | 142 const net::CookieOptions& options, |
| 134 const net::CookieStore::GetCookiesCallback& callback) { | 143 const net::CookieStore::GetCookiesCallback& callback) { |
| 135 GetCookieStore()->GetCookiesWithOptionsAsync(url, options, callback); | 144 GetCookieStore()->GetCookiesWithOptionsAsync(url, options, callback); |
| 136 } | 145 } |
| 137 | 146 |
| 138 void GetCookieListWithOptionsAsyncOnCookieThread( | 147 void GetCookieListWithOptionsAsyncOnCookieThread( |
| 139 const GURL& url, | 148 const GURL& url, |
| 140 const net::CookieOptions& options, | 149 const net::CookieOptions& options, |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 223 net::CookiePriority priority, | 232 net::CookiePriority priority, |
| 224 const SetCookiesCallback& callback) { | 233 const SetCookiesCallback& callback) { |
| 225 DCHECK(client_task_runner_->RunsTasksInCurrentSequence()); | 234 DCHECK(client_task_runner_->RunsTasksInCurrentSequence()); |
| 226 PostTaskToCookieStoreTaskRunner( | 235 PostTaskToCookieStoreTaskRunner( |
| 227 base::Bind(&SetCookieWithDetailsAsyncOnCookieThread, url, name, value, | 236 base::Bind(&SetCookieWithDetailsAsyncOnCookieThread, url, name, value, |
| 228 domain, path, creation_time, expiration_time, last_access_time, | 237 domain, path, creation_time, expiration_time, last_access_time, |
| 229 secure, http_only, same_site, priority, | 238 secure, http_only, same_site, priority, |
| 230 CreateWrappedCallback<bool>(callback))); | 239 CreateWrappedCallback<bool>(callback))); |
| 231 } | 240 } |
| 232 | 241 |
| 242 void AwCookieStoreWrapper::SetCanonicalCookieAsync( |
| 243 std::unique_ptr<net::CanonicalCookie> cookie, |
| 244 bool secure_source, |
| 245 bool modify_http_only, |
| 246 const SetCookiesCallback& callback) { |
| 247 DCHECK(client_task_runner_->RunsTasksOnCurrentThread()); |
| 248 PostTaskToCookieStoreTaskRunner(base::BindOnce( |
| 249 &SetCanonicalCookieAsyncOnCookieThread, std::move(cookie), secure_source, |
| 250 modify_http_only, CreateWrappedCallback<bool>(callback))); |
| 251 } |
| 252 |
| 233 void AwCookieStoreWrapper::GetCookiesWithOptionsAsync( | 253 void AwCookieStoreWrapper::GetCookiesWithOptionsAsync( |
| 234 const GURL& url, | 254 const GURL& url, |
| 235 const net::CookieOptions& options, | 255 const net::CookieOptions& options, |
| 236 const GetCookiesCallback& callback) { | 256 const GetCookiesCallback& callback) { |
| 237 DCHECK(client_task_runner_->RunsTasksInCurrentSequence()); | 257 DCHECK(client_task_runner_->RunsTasksInCurrentSequence()); |
| 238 PostTaskToCookieStoreTaskRunner( | 258 PostTaskToCookieStoreTaskRunner( |
| 239 base::Bind(&GetCookiesWithOptionsAsyncOnCookieThread, url, options, | 259 base::Bind(&GetCookiesWithOptionsAsyncOnCookieThread, url, options, |
| 240 CreateWrappedCallback<const std::string&>(callback))); | 260 CreateWrappedCallback<const std::string&>(callback))); |
| 241 } | 261 } |
| 242 | 262 |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 347 base::Bind(&AwCookieStoreWrapper::RunClosureCallback, | 367 base::Bind(&AwCookieStoreWrapper::RunClosureCallback, |
| 348 weak_factory_.GetWeakPtr(), callback)); | 368 weak_factory_.GetWeakPtr(), callback)); |
| 349 } | 369 } |
| 350 | 370 |
| 351 void AwCookieStoreWrapper::RunClosureCallback(const base::Closure& callback) { | 371 void AwCookieStoreWrapper::RunClosureCallback(const base::Closure& callback) { |
| 352 DCHECK(client_task_runner_->RunsTasksInCurrentSequence()); | 372 DCHECK(client_task_runner_->RunsTasksInCurrentSequence()); |
| 353 callback.Run(); | 373 callback.Run(); |
| 354 } | 374 } |
| 355 | 375 |
| 356 } // namespace android_webview | 376 } // namespace android_webview |
| OLD | NEW |