From b57fcc40124e4f07adc37d9601e06b638d625262 Mon Sep 17 00:00:00 2001 From: tzik Date: Fri, 23 Mar 2018 02:56:50 +0000 Subject: [PATCH] Migrate //android_webview to OnceCallback This updates //android_webview to use base::OnceCallback instead of legacy base::Callback. No intended functional change is included. Bug: 714018 Change-Id: I4897aca2dcac09e0c67675416e6d9d20f8ed017b Reviewed-on: https://chromium-review.googlesource.com/961750 Reviewed-by: Bo Reviewed-by: Tao Bai Commit-Queue: Taiju Tsuiki Cr-Commit-Position: refs/heads/master@{#545354} --- android_webview/browser/aw_browser_context.cc | 7 +- .../aw_browser_permission_request_delegate.h | 6 +- .../browser/aw_browser_policy_connector.cc | 6 +- .../browser/aw_browser_terminator.cc | 12 ++-- .../browser/aw_content_browser_client.cc | 11 +-- android_webview/browser/aw_contents.cc | 27 ++++---- android_webview/browser/aw_contents.h | 11 +-- .../browser/aw_contents_client_bridge.cc | 24 +++---- .../browser/aw_contents_client_bridge.h | 31 ++++----- .../browser/aw_contents_io_thread_client.cc | 11 +-- .../browser/aw_contents_io_thread_client.h | 6 +- .../browser/aw_contents_statics.cc | 10 +-- android_webview/browser/aw_devtools_server.cc | 4 +- .../browser/aw_form_database_service.cc | 5 +- android_webview/browser/aw_login_delegate.cc | 18 ++--- .../browser/aw_metrics_service_client.cc | 11 +-- .../browser/aw_permission_manager.cc | 31 +++++---- .../browser/aw_permission_manager_unittest.cc | 27 ++++---- android_webview/browser/aw_print_manager.cc | 20 +++--- android_webview/browser/aw_print_manager.h | 4 +- .../browser/aw_quota_manager_bridge.cc | 69 ++++++++++--------- .../browser/aw_quota_manager_bridge.h | 10 +-- .../aw_render_thread_context_provider.cc | 2 +- .../aw_safe_browsing_whitelist_manager.cc | 17 ++--- .../aw_safe_browsing_whitelist_manager.h | 4 +- ...afe_browsing_whitelist_manager_unittest.cc | 4 +- .../browser/aw_url_checker_delegate_impl.cc | 16 +++-- .../browser/aw_variations_service_client.cc | 2 +- .../browser/browser_view_renderer_unittest.cc | 12 ++-- android_webview/browser/cookie_manager.cc | 52 +++++++------- .../android_stream_reader_url_request_job.cc | 43 ++++++------ .../android_stream_reader_url_request_job.h | 4 +- .../browser/net/aw_cookie_store_wrapper.cc | 2 +- .../browser/net/aw_network_delegate.cc | 6 +- .../browser/net/aw_request_interceptor.cc | 18 ++--- .../net/aw_url_request_context_getter.cc | 6 +- .../browser/net/token_binding_manager.cc | 32 +++++---- .../browser/net/token_binding_manager.h | 5 +- ...edia_access_permission_request_unittest.cc | 4 +- .../permission_request_handler_unittest.cc | 36 +++++----- .../permission/simple_permission_request.cc | 6 +- .../permission/simple_permission_request.h | 4 +- .../browser/render_thread_manager.cc | 10 +-- .../browser/render_thread_manager.h | 2 +- .../renderer_host/aw_render_view_host_ext.cc | 18 ++--- .../renderer_host/aw_render_view_host_ext.h | 2 +- .../aw_resource_dispatcher_host_delegate.cc | 32 +++++---- android_webview/browser/test/fake_window.cc | 32 +++++---- android_webview/browser/test/fake_window.h | 2 +- .../browser/test/rendering_test.cc | 4 +- .../browser/token_binding_manager_bridge.cc | 13 ++-- .../tracing/aw_trace_event_args_whitelist.cc | 4 +- .../browser/tracing/aw_tracing_controller.cc | 27 ++++---- android_webview/lib/aw_main_delegate.cc | 4 +- 54 files changed, 409 insertions(+), 377 deletions(-) diff --git a/android_webview/browser/aw_browser_context.cc b/android_webview/browser/aw_browser_context.cc index d08a8fa6eb9a89..4dbc1b03ef510a 100644 --- a/android_webview/browser/aw_browser_context.cc +++ b/android_webview/browser/aw_browser_context.cc @@ -168,8 +168,8 @@ void AwBrowserContext::PreMainMessageLoopRun(net::NetLog* net_log) { new web_restrictions::WebRestrictionsClient()); pref_change_registrar_.Add( prefs::kWebRestrictionsAuthority, - base::Bind(&AwBrowserContext::OnWebRestrictionsAuthorityChanged, - base::Unretained(this))); + base::BindRepeating(&AwBrowserContext::OnWebRestrictionsAuthorityChanged, + base::Unretained(this))); web_restriction_provider_->SetAuthority( user_pref_service_->GetString(prefs::kWebRestrictionsAuthority)); @@ -237,7 +237,8 @@ void AwBrowserContext::InitUserPrefService() { browser_policy_connector_->GetPolicyService(), browser_policy_connector_->GetHandlerList(), policy::POLICY_LEVEL_MANDATORY)); - pref_service_factory.set_read_error_callback(base::Bind(&HandleReadError)); + pref_service_factory.set_read_error_callback( + base::BindRepeating(&HandleReadError)); user_pref_service_ = pref_service_factory.Create(pref_registry); pref_change_registrar_.Init(user_pref_service_.get()); diff --git a/android_webview/browser/aw_browser_permission_request_delegate.h b/android_webview/browser/aw_browser_permission_request_delegate.h index a0144a1cff2d27..4452a6f15b5784 100644 --- a/android_webview/browser/aw_browser_permission_request_delegate.h +++ b/android_webview/browser/aw_browser_permission_request_delegate.h @@ -20,20 +20,20 @@ class AwBrowserPermissionRequestDelegate { virtual void RequestProtectedMediaIdentifierPermission( const GURL& origin, - const base::Callback& callback) = 0; + base::OnceCallback callback) = 0; virtual void CancelProtectedMediaIdentifierPermissionRequests( const GURL& origin) = 0; virtual void RequestGeolocationPermission( const GURL& origin, - const base::Callback& callback) = 0; + base::OnceCallback callback) = 0; virtual void CancelGeolocationPermissionRequests(const GURL& origin) = 0; virtual void RequestMIDISysexPermission( const GURL& origin, - const base::Callback& callback) = 0; + base::OnceCallback callback) = 0; virtual void CancelMIDISysexPermissionRequests(const GURL& origin) = 0; diff --git a/android_webview/browser/aw_browser_policy_connector.cc b/android_webview/browser/aw_browser_policy_connector.cc index 523da4a491469f..ebbdd611312396 100644 --- a/android_webview/browser/aw_browser_policy_connector.cc +++ b/android_webview/browser/aw_browser_policy_connector.cc @@ -34,8 +34,8 @@ std::unique_ptr BuildHandlerList( const policy::Schema& chrome_schema) { std::unique_ptr handlers( new policy::ConfigurationPolicyHandlerList( - base::Bind(&PopulatePolicyHandlerParameters), - base::Bind(&GetChromePolicyDetails))); + base::BindRepeating(&PopulatePolicyHandlerParameters), + base::BindRepeating(&GetChromePolicyDetails))); // URL Filtering handlers->AddHandler(std::make_unique( @@ -62,7 +62,7 @@ std::unique_ptr BuildHandlerList( } // namespace AwBrowserPolicyConnector::AwBrowserPolicyConnector() - : BrowserPolicyConnectorBase(base::Bind(&BuildHandlerList)) {} + : BrowserPolicyConnectorBase(base::BindRepeating(&BuildHandlerList)) {} AwBrowserPolicyConnector::~AwBrowserPolicyConnector() = default; diff --git a/android_webview/browser/aw_browser_terminator.cc b/android_webview/browser/aw_browser_terminator.cc index eb284e686403bf..c1b8d986dd0ab2 100644 --- a/android_webview/browser/aw_browser_terminator.cc +++ b/android_webview/browser/aw_browser_terminator.cc @@ -158,9 +158,9 @@ void AwBrowserTerminator::OnChildExitAsync( crashed = true; } - BrowserThread::PostTask( - BrowserThread::UI, FROM_HERE, - base::Bind(&OnRenderProcessGoneDetail, process_host_id, pid, crashed)); + BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, + base::BindOnce(&OnRenderProcessGoneDetail, + process_host_id, pid, crashed)); } void AwBrowserTerminator::OnChildExit( @@ -191,9 +191,9 @@ void AwBrowserTerminator::OnChildExit( FROM_HERE, {base::MayBlock(), base::TaskPriority::USER_VISIBLE, base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN}, - base::Bind(&AwBrowserTerminator::OnChildExitAsync, process_host_id, pid, - process_type, termination_status, app_state, crash_dump_dir_, - base::Passed(std::move(pipe)))); + base::BindOnce(&AwBrowserTerminator::OnChildExitAsync, process_host_id, + pid, process_type, termination_status, app_state, + crash_dump_dir_, std::move(pipe))); } } // namespace android_webview diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc index b09a72c65afebf..e1efaa4c2ea275 100644 --- a/android_webview/browser/aw_content_browser_client.cc +++ b/android_webview/browser/aw_content_browser_client.cc @@ -198,13 +198,14 @@ AwBrowserContext* AwContentBrowserClient::GetAwBrowserContext() { } AwContentBrowserClient::AwContentBrowserClient() : net_log_(new net::NetLog()) { - frame_interfaces_.AddInterface( - base::Bind(&autofill::ContentAutofillDriverFactory::BindAutofillDriver)); + frame_interfaces_.AddInterface(base::BindRepeating( + &autofill::ContentAutofillDriverFactory::BindAutofillDriver)); // Although WebView does not support password manager feature, renderer code // could still request this interface, so we register a dummy binder which // just drops the incoming request, to avoid the 'Failed to locate a binder // for interface' error log.. - frame_interfaces_.AddInterface(base::Bind(&DummyBindPasswordManagerDriver)); + frame_interfaces_.AddInterface( + base::BindRepeating(&DummyBindPasswordManagerDriver)); sniff_file_urls_ = AwSettings::GetAllowSniffingFileUrls(); } @@ -569,10 +570,10 @@ void AwContentBrowserClient::ExposeInterfacesToRenderer( content::ResourceContext* resource_context = render_process_host->GetBrowserContext()->GetResourceContext(); registry->AddInterface( - base::Bind( + base::BindRepeating( &safe_browsing::MojoSafeBrowsingImpl::MaybeCreate, render_process_host->GetID(), resource_context, - base::Bind( + base::BindRepeating( &AwContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate, base::Unretained(this))), BrowserThread::GetTaskRunnerForThread(BrowserThread::IO)); diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw_contents.cc index 8367b51f5e286a..92e2e85a4d4ae3 100644 --- a/android_webview/browser/aw_contents.cc +++ b/android_webview/browser/aw_contents.cc @@ -478,7 +478,7 @@ void AwContents::DocumentHasImages(JNIEnv* env, ScopedJavaGlobalRef j_message; j_message.Reset(env, message); render_view_host_ext_->DocumentHasImages( - base::Bind(&DocumentHasImagesCallback, j_message)); + base::BindOnce(&DocumentHasImagesCallback, j_message)); } namespace { @@ -573,19 +573,20 @@ void ShowGeolocationPromptHelper(const JavaObjectWeakGlobalRef& java_ref, if (java_ref.get(env).obj()) { content::BrowserThread::PostTask( content::BrowserThread::UI, FROM_HERE, - base::Bind(&ShowGeolocationPromptHelperTask, java_ref, origin)); + base::BindOnce(&ShowGeolocationPromptHelperTask, java_ref, origin)); } } } // anonymous namespace -void AwContents::ShowGeolocationPrompt(const GURL& requesting_frame, - base::Callback callback) { +void AwContents::ShowGeolocationPrompt( + const GURL& requesting_frame, + base::OnceCallback callback) { DCHECK_CURRENTLY_ON(BrowserThread::UI); GURL origin = requesting_frame.GetOrigin(); bool show_prompt = pending_geolocation_prompts_.empty(); - pending_geolocation_prompts_.push_back(OriginCallback(origin, callback)); + pending_geolocation_prompts_.emplace_back(origin, std::move(callback)); if (show_prompt) { ShowGeolocationPromptHelper(java_ref_, origin); } @@ -604,7 +605,7 @@ void AwContents::InvokeGeolocationCallback( GURL callback_origin(base::android::ConvertJavaStringToUTF16(env, origin)); if (callback_origin.GetOrigin() == pending_geolocation_prompts_.front().first) { - pending_geolocation_prompts_.front().second.Run(value); + std::move(pending_geolocation_prompts_.front().second).Run(value); pending_geolocation_prompts_.pop_front(); if (!pending_geolocation_prompts_.empty()) { ShowGeolocationPromptHelper(java_ref_, @@ -680,10 +681,10 @@ void AwContents::PreauthorizePermission(JNIEnv* env, void AwContents::RequestProtectedMediaIdentifierPermission( const GURL& origin, - const base::Callback& callback) { + base::OnceCallback callback) { permission_request_handler_->SendRequest( std::unique_ptr(new SimplePermissionRequest( - origin, AwPermissionRequest::ProtectedMediaId, callback))); + origin, AwPermissionRequest::ProtectedMediaId, std::move(callback)))); } void AwContents::CancelProtectedMediaIdentifierPermissionRequests( @@ -694,19 +695,19 @@ void AwContents::CancelProtectedMediaIdentifierPermissionRequests( void AwContents::RequestGeolocationPermission( const GURL& origin, - const base::Callback& callback) { + base::OnceCallback callback) { JNIEnv* env = AttachCurrentThread(); ScopedJavaLocalRef obj = java_ref_.get(env); if (obj.is_null()) return; if (Java_AwContents_useLegacyGeolocationPermissionAPI(env, obj)) { - ShowGeolocationPrompt(origin, callback); + ShowGeolocationPrompt(origin, std::move(callback)); return; } permission_request_handler_->SendRequest( std::unique_ptr(new SimplePermissionRequest( - origin, AwPermissionRequest::Geolocation, callback))); + origin, AwPermissionRequest::Geolocation, std::move(callback)))); } void AwContents::CancelGeolocationPermissionRequests(const GURL& origin) { @@ -725,10 +726,10 @@ void AwContents::CancelGeolocationPermissionRequests(const GURL& origin) { void AwContents::RequestMIDISysexPermission( const GURL& origin, - const base::Callback& callback) { + base::OnceCallback callback) { permission_request_handler_->SendRequest( std::unique_ptr(new SimplePermissionRequest( - origin, AwPermissionRequest::MIDISysex, callback))); + origin, AwPermissionRequest::MIDISysex, std::move(callback)))); } void AwContents::CancelMIDISysexPermissionRequests(const GURL& origin) { diff --git a/android_webview/browser/aw_contents.h b/android_webview/browser/aw_contents.h index ffb1ba7d7d6512..792cebdb01878a 100644 --- a/android_webview/browser/aw_contents.h +++ b/android_webview/browser/aw_contents.h @@ -237,16 +237,16 @@ class AwContents : public FindHelper::Listener, // AwBrowserPermissionRequestDelegate implementation. void RequestProtectedMediaIdentifierPermission( const GURL& origin, - const base::Callback& callback) override; + base::OnceCallback callback) override; void CancelProtectedMediaIdentifierPermissionRequests( const GURL& origin) override; void RequestGeolocationPermission( const GURL& origin, - const base::Callback& callback) override; + base::OnceCallback callback) override; void CancelGeolocationPermissionRequests(const GURL& origin) override; void RequestMIDISysexPermission( const GURL& origin, - const base::Callback& callback) override; + base::OnceCallback callback) override; void CancelMIDISysexPermissionRequests(const GURL& origin) override; // Find-in-page API and related methods. @@ -366,7 +366,8 @@ class AwContents : public FindHelper::Listener, void InitAutofillIfNecessary(bool autocomplete_enabled); // Geolocation API support - void ShowGeolocationPrompt(const GURL& origin, base::Callback); + void ShowGeolocationPrompt(const GURL& origin, + base::OnceCallback); void HideGeolocationPrompt(const GURL& origin); void SetDipScaleInternal(float dip_scale); @@ -390,7 +391,7 @@ class AwContents : public FindHelper::Listener, // GURL is supplied by the content layer as requesting frame. // Callback is supplied by the content layer, and is invoked with the result // from the permission prompt. - typedef std::pair> OriginCallback; + typedef std::pair> OriginCallback; // The first element in the list is always the currently pending request. std::list pending_geolocation_prompts_; diff --git a/android_webview/browser/aw_contents_client_bridge.cc b/android_webview/browser/aw_contents_client_bridge.cc index 8abb9c3b314bd6..beadeb798f463b 100644 --- a/android_webview/browser/aw_contents_client_bridge.cc +++ b/android_webview/browser/aw_contents_client_bridge.cc @@ -125,12 +125,11 @@ AwContentsClientBridge::~AwContentsClientBridge() { } } -void AwContentsClientBridge::AllowCertificateError( - int cert_error, - net::X509Certificate* cert, - const GURL& request_url, - const base::Callback& callback, - bool* cancel_request) { +void AwContentsClientBridge::AllowCertificateError(int cert_error, + net::X509Certificate* cert, + const GURL& request_url, + CertErrorCallback callback, + bool* cancel_request) { DCHECK_CURRENTLY_ON(BrowserThread::UI); JNIEnv* env = AttachCurrentThread(); @@ -148,7 +147,7 @@ void AwContentsClientBridge::AllowCertificateError( // We need to add the callback before making the call to java side, // as it may do a synchronous callback prior to returning. int request_id = pending_cert_error_callbacks_.Add( - std::make_unique(callback)); + std::make_unique(std::move(callback))); *cancel_request = !Java_AwContentsClientBridge_allowCertificateError( env, obj, cert_error, jcert, jurl, request_id); // if the request is cancelled, then cancel the stored callback @@ -167,8 +166,9 @@ void AwContentsClientBridge::ProceedSslError(JNIEnv* env, LOG(WARNING) << "Ignoring unexpected ssl error proceed callback"; return; } - callback->Run(proceed ? content::CERTIFICATE_REQUEST_RESULT_TYPE_CONTINUE - : content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL); + std::move(*callback).Run( + proceed ? content::CERTIFICATE_REQUEST_RESULT_TYPE_CONTINUE + : content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL); pending_cert_error_callbacks_.Remove(id); } @@ -453,9 +453,9 @@ void AwContentsClientBridge::OnReceivedError( void AwContentsClientBridge::OnSafeBrowsingHit( const AwWebResourceRequest& request, const safe_browsing::SBThreatType& threat_type, - const SafeBrowsingActionCallback& callback) { + SafeBrowsingActionCallback callback) { int request_id = safe_browsing_callbacks_.Add( - std::make_unique(callback)); + std::make_unique(std::move(callback))); DCHECK_CURRENTLY_ON(BrowserThread::UI); JNIEnv* env = AttachCurrentThread(); @@ -551,7 +551,7 @@ void AwContentsClientBridge::TakeSafeBrowsingAction(JNIEnv*, LOG(WARNING) << "Unexpected TakeSafeBrowsingAction. " << request_id; return; } - callback->Run( + std::move(*callback).Run( static_cast(action), reporting); safe_browsing_callbacks_.Remove(request_id); diff --git a/android_webview/browser/aw_contents_client_bridge.h b/android_webview/browser/aw_contents_client_bridge.h index 0188c249112913..29652fc244ca5c 100644 --- a/android_webview/browser/aw_contents_client_bridge.h +++ b/android_webview/browser/aw_contents_client_bridge.h @@ -43,6 +43,12 @@ namespace android_webview { // any references. class AwContentsClientBridge { public: + using CertErrorCallback = + base::OnceCallback; + using SafeBrowsingActionCallback = + base::OnceCallback; + // Adds the handler to the UserData registry. static void Associate(content::WebContents* web_contents, AwContentsClientBridge* handler); @@ -58,13 +64,11 @@ class AwContentsClientBridge { ~AwContentsClientBridge(); // AwContentsClientBridge implementation - void AllowCertificateError( - int cert_error, - net::X509Certificate* cert, - const GURL& request_url, - const base::Callback& - callback, - bool* cancel_request); + void AllowCertificateError(int cert_error, + net::X509Certificate* cert, + const GURL& request_url, + CertErrorCallback callback, + bool* cancel_request); void SelectClientCertificate( net::SSLCertRequestInfo* cert_request_info, std::unique_ptr delegate); @@ -100,11 +104,9 @@ class AwContentsClientBridge { int error_code, bool safebrowsing_hit); - void OnSafeBrowsingHit( - const AwWebResourceRequest& request, - const safe_browsing::SBThreatType& threat_type, - const base::Callback& callback); + void OnSafeBrowsingHit(const AwWebResourceRequest& request, + const safe_browsing::SBThreatType& threat_type, + SafeBrowsingActionCallback callback); // Called when a response from the server is received with status code >= 400. void OnReceivedHttpError( @@ -137,11 +139,6 @@ class AwContentsClientBridge { private: JavaObjectWeakGlobalRef java_ref_; - typedef const base::Callback - CertErrorCallback; - typedef const base::Callback< - void(AwUrlCheckerDelegateImpl::SafeBrowsingAction, bool)> - SafeBrowsingActionCallback; base::IDMap> pending_cert_error_callbacks_; base::IDMap> safe_browsing_callbacks_; diff --git a/android_webview/browser/aw_contents_io_thread_client.cc b/android_webview/browser/aw_contents_io_thread_client.cc index 9300b273394056..f621a01dbeba8c 100644 --- a/android_webview/browser/aw_contents_io_thread_client.cc +++ b/android_webview/browser/aw_contents_io_thread_client.cc @@ -372,10 +372,10 @@ std::unique_ptr ReturnNull() { void AwContentsIoThreadClient::ShouldInterceptRequestAsync( const net::URLRequest* request, - const ShouldInterceptRequestResultCallback callback) { + ShouldInterceptRequestResultCallback callback) { DCHECK_CURRENTLY_ON(BrowserThread::IO); - base::Callback()> get_response = - base::Bind(&ReturnNull); + base::OnceCallback()> get_response = + base::BindOnce(&ReturnNull); JNIEnv* env = AttachCurrentThread(); if (bg_thread_client_object_.is_null() && !java_object_.is_null()) { bg_thread_client_object_.Reset( @@ -383,12 +383,13 @@ void AwContentsIoThreadClient::ShouldInterceptRequestAsync( java_object_)); } if (!bg_thread_client_object_.is_null()) { - get_response = base::Bind( + get_response = base::BindOnce( &RunShouldInterceptRequest, AwWebResourceRequest(*request), JavaObjectWeakGlobalRef(env, bg_thread_client_object_.obj())); } base::PostTaskAndReplyWithResult(sequenced_task_runner_.get(), FROM_HERE, - get_response, callback); + std::move(get_response), + std::move(callback)); } bool AwContentsIoThreadClient::ShouldBlockContentUrls() const { diff --git a/android_webview/browser/aw_contents_io_thread_client.h b/android_webview/browser/aw_contents_io_thread_client.h index c65a9918d9d5a4..7d2b3584f7a536 100644 --- a/android_webview/browser/aw_contents_io_thread_client.h +++ b/android_webview/browser/aw_contents_io_thread_client.h @@ -108,11 +108,11 @@ class AwContentsIoThreadClient { int child_render_frame_id); // This method is called on the IO thread only. - typedef base::Callback)> - ShouldInterceptRequestResultCallback; + using ShouldInterceptRequestResultCallback = + base::OnceCallback)>; void ShouldInterceptRequestAsync( const net::URLRequest* request, - const ShouldInterceptRequestResultCallback callback); + ShouldInterceptRequestResultCallback callback); // Retrieve the AllowContentAccess setting value of this AwContents. // This method is called on the IO thread only. diff --git a/android_webview/browser/aw_contents_statics.cc b/android_webview/browser/aw_contents_statics.cc index 4c100b95e2ffd9..b1f7b4f7607b10 100644 --- a/android_webview/browser/aw_contents_statics.cc +++ b/android_webview/browser/aw_contents_statics.cc @@ -76,9 +76,9 @@ void JNI_AwContentsStatics_ClearClientCertPreferences( DCHECK_CURRENTLY_ON(content::BrowserThread::UI); BrowserThread::PostTaskAndReply( BrowserThread::IO, FROM_HERE, - base::Bind(&NotifyClientCertificatesChanged), - base::Bind(&ClientCertificatesCleared, - ScopedJavaGlobalRef(env, callback))); + base::BindOnce(&NotifyClientCertificatesChanged), + base::BindOnce(&ClientCertificatesCleared, + ScopedJavaGlobalRef(env, callback))); } // static @@ -124,8 +124,8 @@ void JNI_AwContentsStatics_SetSafeBrowsingWhitelist( AwBrowserContext::GetDefault()->GetSafeBrowsingWhitelistManager(); whitelist_manager->SetWhitelistOnUIThread( std::move(rules), - base::Bind(&SafeBrowsingWhitelistAssigned, - ScopedJavaGlobalRef(env, callback))); + base::BindOnce(&SafeBrowsingWhitelistAssigned, + ScopedJavaGlobalRef(env, callback))); } // static diff --git a/android_webview/browser/aw_devtools_server.cc b/android_webview/browser/aw_devtools_server.cc index dff0da13ccd8e7..86107a3adcd010 100644 --- a/android_webview/browser/aw_devtools_server.cc +++ b/android_webview/browser/aw_devtools_server.cc @@ -46,7 +46,7 @@ class UnixDomainServerSocketFactory : public content::DevToolsSocketFactory { std::unique_ptr CreateForHttpServer() override { std::unique_ptr socket( new net::UnixDomainServerSocket( - base::Bind(&content::CanUserConnectToDevTools), + base::BindRepeating(&content::CanUserConnectToDevTools), true /* use_abstract_namespace */)); if (socket->BindAndListen(socket_name_, kBackLog) != net::OK) return std::unique_ptr(); @@ -60,7 +60,7 @@ class UnixDomainServerSocketFactory : public content::DevToolsSocketFactory { ++last_tethering_socket_); std::unique_ptr socket( new net::UnixDomainServerSocket( - base::Bind(&content::CanUserConnectToDevTools), + base::BindRepeating(&content::CanUserConnectToDevTools), true /* use_abstract_namespace */)); if (socket->BindAndListen(*name, kBackLog) != net::OK) return std::unique_ptr(); diff --git a/android_webview/browser/aw_form_database_service.cc b/android_webview/browser/aw_form_database_service.cc index b0efc43f3511e2..bbe8edbcde73af 100644 --- a/android_webview/browser/aw_form_database_service.cc +++ b/android_webview/browser/aw_form_database_service.cc @@ -80,8 +80,9 @@ bool AwFormDatabaseService::HasFormData() { using awds = autofill::AutofillWebDataService; base::PostTask( FROM_HERE, - base::Bind(base::IgnoreResult(&awds::GetCountOfValuesContainedBetween), - autofill_data_, base::Time(), base::Time::Max(), this)); + base::BindOnce( + base::IgnoreResult(&awds::GetCountOfValuesContainedBetween), + autofill_data_, base::Time(), base::Time::Max(), this)); { base::ThreadRestrictions::ScopedAllowWait wait; has_form_data_completion_.Wait(); diff --git a/android_webview/browser/aw_login_delegate.cc b/android_webview/browser/aw_login_delegate.cc index 3874bc017bf684..2ecdd2636dbef7 100644 --- a/android_webview/browser/aw_login_delegate.cc +++ b/android_webview/browser/aw_login_delegate.cc @@ -29,8 +29,8 @@ AwLoginDelegate::AwLoginDelegate( : auth_info_(auth_info), auth_required_callback_(auth_required_callback) { BrowserThread::PostTask( BrowserThread::UI, FROM_HERE, - base::Bind(&AwLoginDelegate::HandleHttpAuthRequestOnUIThread, this, - first_auth_attempt, web_contents_getter)); + base::BindOnce(&AwLoginDelegate::HandleHttpAuthRequestOnUIThread, this, + first_auth_attempt, web_contents_getter)); } AwLoginDelegate::~AwLoginDelegate() { @@ -43,14 +43,15 @@ void AwLoginDelegate::Proceed(const base::string16& user, const base::string16& password) { DCHECK_CURRENTLY_ON(BrowserThread::UI); BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, - base::Bind(&AwLoginDelegate::ProceedOnIOThread, - this, user, password)); + base::BindOnce(&AwLoginDelegate::ProceedOnIOThread, + this, user, password)); } void AwLoginDelegate::Cancel() { DCHECK_CURRENTLY_ON(BrowserThread::UI); - BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, - base::Bind(&AwLoginDelegate::CancelOnIOThread, this)); + BrowserThread::PostTask( + BrowserThread::IO, FROM_HERE, + base::BindOnce(&AwLoginDelegate::CancelOnIOThread, this)); } void AwLoginDelegate::HandleHttpAuthRequestOnUIThread( @@ -93,8 +94,9 @@ void AwLoginDelegate::OnRequestCancelled() { void AwLoginDelegate::DeleteAuthHandlerSoon() { if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { - BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, - base::Bind(&AwLoginDelegate::DeleteAuthHandlerSoon, this)); + BrowserThread::PostTask( + BrowserThread::UI, FROM_HERE, + base::BindOnce(&AwLoginDelegate::DeleteAuthHandlerSoon, this)); return; } aw_http_auth_handler_.reset(); diff --git a/android_webview/browser/aw_metrics_service_client.cc b/android_webview/browser/aw_metrics_service_client.cc index 3e720c018a9a85..3afecd0502a0c3 100644 --- a/android_webview/browser/aw_metrics_service_client.cc +++ b/android_webview/browser/aw_metrics_service_client.cc @@ -142,9 +142,9 @@ void AwMetricsServiceClient::Initialize( } else { base::PostTaskWithTraitsAndReply( FROM_HERE, {base::MayBlock()}, - base::Bind(&AwMetricsServiceClient::LoadOrCreateClientId), - base::Bind(&AwMetricsServiceClient::InitializeWithClientId, - base::Unretained(this))); + base::BindOnce(&AwMetricsServiceClient::LoadOrCreateClientId), + base::BindOnce(&AwMetricsServiceClient::InitializeWithClientId, + base::Unretained(this))); } } @@ -157,8 +157,9 @@ void AwMetricsServiceClient::InitializeWithClientId() { in_sample_ = IsInSample(g_client_id.Get()); metrics_state_manager_ = metrics::MetricsStateManager::Create( - pref_service_, this, base::string16(), base::Bind(&StoreClientInfo), - base::Bind(&LoadClientInfo)); + pref_service_, this, base::string16(), + base::BindRepeating(&StoreClientInfo), + base::BindRepeating(&LoadClientInfo)); metrics_service_.reset(new ::metrics::MetricsService( metrics_state_manager_.get(), this, pref_service_)); diff --git a/android_webview/browser/aw_permission_manager.cc b/android_webview/browser/aw_permission_manager.cc index 71b4d1f62c9ca3..0a19d992fdeb33 100644 --- a/android_webview/browser/aw_permission_manager.cc +++ b/android_webview/browser/aw_permission_manager.cc @@ -21,7 +21,7 @@ using blink::mojom::PermissionStatus; using content::PermissionType; using RequestPermissionsCallback = - base::Callback&)>; + base::OnceCallback&)>; namespace android_webview { @@ -154,13 +154,13 @@ class AwPermissionManager::PendingRequest { GURL embedding_origin, int render_process_id, int render_frame_id, - const RequestPermissionsCallback callback) + RequestPermissionsCallback callback) : permissions(permissions), requesting_origin(requesting_origin), embedding_origin(embedding_origin), render_process_id(render_process_id), render_frame_id(render_frame_id), - callback(callback), + callback(std::move(callback)), results(permissions.size(), PermissionStatus::DENIED), cancelled_(false) { for (size_t i = 0; i < permissions.size(); ++i) @@ -302,20 +302,20 @@ int AwPermissionManager::RequestPermissions( case PermissionType::GEOLOCATION: delegate->RequestGeolocationPermission( pending_request_raw->requesting_origin, - base::Bind(&OnRequestResponse, weak_ptr_factory_.GetWeakPtr(), - request_id, permissions[i])); + base::BindOnce(&OnRequestResponse, weak_ptr_factory_.GetWeakPtr(), + request_id, permissions[i])); break; case PermissionType::PROTECTED_MEDIA_IDENTIFIER: delegate->RequestProtectedMediaIdentifierPermission( pending_request_raw->requesting_origin, - base::Bind(&OnRequestResponse, weak_ptr_factory_.GetWeakPtr(), - request_id, permissions[i])); + base::BindOnce(&OnRequestResponse, weak_ptr_factory_.GetWeakPtr(), + request_id, permissions[i])); break; case PermissionType::MIDI_SYSEX: delegate->RequestMIDISysexPermission( pending_request_raw->requesting_origin, - base::Bind(&OnRequestResponse, weak_ptr_factory_.GetWeakPtr(), - request_id, permissions[i])); + base::BindOnce(&OnRequestResponse, weak_ptr_factory_.GetWeakPtr(), + request_id, permissions[i])); break; case PermissionType::AUDIO_CAPTURE: case PermissionType::VIDEO_CAPTURE: @@ -384,8 +384,8 @@ void AwPermissionManager::OnRequestResponse( pending_request->embedding_origin, status); std::vector complete_request_ids; - std::vector>> + std::vector< + std::pair>> complete_request_pairs; for (PendingRequestsMap::Iterator it( &manager->pending_requests_); @@ -399,15 +399,16 @@ void AwPermissionManager::OnRequestResponse( if (it.GetCurrentValue()->IsCompleted()) { complete_request_ids.push_back(it.GetCurrentKey()); if (!it.GetCurrentValue()->IsCancelled()) { - complete_request_pairs.push_back(std::make_pair( - it.GetCurrentValue()->callback, it.GetCurrentValue()->results)); + complete_request_pairs.emplace_back( + std::move(it.GetCurrentValue()->callback), + std::move(it.GetCurrentValue()->results)); } } } for (auto id : complete_request_ids) manager->pending_requests_.Remove(id); - for (auto pair : complete_request_pairs) - pair.first.Run(pair.second); + for (auto& pair : complete_request_pairs) + std::move(pair.first).Run(pair.second); } void AwPermissionManager::ResetPermission(PermissionType permission, diff --git a/android_webview/browser/aw_permission_manager_unittest.cc b/android_webview/browser/aw_permission_manager_unittest.cc index 41bc18a849522d..ab8914b74095c9 100644 --- a/android_webview/browser/aw_permission_manager_unittest.cc +++ b/android_webview/browser/aw_permission_manager_unittest.cc @@ -39,9 +39,9 @@ class AwBrowserPermissionRequestDelegateForTesting final for (auto it = request_.begin(); it != request_.end(); ++it) { if ((*it)->type != type || (*it)->origin != origin) continue; - const base::Callback callback = (*it)->callback; + base::OnceCallback callback = std::move((*it)->callback); request_.erase(it); - callback.Run(grant); + std::move(callback).Run(grant); return; } response_.push_back(std::make_unique(origin, type, grant)); @@ -50,15 +50,15 @@ class AwBrowserPermissionRequestDelegateForTesting final // AwBrowserPermissionRequestDelegate: void RequestProtectedMediaIdentifierPermission( const GURL& origin, - const base::Callback& callback) override {} + base::OnceCallback callback) override {} void CancelProtectedMediaIdentifierPermissionRequests( const GURL& origin) override {} void RequestGeolocationPermission( const GURL& origin, - const base::Callback& callback) override { - RequestPermission(origin, PermissionType::GEOLOCATION, callback); + base::OnceCallback callback) override { + RequestPermission(origin, PermissionType::GEOLOCATION, std::move(callback)); } void CancelGeolocationPermissionRequests(const GURL& origin) override { @@ -67,8 +67,8 @@ class AwBrowserPermissionRequestDelegateForTesting final void RequestMIDISysexPermission( const GURL& origin, - const base::Callback& callback) override { - RequestPermission(origin, PermissionType::MIDI_SYSEX, callback); + base::OnceCallback callback) override { + RequestPermission(origin, PermissionType::MIDI_SYSEX, std::move(callback)); } void CancelMIDISysexPermissionRequests(const GURL& origin) override { @@ -78,16 +78,17 @@ class AwBrowserPermissionRequestDelegateForTesting final private: void RequestPermission(const GURL& origin, PermissionType type, - const base::Callback& callback) { + base::OnceCallback callback) { for (auto it = response_.begin(); it != response_.end(); ++it) { if ((*it)->type != type || (*it)->origin != origin) continue; bool grant = (*it)->grant; response_.erase(it); - callback.Run(grant); + std::move(callback).Run(grant); return; } - request_.push_back(std::make_unique(origin, type, callback)); + request_.push_back( + std::make_unique(origin, type, std::move(callback))); } void CancelPermission(const GURL& origin, PermissionType type) { @@ -104,12 +105,12 @@ class AwBrowserPermissionRequestDelegateForTesting final struct Request { GURL origin; PermissionType type; - base::Callback callback; + base::OnceCallback callback; Request(const GURL& origin, PermissionType type, - const base::Callback& callback) - : origin(origin), type(type), callback(callback) {} + base::OnceCallback callback) + : origin(origin), type(type), callback(std::move(callback)) {} }; struct Response { diff --git a/android_webview/browser/aw_print_manager.cc b/android_webview/browser/aw_print_manager.cc index 924193f33adcb6..736771c5f7d19d 100644 --- a/android_webview/browser/aw_print_manager.cc +++ b/android_webview/browser/aw_print_manager.cc @@ -35,22 +35,20 @@ AwPrintManager* AwPrintManager::CreateForWebContents( content::WebContents* contents, const printing::PrintSettings& settings, const base::FileDescriptor& file_descriptor, - const PrintManager::PdfWritingDoneCallback& callback) { - AwPrintManager* print_manager = - new AwPrintManager(contents, settings, file_descriptor, callback); + PrintManager::PdfWritingDoneCallback callback) { + AwPrintManager* print_manager = new AwPrintManager( + contents, settings, file_descriptor, std::move(callback)); contents->SetUserData(UserDataKey(), base::WrapUnique(print_manager)); return print_manager; } -AwPrintManager::AwPrintManager( - content::WebContents* contents, - const printing::PrintSettings& settings, - const base::FileDescriptor& file_descriptor, - const PdfWritingDoneCallback& callback) - : PrintManager(contents), - settings_(settings) { +AwPrintManager::AwPrintManager(content::WebContents* contents, + const printing::PrintSettings& settings, + const base::FileDescriptor& file_descriptor, + PdfWritingDoneCallback callback) + : PrintManager(contents), settings_(settings) { set_file_descriptor(file_descriptor); - pdf_writing_done_callback_ = callback; + pdf_writing_done_callback_ = std::move(callback); cookie_ = 1; } diff --git a/android_webview/browser/aw_print_manager.h b/android_webview/browser/aw_print_manager.h index 12e4f19805a4c9..b7bfb6f6884023 100644 --- a/android_webview/browser/aw_print_manager.h +++ b/android_webview/browser/aw_print_manager.h @@ -22,7 +22,7 @@ class AwPrintManager : public printing::PrintManager, content::WebContents* contents, const printing::PrintSettings& settings, const base::FileDescriptor& file_descriptor, - const PdfWritingDoneCallback& callback); + PdfWritingDoneCallback callback); ~AwPrintManager() override; @@ -34,7 +34,7 @@ class AwPrintManager : public printing::PrintManager, AwPrintManager(content::WebContents* contents, const printing::PrintSettings& settings, const base::FileDescriptor& file_descriptor, - const PdfWritingDoneCallback& callback); + PdfWritingDoneCallback callback); // printing::PrintManager: bool OnMessageReceived(const IPC::Message& message, diff --git a/android_webview/browser/aw_quota_manager_bridge.cc b/android_webview/browser/aw_quota_manager_bridge.cc index 06aa4a5ab61d83..6a24f2ff75a0b1 100644 --- a/android_webview/browser/aw_quota_manager_bridge.cc +++ b/android_webview/browser/aw_quota_manager_bridge.cc @@ -37,7 +37,7 @@ namespace { // are destroyed at the end of DoneOnUIThread. class GetOriginsTask : public base::RefCountedThreadSafe { public: - GetOriginsTask(const AwQuotaManagerBridge::GetOriginsCallback& callback, + GetOriginsTask(AwQuotaManagerBridge::GetOriginsCallback callback, QuotaManager* quota_manager); void Run(); @@ -71,9 +71,9 @@ class GetOriginsTask : public base::RefCountedThreadSafe { }; GetOriginsTask::GetOriginsTask( - const AwQuotaManagerBridge::GetOriginsCallback& callback, + AwQuotaManagerBridge::GetOriginsCallback callback, QuotaManager* quota_manager) - : ui_callback_(callback), quota_manager_(quota_manager) { + : ui_callback_(std::move(callback)), quota_manager_(quota_manager) { DCHECK_CURRENTLY_ON(BrowserThread::UI); } @@ -83,10 +83,10 @@ void GetOriginsTask::Run() { DCHECK_CURRENTLY_ON(BrowserThread::UI); BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - base::Bind(&QuotaManager::GetOriginsModifiedSince, quota_manager_, - blink::mojom::StorageType::kTemporary, - base::Time() /* Since beginning of time. */, - base::Bind(&GetOriginsTask::OnOriginsObtained, this))); + base::BindOnce(&QuotaManager::GetOriginsModifiedSince, quota_manager_, + blink::mojom::StorageType::kTemporary, + base::Time() /* Since beginning of time. */, + base::BindOnce(&GetOriginsTask::OnOriginsObtained, this))); } void GetOriginsTask::OnOriginsObtained(const std::set& origins, @@ -99,7 +99,8 @@ void GetOriginsTask::OnOriginsObtained(const std::set& origins, origin != origins.end(); ++origin) { quota_manager_->GetUsageAndQuota( *origin, type, - base::Bind(&GetOriginsTask::OnUsageAndQuotaObtained, this, *origin)); + base::BindOnce(&GetOriginsTask::OnUsageAndQuotaObtained, this, + *origin)); } CheckDone(); @@ -124,8 +125,9 @@ void GetOriginsTask::OnUsageAndQuotaObtained( void GetOriginsTask::CheckDone() { DCHECK_CURRENTLY_ON(BrowserThread::IO); if (num_callbacks_received_ == num_callbacks_to_wait_) { - BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, - base::Bind(&GetOriginsTask::DoneOnUIThread, this)); + BrowserThread::PostTask( + BrowserThread::UI, FROM_HERE, + base::BindOnce(&GetOriginsTask::DoneOnUIThread, this)); } else if (num_callbacks_received_ > num_callbacks_to_wait_) { NOTREACHED(); } @@ -134,14 +136,14 @@ void GetOriginsTask::CheckDone() { // This method is to avoid copying the 3 vector arguments into a bound callback. void GetOriginsTask::DoneOnUIThread() { DCHECK_CURRENTLY_ON(BrowserThread::UI); - ui_callback_.Run(origin_, usage_, quota_); + std::move(ui_callback_).Run(origin_, usage_, quota_); } -void RunOnUIThread(const base::Closure& task) { +void RunOnUIThread(base::OnceClosure task) { if (BrowserThread::CurrentlyOn(BrowserThread::UI)) { - task.Run(); + std::move(task).Run(); } else { - BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, task); + BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, std::move(task)); } } @@ -197,7 +199,7 @@ QuotaManager* AwQuotaManagerBridge::GetQuotaManager() const { void AwQuotaManagerBridge::DeleteAllData(JNIEnv* env, const JavaParamRef& object) { RunOnUIThread( - base::Bind(&AwQuotaManagerBridge::DeleteAllDataOnUiThread, this)); + base::BindOnce(&AwQuotaManagerBridge::DeleteAllDataOnUiThread, this)); } void AwQuotaManagerBridge::DeleteAllDataOnUiThread() { @@ -219,8 +221,8 @@ void AwQuotaManagerBridge::DeleteOrigin(JNIEnv* env, const JavaParamRef& origin) { base::string16 origin_string( base::android::ConvertJavaStringToUTF16(env, origin)); - RunOnUIThread(base::Bind(&AwQuotaManagerBridge::DeleteOriginOnUiThread, this, - origin_string)); + RunOnUIThread(base::BindOnce(&AwQuotaManagerBridge::DeleteOriginOnUiThread, + this, origin_string)); } void AwQuotaManagerBridge::DeleteOriginOnUiThread( @@ -239,18 +241,18 @@ void AwQuotaManagerBridge::DeleteOriginOnUiThread( void AwQuotaManagerBridge::GetOrigins(JNIEnv* env, const JavaParamRef& object, jint callback_id) { - RunOnUIThread(base::Bind(&AwQuotaManagerBridge::GetOriginsOnUiThread, this, - callback_id)); + RunOnUIThread(base::BindOnce(&AwQuotaManagerBridge::GetOriginsOnUiThread, + this, callback_id)); } void AwQuotaManagerBridge::GetOriginsOnUiThread(jint callback_id) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - const GetOriginsCallback ui_callback = - base::Bind(&AwQuotaManagerBridge::GetOriginsCallbackImpl, - weak_factory_.GetWeakPtr(), callback_id); + GetOriginsCallback ui_callback = + base::BindOnce(&AwQuotaManagerBridge::GetOriginsCallbackImpl, + weak_factory_.GetWeakPtr(), callback_id); - (new GetOriginsTask(ui_callback, GetQuotaManager()))->Run(); + (new GetOriginsTask(std::move(ui_callback), GetQuotaManager()))->Run(); } void AwQuotaManagerBridge::GetOriginsCallbackImpl( @@ -273,7 +275,7 @@ void AwQuotaManagerBridge::GetOriginsCallbackImpl( namespace { void OnUsageAndQuotaObtained( - const AwQuotaManagerBridge::QuotaUsageCallback& ui_callback, + AwQuotaManagerBridge::QuotaUsageCallback ui_callback, blink::mojom::QuotaStatusCode status_code, int64_t usage, int64_t quota) { @@ -283,7 +285,7 @@ void OnUsageAndQuotaObtained( quota = 0; } BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, - base::Bind(ui_callback, usage, quota)); + base::BindOnce(std::move(ui_callback), usage, quota)); } } // namespace @@ -297,8 +299,8 @@ void AwQuotaManagerBridge::GetUsageAndQuotaForOrigin( base::string16 origin_string( base::android::ConvertJavaStringToUTF16(env, origin)); RunOnUIThread( - base::Bind(&AwQuotaManagerBridge::GetUsageAndQuotaForOriginOnUiThread, - this, origin_string, callback_id, is_quota)); + base::BindOnce(&AwQuotaManagerBridge::GetUsageAndQuotaForOriginOnUiThread, + this, origin_string, callback_id, is_quota)); } void AwQuotaManagerBridge::GetUsageAndQuotaForOriginOnUiThread( @@ -306,15 +308,16 @@ void AwQuotaManagerBridge::GetUsageAndQuotaForOriginOnUiThread( jint callback_id, bool is_quota) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - const QuotaUsageCallback ui_callback = - base::Bind(&AwQuotaManagerBridge::QuotaUsageCallbackImpl, - weak_factory_.GetWeakPtr(), callback_id, is_quota); + QuotaUsageCallback ui_callback = + base::BindOnce(&AwQuotaManagerBridge::QuotaUsageCallbackImpl, + weak_factory_.GetWeakPtr(), callback_id, is_quota); BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - base::Bind(&QuotaManager::GetUsageAndQuota, GetQuotaManager(), - GURL(origin), blink::mojom::StorageType::kTemporary, - base::Bind(&OnUsageAndQuotaObtained, ui_callback))); + base::BindOnce( + &QuotaManager::GetUsageAndQuota, GetQuotaManager(), GURL(origin), + blink::mojom::StorageType::kTemporary, + base::BindOnce(&OnUsageAndQuotaObtained, std::move(ui_callback)))); } void AwQuotaManagerBridge::QuotaUsageCallbackImpl(int jcallback_id, diff --git a/android_webview/browser/aw_quota_manager_bridge.h b/android_webview/browser/aw_quota_manager_bridge.h index 2df4e464a860e5..b65f4171d4026d 100644 --- a/android_webview/browser/aw_quota_manager_bridge.h +++ b/android_webview/browser/aw_quota_manager_bridge.h @@ -52,12 +52,12 @@ class AwQuotaManagerBridge jint callback_id, bool is_quota); - typedef base::Callback& /* origin */, + using GetOriginsCallback = + base::OnceCallback& /* origin */, const std::vector& /* usaoge */, - const std::vector& /* quota */)> - GetOriginsCallback; - typedef base::Callback - QuotaUsageCallback; + const std::vector& /* quota */)>; + using QuotaUsageCallback = + base::OnceCallback; private: friend class base::RefCountedThreadSafe; diff --git a/android_webview/browser/aw_render_thread_context_provider.cc b/android_webview/browser/aw_render_thread_context_provider.cc index a860024b471ee6..fbad080af84bbe 100644 --- a/android_webview/browser/aw_render_thread_context_provider.cc +++ b/android_webview/browser/aw_render_thread_context_provider.cc @@ -68,7 +68,7 @@ AwRenderThreadContextProvider::AwRenderThreadContextProvider( gpu::kNullSurfaceHandle, nullptr /* share_context */, attributes, limits, nullptr, nullptr, nullptr, nullptr); - context_->GetImplementation()->SetLostContextCallback(base::Bind( + context_->GetImplementation()->SetLostContextCallback(base::BindOnce( &AwRenderThreadContextProvider::OnLostContext, base::Unretained(this))); if (base::CommandLine::ForCurrentProcess()->HasSwitch( diff --git a/android_webview/browser/aw_safe_browsing_whitelist_manager.cc b/android_webview/browser/aw_safe_browsing_whitelist_manager.cc index 159902386b5de5..24bfa09248372b 100644 --- a/android_webview/browser/aw_safe_browsing_whitelist_manager.cc +++ b/android_webview/browser/aw_safe_browsing_whitelist_manager.cc @@ -197,7 +197,7 @@ void AwSafeBrowsingWhitelistManager::SetWhitelist( // A task that builds the whitelist on a background thread. void AwSafeBrowsingWhitelistManager::BuildWhitelist( const std::vector& rules, - const base::Callback& callback) { + base::OnceCallback callback) { DCHECK(background_task_runner_->RunsTasksInCurrentSequence()); std::unique_ptr whitelist(std::make_unique()); @@ -205,28 +205,29 @@ void AwSafeBrowsingWhitelistManager::BuildWhitelist( DCHECK(!whitelist->is_terminal); DCHECK(!whitelist->match_prefix); - ui_task_runner_->PostTask(FROM_HERE, base::Bind(callback, success)); + ui_task_runner_->PostTask(FROM_HERE, + base::BindOnce(std::move(callback), success)); if (success) { // use base::Unretained as AwSafeBrowsingWhitelistManager is a singleton and // not cleaned. io_task_runner_->PostTask( FROM_HERE, - base::Bind(&AwSafeBrowsingWhitelistManager::SetWhitelist, - base::Unretained(this), base::Passed(std::move(whitelist)))); + base::BindOnce(&AwSafeBrowsingWhitelistManager::SetWhitelist, + base::Unretained(this), std::move(whitelist))); } } void AwSafeBrowsingWhitelistManager::SetWhitelistOnUIThread( std::vector&& rules, - const base::Callback& callback) { + base::OnceCallback callback) { DCHECK(ui_task_runner_->RunsTasksInCurrentSequence()); // use base::Unretained as AwSafeBrowsingWhitelistManager is a singleton and // not cleaned. background_task_runner_->PostTask( - FROM_HERE, base::Bind(&AwSafeBrowsingWhitelistManager::BuildWhitelist, - base::Unretained(this), - base::Passed(std::move(rules)), callback)); + FROM_HERE, base::BindOnce(&AwSafeBrowsingWhitelistManager::BuildWhitelist, + base::Unretained(this), std::move(rules), + std::move(callback))); } bool AwSafeBrowsingWhitelistManager::IsURLWhitelisted(const GURL& url) const { diff --git a/android_webview/browser/aw_safe_browsing_whitelist_manager.h b/android_webview/browser/aw_safe_browsing_whitelist_manager.h index e4dfcead0477f5..3d98ebba15897f 100644 --- a/android_webview/browser/aw_safe_browsing_whitelist_manager.h +++ b/android_webview/browser/aw_safe_browsing_whitelist_manager.h @@ -66,12 +66,12 @@ class AwSafeBrowsingWhitelistManager { // Replace the current host whitelist with a new one. void SetWhitelistOnUIThread(std::vector&& rules, - const base::Callback& callback); + base::OnceCallback callback); private: // Builds whitelist on background thread. void BuildWhitelist(const std::vector& rules, - const base::Callback& callback); + base::OnceCallback callback); // Replaces the current whitelist. Must be called on the IO thread. void SetWhitelist(std::unique_ptr whitelist); diff --git a/android_webview/browser/aw_safe_browsing_whitelist_manager_unittest.cc b/android_webview/browser/aw_safe_browsing_whitelist_manager_unittest.cc index e862e46496480f..c7b1f5e564eaaa 100644 --- a/android_webview/browser/aw_safe_browsing_whitelist_manager_unittest.cc +++ b/android_webview/browser/aw_safe_browsing_whitelist_manager_unittest.cc @@ -40,8 +40,8 @@ void VerifyWhitelistCallback(bool expected, bool success) { void AwSafeBrowsingWhitelistManagerTest::SetWhitelist( std::vector&& whitelist, bool expected) { - wm_->SetWhitelistOnUIThread(std::move(whitelist), - base::Bind(&VerifyWhitelistCallback, expected)); + wm_->SetWhitelistOnUIThread( + std::move(whitelist), base::BindOnce(&VerifyWhitelistCallback, expected)); } TEST_F(AwSafeBrowsingWhitelistManagerTest, WsSchemeCanBeWhitelisted) { diff --git a/android_webview/browser/aw_url_checker_delegate_impl.cc b/android_webview/browser/aw_url_checker_delegate_impl.cc index 04b8625d96e6fb..f61d9b11c8a5ba 100644 --- a/android_webview/browser/aw_url_checker_delegate_impl.cc +++ b/android_webview/browser/aw_url_checker_delegate_impl.cc @@ -47,8 +47,8 @@ void AwUrlCheckerDelegateImpl::StartDisplayingBlockingPageHelper( content::BrowserThread::PostTask( content::BrowserThread::UI, FROM_HERE, - base::Bind(&AwUrlCheckerDelegateImpl::StartApplicationResponse, - ui_manager_, resource, std::move(request))); + base::BindOnce(&AwUrlCheckerDelegateImpl::StartApplicationResponse, + ui_manager_, resource, std::move(request))); } bool AwUrlCheckerDelegateImpl::IsUrlWhitelisted(const GURL& url) { @@ -101,10 +101,12 @@ void AwUrlCheckerDelegateImpl::StartApplicationResponse( AwContentsClientBridge::FromWebContents(web_contents); if (client) { - base::Callback callback = base::Bind( - &AwUrlCheckerDelegateImpl::DoApplicationResponse, ui_manager, resource); + base::OnceCallback callback = + base::BindOnce(&AwUrlCheckerDelegateImpl::DoApplicationResponse, + ui_manager, resource); - client->OnSafeBrowsingHit(request, resource.threat_type, callback); + client->OnSafeBrowsingHit(request, resource.threat_type, + std::move(callback)); } } @@ -123,7 +125,7 @@ void AwUrlCheckerDelegateImpl::DoApplicationResponse( case SafeBrowsingAction::SHOW_INTERSTITIAL: content::BrowserThread::PostTask( content::BrowserThread::UI, FROM_HERE, - base::Bind( + base::BindOnce( &AwUrlCheckerDelegateImpl::StartDisplayingDefaultBlockingPage, ui_manager, resource)); return; @@ -169,7 +171,7 @@ void AwUrlCheckerDelegateImpl::StartDisplayingDefaultBlockingPage( // Reporting back that it is not okay to proceed with loading the URL. content::BrowserThread::PostTask(content::BrowserThread::IO, FROM_HERE, - base::Bind(resource.callback, false)); + base::BindOnce(resource.callback, false)); } } // namespace android_webview diff --git a/android_webview/browser/aw_variations_service_client.cc b/android_webview/browser/aw_variations_service_client.cc index 88112c9358f20d..fc71aa4e6b3ee2 100644 --- a/android_webview/browser/aw_variations_service_client.cc +++ b/android_webview/browser/aw_variations_service_client.cc @@ -31,7 +31,7 @@ std::string AwVariationsServiceClient::GetApplicationLocale() { base::Callback AwVariationsServiceClient::GetVersionForSimulationCallback() { - return base::Bind(&GetVersionForSimulation); + return base::BindRepeating(&GetVersionForSimulation); } net::URLRequestContextGetter* diff --git a/android_webview/browser/browser_view_renderer_unittest.cc b/android_webview/browser/browser_view_renderer_unittest.cc index d4af915d74867d..6d7b50d19110cb 100644 --- a/android_webview/browser/browser_view_renderer_unittest.cc +++ b/android_webview/browser/browser_view_renderer_unittest.cc @@ -186,9 +186,9 @@ class TestAnimateInAndOutOfScreen : public RenderingTest { bool WillDrawOnRT(AwDrawGLInfo* draw_info) override { if (draw_gl_count_on_rt_ == 1) { draw_gl_count_on_rt_++; - ui_task_runner_->PostTask( - FROM_HERE, - base::Bind(&RenderingTest::PostInvalidate, base::Unretained(this))); + ui_task_runner_->PostTask(FROM_HERE, + base::BindOnce(&RenderingTest::PostInvalidate, + base::Unretained(this))); return false; } @@ -359,9 +359,9 @@ class ResourceRenderingTest : public RenderingTest { void DidOnDraw(bool success) override { EXPECT_EQ(next_frame_ != nullptr, success); if (!AdvanceFrame()) { - ui_task_runner_->PostTask(FROM_HERE, - base::Bind(&ResourceRenderingTest::CheckResults, - base::Unretained(this))); + ui_task_runner_->PostTask( + FROM_HERE, base::BindOnce(&ResourceRenderingTest::CheckResults, + base::Unretained(this))); } } diff --git a/android_webview/browser/cookie_manager.cc b/android_webview/browser/cookie_manager.cc index f03fc0bbfdfc7e..f92fbad383599c 100644 --- a/android_webview/browser/cookie_manager.cc +++ b/android_webview/browser/cookie_manager.cc @@ -64,8 +64,8 @@ namespace android_webview { namespace { -typedef base::Callback BoolCallback; -typedef base::Callback IntCallback; +using BoolCallback = base::RepeatingCallback; +using IntCallback = base::RepeatingCallback; // Holds a Java BooleanCookieCallback, knows how to invoke it and turn it // into a base callback. @@ -84,8 +84,8 @@ class BoolCookieCallbackHolder { static BoolCallback ConvertToCallback( std::unique_ptr me) { - return base::Bind(&BoolCookieCallbackHolder::Invoke, - base::Owned(me.release())); + return base::BindRepeating(&BoolCookieCallbackHolder::Invoke, + base::Owned(me.release())); } private: @@ -95,24 +95,25 @@ class BoolCookieCallbackHolder { // Construct a closure which signals a waitable event if and when the closure // is called the waitable event must still exist. -static base::Closure SignalEventClosure(WaitableEvent* completion) { - return base::Bind(&WaitableEvent::Signal, base::Unretained(completion)); +static base::RepeatingClosure SignalEventClosure(WaitableEvent* completion) { + return base::BindRepeating(&WaitableEvent::Signal, + base::Unretained(completion)); } -static void DiscardBool(const base::Closure& f, bool b) { +static void DiscardBool(base::RepeatingClosure f, bool b) { f.Run(); } -static BoolCallback BoolCallbackAdapter(const base::Closure& f) { - return base::Bind(&DiscardBool, f); +static BoolCallback BoolCallbackAdapter(base::RepeatingClosure f) { + return base::BindRepeating(&DiscardBool, std::move(f)); } -static void DiscardInt(const base::Closure& f, int i) { +static void DiscardInt(base::RepeatingClosure f, int i) { f.Run(); } -static IntCallback IntCallbackAdapter(const base::Closure& f) { - return base::Bind(&DiscardInt, f); +static IntCallback IntCallbackAdapter(base::RepeatingClosure f) { + return base::BindRepeating(&DiscardInt, std::move(f)); } // Are cookies allowed for file:// URLs by default? @@ -338,15 +339,16 @@ void CookieManager::SetCookie( std::unique_ptr callback_holder) { BoolCallback callback = BoolCookieCallbackHolder::ConvertToCallback(std::move(callback_holder)); - ExecCookieTask(base::Bind(&CookieManager::SetCookieHelper, - base::Unretained(this), host, cookie_value, - callback)); + ExecCookieTask(base::BindOnce(&CookieManager::SetCookieHelper, + base::Unretained(this), host, cookie_value, + callback)); } void CookieManager::SetCookieSync(const GURL& host, const std::string& cookie_value) { - ExecCookieTaskSync(base::Bind(&CookieManager::SetCookieHelper, - base::Unretained(this), host, cookie_value)); + ExecCookieTaskSync(base::BindOnce(&CookieManager::SetCookieHelper, + base::Unretained(this), host, + cookie_value)); } void CookieManager::SetCookieHelper(const GURL& host, @@ -407,19 +409,19 @@ void CookieManager::RemoveSessionCookies( std::unique_ptr callback_holder) { BoolCallback callback = BoolCookieCallbackHolder::ConvertToCallback(std::move(callback_holder)); - ExecCookieTask(base::Bind(&CookieManager::RemoveSessionCookiesHelper, - base::Unretained(this), callback)); + ExecCookieTask(base::BindOnce(&CookieManager::RemoveSessionCookiesHelper, + base::Unretained(this), callback)); } void CookieManager::RemoveSessionCookiesSync() { - ExecCookieTaskSync(base::Bind(&CookieManager::RemoveSessionCookiesHelper, - base::Unretained(this))); + ExecCookieTaskSync(base::BindOnce(&CookieManager::RemoveSessionCookiesHelper, + base::Unretained(this))); } void CookieManager::RemoveSessionCookiesHelper(BoolCallback callback) { GetCookieStore()->DeleteSessionCookiesAsync( - base::Bind(&CookieManager::RemoveCookiesCompleted, base::Unretained(this), - callback)); + base::BindOnce(&CookieManager::RemoveCookiesCompleted, + base::Unretained(this), callback)); } void CookieManager::RemoveCookiesCompleted(BoolCallback callback, @@ -442,8 +444,8 @@ void CookieManager::RemoveAllCookiesSync() { void CookieManager::RemoveAllCookiesHelper(const BoolCallback callback) { GetCookieStore()->DeleteAllAsync( - base::Bind(&CookieManager::RemoveCookiesCompleted, base::Unretained(this), - callback)); + base::BindOnce(&CookieManager::RemoveCookiesCompleted, + base::Unretained(this), callback)); } void CookieManager::RemoveExpiredCookies() { diff --git a/android_webview/browser/net/android_stream_reader_url_request_job.cc b/android_webview/browser/net/android_stream_reader_url_request_job.cc index 0fb895f12b6d1f..f3904c0839bf25 100644 --- a/android_webview/browser/net/android_stream_reader_url_request_job.cc +++ b/android_webview/browser/net/android_stream_reader_url_request_job.cc @@ -110,10 +110,9 @@ AndroidStreamReaderURLRequestJob::~AndroidStreamReaderURLRequestJob() { namespace { -typedef base::Callback, - std::unique_ptr)> - OnInputStreamOpenedCallback; + std::unique_ptr)>; // static void OpenInputStreamOnWorkerThread( @@ -127,8 +126,8 @@ void OpenInputStreamOnWorkerThread( std::unique_ptr input_stream = delegate->OpenInputStream(env, url); job_thread_task_runner->PostTask( - FROM_HERE, base::Bind(callback, base::Passed(std::move(delegate)), - base::Passed(std::move(input_stream)))); + FROM_HERE, base::BindOnce(std::move(callback), std::move(delegate), + std::move(input_stream))); } } // namespace @@ -139,13 +138,13 @@ void AndroidStreamReaderURLRequestJob::Start() { DCHECK(delegate_obtainer_); delegate_obtainer_->ObtainDelegate( request(), - base::Bind(&AndroidStreamReaderURLRequestJob::DelegateObtained, - weak_factory_.GetWeakPtr())); + base::BindOnce(&AndroidStreamReaderURLRequestJob::DelegateObtained, + weak_factory_.GetWeakPtr())); } else { // Run DoStart asynchronously to avoid re-entering the delegate. base::ThreadTaskRunnerHandle::Get()->PostTask( - FROM_HERE, base::Bind(&AndroidStreamReaderURLRequestJob::DoStart, - weak_factory_.GetWeakPtr())); + FROM_HERE, base::BindOnce(&AndroidStreamReaderURLRequestJob::DoStart, + weak_factory_.GetWeakPtr())); } } @@ -188,10 +187,10 @@ void AndroidStreamReaderURLRequestJob::OnInputStreamOpened( base::PostTaskWithTraitsAndReplyWithResult( FROM_HERE, {base::MayBlock()}, - base::Bind(&InputStreamReaderWrapper::Seek, input_stream_reader_wrapper_, - byte_range_), - base::Bind(&AndroidStreamReaderURLRequestJob::OnReaderSeekCompleted, - weak_factory_.GetWeakPtr())); + base::BindOnce(&InputStreamReaderWrapper::Seek, + input_stream_reader_wrapper_, byte_range_), + base::BindOnce(&AndroidStreamReaderURLRequestJob::OnReaderSeekCompleted, + weak_factory_.GetWeakPtr())); } void AndroidStreamReaderURLRequestJob::OnReaderSeekCompleted(int result) { @@ -223,11 +222,11 @@ int AndroidStreamReaderURLRequestJob::ReadRawData(net::IOBuffer* dest, base::PostTaskWithTraitsAndReplyWithResult( FROM_HERE, {base::MayBlock()}, - base::Bind(&InputStreamReaderWrapper::ReadRawData, - input_stream_reader_wrapper_, base::RetainedRef(dest), - dest_size), - base::Bind(&AndroidStreamReaderURLRequestJob::OnReaderReadCompleted, - weak_factory_.GetWeakPtr())); + base::BindOnce(&InputStreamReaderWrapper::ReadRawData, + input_stream_reader_wrapper_, base::RetainedRef(dest), + dest_size), + base::BindOnce(&AndroidStreamReaderURLRequestJob::OnReaderReadCompleted, + weak_factory_.GetWeakPtr())); return net::ERR_IO_PENDING; } @@ -285,15 +284,15 @@ void AndroidStreamReaderURLRequestJob::DoStart() { // complex synchronization in the delegate. base::PostTaskWithTraits( FROM_HERE, {base::MayBlock()}, - base::Bind( + base::BindOnce( &OpenInputStreamOnWorkerThread, base::ThreadTaskRunnerHandle::Get(), // This is intentional - the job could be deleted while the callback // is executing on the background thread. // The delegate will be "returned" to the job once the InputStream // open attempt is completed. - base::Passed(&delegate_), request()->url(), - base::Bind(&AndroidStreamReaderURLRequestJob::OnInputStreamOpened, - weak_factory_.GetWeakPtr()))); + std::move(delegate_), request()->url(), + base::BindOnce(&AndroidStreamReaderURLRequestJob::OnInputStreamOpened, + weak_factory_.GetWeakPtr()))); } void AndroidStreamReaderURLRequestJob::HeadersComplete( diff --git a/android_webview/browser/net/android_stream_reader_url_request_job.h b/android_webview/browser/net/android_stream_reader_url_request_job.h index aabaf315aea289..a7e0a842f3e77a 100644 --- a/android_webview/browser/net/android_stream_reader_url_request_job.h +++ b/android_webview/browser/net/android_stream_reader_url_request_job.h @@ -75,9 +75,9 @@ class AndroidStreamReaderURLRequestJob : public net::URLRequestJob { public: virtual ~DelegateObtainer() {} - typedef base::Callback)> Callback; + using Callback = base::OnceCallback)>; virtual void ObtainDelegate(net::URLRequest* request, - const Callback& callback) = 0; + Callback callback) = 0; }; AndroidStreamReaderURLRequestJob(net::URLRequest* request, diff --git a/android_webview/browser/net/aw_cookie_store_wrapper.cc b/android_webview/browser/net/aw_cookie_store_wrapper.cc index 37a78cc23bee22..cc3f4f8e7300b6 100644 --- a/android_webview/browser/net/aw_cookie_store_wrapper.cc +++ b/android_webview/browser/net/aw_cookie_store_wrapper.cc @@ -193,7 +193,7 @@ void AwCookieStoreWrapper::FlushStore(base::OnceClosure callback) { void AwCookieStoreWrapper::SetForceKeepSessionState() { DCHECK(client_task_runner_->RunsTasksInCurrentSequence()); PostTaskToCookieStoreTaskRunner( - base::Bind(&SetForceKeepSessionStateOnCookieThread)); + base::BindOnce(&SetForceKeepSessionStateOnCookieThread)); } net::CookieChangeDispatcher& AwCookieStoreWrapper::GetChangeDispatcher() { diff --git a/android_webview/browser/net/aw_network_delegate.cc b/android_webview/browser/net/aw_network_delegate.cc index 1955b27e15d943..658b1424910306 100644 --- a/android_webview/browser/net/aw_network_delegate.cc +++ b/android_webview/browser/net/aw_network_delegate.cc @@ -79,9 +79,9 @@ int AwNetworkDelegate::OnHeadersReceived( original_response_headers); BrowserThread::PostTask( BrowserThread::UI, FROM_HERE, - base::Bind(&OnReceivedHttpErrorOnUiThread, - request_info->GetWebContentsGetterForRequest(), - AwWebResourceRequest(*request), response_headers)); + base::BindOnce(&OnReceivedHttpErrorOnUiThread, + request_info->GetWebContentsGetterForRequest(), + AwWebResourceRequest(*request), response_headers)); } return net::OK; } diff --git a/android_webview/browser/net/aw_request_interceptor.cc b/android_webview/browser/net/aw_request_interceptor.cc index bfccbbe3b27783..d94a51d1f4b5e7 100644 --- a/android_webview/browser/net/aw_request_interceptor.cc +++ b/android_webview/browser/net/aw_request_interceptor.cc @@ -86,26 +86,26 @@ class ShouldInterceptRequestAdaptor : io_thread_client_(std::move(io_thread_client)), weak_factory_(this) {} ~ShouldInterceptRequestAdaptor() override {} - void ObtainDelegate(net::URLRequest* request, - const Callback& callback) override { - callback_ = callback; + void ObtainDelegate(net::URLRequest* request, Callback callback) override { + callback_ = std::move(callback); io_thread_client_->ShouldInterceptRequestAsync( // The request is only used while preparing the call, not retained. request, - base::Bind(&ShouldInterceptRequestAdaptor::WebResourceResponseObtained, - // The lifetime of the DelegateObtainer is managed by - // AndroidStreamReaderURLRequestJob, it might get deleted. - weak_factory_.GetWeakPtr())); + base::BindOnce( + &ShouldInterceptRequestAdaptor::WebResourceResponseObtained, + // The lifetime of the DelegateObtainer is managed by + // AndroidStreamReaderURLRequestJob, it might get deleted. + weak_factory_.GetWeakPtr())); } private: void WebResourceResponseObtained( std::unique_ptr response) { if (response) { - callback_.Run( + std::move(callback_).Run( std::make_unique(std::move(response))); } else { - callback_.Run(nullptr); + std::move(callback_).Run(nullptr); } } diff --git a/android_webview/browser/net/aw_url_request_context_getter.cc b/android_webview/browser/net/aw_url_request_context_getter.cc index 875f154f1c1504..03b6884674b65c 100644 --- a/android_webview/browser/net/aw_url_request_context_getter.cc +++ b/android_webview/browser/net/aw_url_request_context_getter.cc @@ -214,13 +214,13 @@ AwURLRequestContextGetter::AwURLRequestContextGetter( auth_server_whitelist_.Init( prefs::kAuthServerWhitelist, user_pref_service, - base::Bind(&AwURLRequestContextGetter::UpdateServerWhitelist, - base::Unretained(this))); + base::BindRepeating(&AwURLRequestContextGetter::UpdateServerWhitelist, + base::Unretained(this))); auth_server_whitelist_.MoveToThread(io_thread_proxy); auth_android_negotiate_account_type_.Init( prefs::kAuthAndroidNegotiateAccountType, user_pref_service, - base::Bind( + base::BindRepeating( &AwURLRequestContextGetter::UpdateAndroidAuthNegotiateAccountType, base::Unretained(this))); auth_android_negotiate_account_type_.MoveToThread(io_thread_proxy); diff --git a/android_webview/browser/net/token_binding_manager.cc b/android_webview/browser/net/token_binding_manager.cc index 01b1e3c86eedb0..de0bcefec8e177 100644 --- a/android_webview/browser/net/token_binding_manager.cc +++ b/android_webview/browser/net/token_binding_manager.cc @@ -5,6 +5,7 @@ #include "android_webview/browser/net/token_binding_manager.h" #include "android_webview/browser/aw_browser_context.h" +#include "base/callback_helpers.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/storage_partition.h" #include "net/ssl/channel_id_service.h" @@ -26,12 +27,12 @@ void CompletionCallback(TokenBindingManager::KeyReadyCallback callback, int status) { BrowserThread::PostTask( BrowserThread::UI, FROM_HERE, - base::Bind(callback, status, base::Owned(key->release()))); + base::BindOnce(std::move(callback), status, base::Owned(key->release()))); } void DeletionCompleteCallback( TokenBindingManager::DeletionCompleteCallback callback) { - BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, callback); + BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, std::move(callback)); } void GetKeyImpl(const std::string& host, @@ -44,8 +45,11 @@ void GetKeyImpl(const std::string& host, new std::unique_ptr(); // The request will own the callback if the call to service returns // PENDING. The request releases the ownership before calling the callback. - net::CompletionCallback completion_callback = base::Bind( - &CompletionCallback, callback, base::Owned(request), base::Owned(key)); + // TODO(crbug.com/714018): Update base::Bind here to BindOnce after we update + // net::CompletionCallback to support OnceCallback. + net::CompletionCallback completion_callback = + base::Bind(&CompletionCallback, base::Passed(&callback), + base::Owned(request), base::Owned(key)); int status = service->GetOrCreateChannelID(host, key, completion_callback, request); if (status == net::ERR_IO_PENDING) { @@ -53,7 +57,7 @@ void GetKeyImpl(const std::string& host, return; } BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, - base::Bind(completion_callback, status)); + base::BindOnce(completion_callback, status)); } void DeleteKeyImpl(const std::string& host, @@ -63,12 +67,14 @@ void DeleteKeyImpl(const std::string& host, ChannelIDService* service = context_getter->GetURLRequestContext()->channel_id_service(); ChannelIDStore* store = service->GetChannelIDStore(); - base::Closure completion_callback = - base::Bind(&DeletionCompleteCallback, callback); + base::OnceClosure completion_callback = + base::BindOnce(&DeletionCompleteCallback, std::move(callback)); if (all) { - store->DeleteAll(completion_callback); + store->DeleteAll( + base::AdaptCallbackForRepeating(std::move(completion_callback))); } else { - store->DeleteChannelID(host, completion_callback); + store->DeleteChannelID( + host, base::AdaptCallbackForRepeating(std::move(completion_callback))); } } @@ -89,7 +95,7 @@ void TokenBindingManager::GetKey(const std::string& host, AwBrowserContext::GetDefault())->GetURLRequestContext(); BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - base::Bind(&GetKeyImpl, host, callback, context_getter)); + base::BindOnce(&GetKeyImpl, host, std::move(callback), context_getter)); } void TokenBindingManager::DeleteKey(const std::string& host, @@ -99,7 +105,8 @@ void TokenBindingManager::DeleteKey(const std::string& host, AwBrowserContext::GetDefault())->GetURLRequestContext(); BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - base::Bind(&DeleteKeyImpl, host, callback, context_getter, false)); + base::BindOnce(&DeleteKeyImpl, host, std::move(callback), context_getter, + false)); } void TokenBindingManager::DeleteAllKeys(DeletionCompleteCallback callback) { @@ -108,7 +115,8 @@ void TokenBindingManager::DeleteAllKeys(DeletionCompleteCallback callback) { AwBrowserContext::GetDefault())->GetURLRequestContext(); BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - base::Bind(&DeleteKeyImpl, "", callback, context_getter, true)); + base::BindOnce(&DeleteKeyImpl, "", std::move(callback), context_getter, + true)); } } // namespace android_webview diff --git a/android_webview/browser/net/token_binding_manager.h b/android_webview/browser/net/token_binding_manager.h index 5a2fd20ab1800a..3bc0158827be4c 100644 --- a/android_webview/browser/net/token_binding_manager.h +++ b/android_webview/browser/net/token_binding_manager.h @@ -37,8 +37,9 @@ class TokenBindingManager { // parameter is one of a network error code (see the underlying protocol // implementation for more), and the second parameter is the key. The // key is owned by the callback and be destroyed at the end of the call. - using KeyReadyCallback = base::Callback; - using DeletionCompleteCallback = base::Callback; + using KeyReadyCallback = + base::OnceCallback; + using DeletionCompleteCallback = base::OnceCallback; // Retrieve (or create if not exist) the key for the given host. The callback // is called asynchonously to indicate the status for the key creation and diff --git a/android_webview/browser/permission/media_access_permission_request_unittest.cc b/android_webview/browser/permission/media_access_permission_request_unittest.cc index 402ee349d77d76..a8cf2d24cb68f6 100644 --- a/android_webview/browser/permission/media_access_permission_request_unittest.cc +++ b/android_webview/browser/permission/media_access_permission_request_unittest.cc @@ -54,8 +54,8 @@ class MediaAccessPermissionRequestTest : public testing::Test { std::unique_ptr permission_request; permission_request.reset(new TestMediaAccessPermissionRequest( request, - base::Bind(&MediaAccessPermissionRequestTest::Callback, - base::Unretained(this)), + base::BindRepeating(&MediaAccessPermissionRequestTest::Callback, + base::Unretained(this)), audio_devices, video_devices)); return permission_request; } diff --git a/android_webview/browser/permission/permission_request_handler_unittest.cc b/android_webview/browser/permission/permission_request_handler_unittest.cc index 9f872323497857..c97acb149e0308 100644 --- a/android_webview/browser/permission/permission_request_handler_unittest.cc +++ b/android_webview/browser/permission/permission_request_handler_unittest.cc @@ -19,8 +19,10 @@ class TestAwPermissionRequestDelegate : public AwPermissionRequestDelegate { public: TestAwPermissionRequestDelegate(const GURL& origin, int64_t resources, - base::Callback callback) - : origin_(origin), resources_(resources), callback_(callback) {} + base::RepeatingCallback callback) + : origin_(origin), + resources_(resources), + callback_(std::move(callback)) {} // Get the origin which initiated the permission request. const GURL& GetOrigin() override { return origin_; } @@ -34,7 +36,7 @@ class TestAwPermissionRequestDelegate : public AwPermissionRequestDelegate { private: GURL origin_; int64_t resources_; - base::Callback callback_; + base::RepeatingCallback callback_; }; class TestPermissionRequestHandlerClient @@ -121,8 +123,8 @@ class PermissionRequestHandlerTest : public testing::Test { AwPermissionRequest::VideoCapture | AwPermissionRequest::AudioCapture; delegate_.reset(new TestAwPermissionRequestDelegate( origin_, resources_, - base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, - base::Unretained(this)))); + base::BindRepeating(&PermissionRequestHandlerTest::NotifyRequestResult, + base::Unretained(this)))); } const GURL& origin() { return origin_; } @@ -195,8 +197,8 @@ TEST_F(PermissionRequestHandlerTest, TestMultiplePermissionRequest) { std::unique_ptr delegate1; delegate1.reset(new TestAwPermissionRequestDelegate( origin1, resources1, - base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, - base::Unretained(this)))); + base::BindRepeating(&PermissionRequestHandlerTest::NotifyRequestResult, + base::Unretained(this)))); // Send 1st request handler()->SendRequest(delegate()); @@ -223,8 +225,8 @@ TEST_F(PermissionRequestHandlerTest, TestMultiplePermissionRequest) { // Send 3rd request which has same origin and resources as first one. delegate1.reset(new TestAwPermissionRequestDelegate( origin(), resources(), - base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, - base::Unretained(this)))); + base::BindRepeating(&PermissionRequestHandlerTest::NotifyRequestResult, + base::Unretained(this)))); handler()->SendRequest(std::move(delegate1)); // Verify Handler store the request correctly. ASSERT_EQ(3u, handler()->requests().size()); @@ -263,8 +265,8 @@ TEST_F(PermissionRequestHandlerTest, TestPreauthorizePermission) { std::unique_ptr delegate; delegate.reset(new TestAwPermissionRequestDelegate( origin(), AwPermissionRequest::AudioCapture, - base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, - base::Unretained(this)))); + base::BindRepeating(&PermissionRequestHandlerTest::NotifyRequestResult, + base::Unretained(this)))); client()->Reset(); handler()->SendRequest(std::move(delegate)); EXPECT_TRUE(allowed()); @@ -280,8 +282,8 @@ TEST_F(PermissionRequestHandlerTest, TestOriginNotPreauthorized) { int64_t requested_resources = AwPermissionRequest::AudioCapture; delegate.reset(new TestAwPermissionRequestDelegate( origin, requested_resources, - base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, - base::Unretained(this)))); + base::BindRepeating(&PermissionRequestHandlerTest::NotifyRequestResult, + base::Unretained(this)))); handler()->SendRequest(std::move(delegate)); EXPECT_EQ(origin, handler()->requests()[0]->GetOrigin()); EXPECT_EQ(requested_resources, handler()->requests()[0]->GetResources()); @@ -298,8 +300,8 @@ TEST_F(PermissionRequestHandlerTest, TestResourcesNotPreauthorized) { AwPermissionRequest::AudioCapture | AwPermissionRequest::Geolocation; delegate.reset(new TestAwPermissionRequestDelegate( origin(), requested_resources, - base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, - base::Unretained(this)))); + base::BindRepeating(&PermissionRequestHandlerTest::NotifyRequestResult, + base::Unretained(this)))); handler()->SendRequest(std::move(delegate)); EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin()); @@ -317,8 +319,8 @@ TEST_F(PermissionRequestHandlerTest, TestPreauthorizeMultiplePermission) { std::unique_ptr delegate; delegate.reset(new TestAwPermissionRequestDelegate( origin_hostname, AwPermissionRequest::Geolocation, - base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, - base::Unretained(this)))); + base::BindRepeating(&PermissionRequestHandlerTest::NotifyRequestResult, + base::Unretained(this)))); handler()->SendRequest(std::move(delegate)); EXPECT_TRUE(allowed()); EXPECT_EQ(NULL, client()->request()); diff --git a/android_webview/browser/permission/simple_permission_request.cc b/android_webview/browser/permission/simple_permission_request.cc index 1f7683045d87bb..09ca8b2d241fd5 100644 --- a/android_webview/browser/permission/simple_permission_request.cc +++ b/android_webview/browser/permission/simple_permission_request.cc @@ -12,13 +12,13 @@ namespace android_webview { SimplePermissionRequest::SimplePermissionRequest( const GURL& origin, int64_t resources, - const base::Callback& callback) - : origin_(origin), resources_(resources), callback_(callback) {} + base::OnceCallback callback) + : origin_(origin), resources_(resources), callback_(std::move(callback)) {} SimplePermissionRequest::~SimplePermissionRequest() {} void SimplePermissionRequest::NotifyRequestResult(bool allowed) { - callback_.Run(allowed); + std::move(callback_).Run(allowed); } const GURL& SimplePermissionRequest::GetOrigin() { diff --git a/android_webview/browser/permission/simple_permission_request.h b/android_webview/browser/permission/simple_permission_request.h index b720b20a524c44..0981d981f62de2 100644 --- a/android_webview/browser/permission/simple_permission_request.h +++ b/android_webview/browser/permission/simple_permission_request.h @@ -19,7 +19,7 @@ class SimplePermissionRequest : public AwPermissionRequestDelegate { public: SimplePermissionRequest(const GURL& origin, int64_t resources, - const base::Callback& callback); + base::OnceCallback callback); ~SimplePermissionRequest() override; // AwPermissionRequestDelegate implementation. @@ -30,7 +30,7 @@ class SimplePermissionRequest : public AwPermissionRequestDelegate { private: const GURL origin_; int64_t resources_; - const base::Callback callback_; + base::OnceCallback callback_; DISALLOW_COPY_AND_ASSIGN(SimplePermissionRequest); }; diff --git a/android_webview/browser/render_thread_manager.cc b/android_webview/browser/render_thread_manager.cc index 1d139ea28215be..5ccb82c2c98412 100644 --- a/android_webview/browser/render_thread_manager.cc +++ b/android_webview/browser/render_thread_manager.cc @@ -122,7 +122,7 @@ void RenderThreadManager::ClientRequestInvokeGL(bool for_idle) { } else { if (!g_request_invoke_gl_tracker.Get().ShouldRequestOnNonUiThread(this)) return; - base::Closure callback; + base::OnceClosure callback; { base::AutoLock lock(lock_); callback = request_draw_gl_closure_; @@ -131,7 +131,7 @@ void RenderThreadManager::ClientRequestInvokeGL(bool for_idle) { // after the next frame so that the idle work is taken care off by // the next frame instead. ui_loop_->PostDelayedTask( - FROM_HERE, callback, + FROM_HERE, std::move(callback), for_idle ? base::TimeDelta::FromMilliseconds(17) : base::TimeDelta()); } } @@ -143,7 +143,7 @@ void RenderThreadManager::DidInvokeGLProcess() { void RenderThreadManager::ResetRequestInvokeGLCallback() { DCHECK(ui_loop_->BelongsToCurrentThread()); base::AutoLock lock(lock_); - request_draw_gl_cancelable_closure_.Reset(base::Bind( + request_draw_gl_cancelable_closure_.Reset(base::BindRepeating( &RenderThreadManager::ClientRequestInvokeGLOnUI, base::Unretained(this))); request_draw_gl_closure_ = request_draw_gl_cancelable_closure_.callback(); } @@ -222,8 +222,8 @@ void RenderThreadManager::PostExternalDrawConstraintsToChildCompositorOnRT( // No need to hold the lock_ during the post task. ui_loop_->PostTask( FROM_HERE, - base::Bind(&RenderThreadManager::UpdateParentDrawConstraintsOnUI, - ui_thread_weak_ptr_)); + base::BindOnce(&RenderThreadManager::UpdateParentDrawConstraintsOnUI, + ui_thread_weak_ptr_)); } ParentCompositorDrawConstraints diff --git a/android_webview/browser/render_thread_manager.h b/android_webview/browser/render_thread_manager.h index 5fc9f0eb412d81..5e397649f915d7 100644 --- a/android_webview/browser/render_thread_manager.h +++ b/android_webview/browser/render_thread_manager.h @@ -117,7 +117,7 @@ class RenderThreadManager : public CompositorFrameConsumer { bool inside_hardware_release_; ParentCompositorDrawConstraints parent_draw_constraints_; ReturnedResourcesMap returned_resources_map_; - base::Closure request_draw_gl_closure_; + base::RepeatingClosure request_draw_gl_closure_; base::WeakPtrFactory weak_factory_on_ui_thread_; diff --git a/android_webview/browser/renderer_host/aw_render_view_host_ext.cc b/android_webview/browser/renderer_host/aw_render_view_host_ext.cc index 475779484deceb..a5d925d7c79b4e 100644 --- a/android_webview/browser/renderer_host/aw_render_view_host_ext.cc +++ b/android_webview/browser/renderer_host/aw_render_view_host_ext.cc @@ -37,7 +37,7 @@ AwRenderViewHostExt::~AwRenderViewHostExt() { void AwRenderViewHostExt::DocumentHasImages(DocumentHasImagesResult result) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); if (!web_contents()->GetRenderViewHost()) { - result.Run(false); + std::move(result).Run(false); return; } static uint32_t next_id = 1; @@ -46,11 +46,11 @@ void AwRenderViewHostExt::DocumentHasImages(DocumentHasImagesResult result) { // because it only makes sense on the main frame. if (web_contents()->GetMainFrame()->Send(new AwViewMsg_DocumentHasImages( web_contents()->GetMainFrame()->GetRoutingID(), this_id))) { - image_requests_callback_map_[this_id] = result; + image_requests_callback_map_[this_id] = std::move(result); } else { // Still have to respond to the API call WebView#docuemntHasImages. // Otherwise the listener of the response may be starved. - result.Run(false); + std::move(result).Run(false); } } @@ -136,8 +136,8 @@ void AwRenderViewHostExt::RenderViewHostChanged( } void AwRenderViewHostExt::ClearImageRequests() { - for (const auto& pair : image_requests_callback_map_) { - pair.second.Run(false); + for (auto& pair : image_requests_callback_map_) { + std::move(pair.second).Run(false); } image_requests_callback_map_.clear(); @@ -145,9 +145,9 @@ void AwRenderViewHostExt::ClearImageRequests() { void AwRenderViewHostExt::RenderFrameCreated( content::RenderFrameHost* frame_host) { - registry_.AddInterface( - base::Bind(&web_restrictions::WebRestrictionsMojoImplementation::Create, - AwBrowserContext::GetDefault()->GetWebRestrictionProvider())); + registry_.AddInterface(base::BindRepeating( + &web_restrictions::WebRestrictionsMojoImplementation::Create, + AwBrowserContext::GetDefault()->GetWebRestrictionProvider())); if (!frame_host->GetParent()) { frame_host->Send(new AwViewMsg_SetBackgroundColor( frame_host->GetRoutingID(), background_color_)); @@ -212,7 +212,7 @@ void AwRenderViewHostExt::OnDocumentHasImagesResponse( if (pending_req == image_requests_callback_map_.end()) { DLOG(WARNING) << "unexpected DocumentHasImages Response: " << msg_id; } else { - pending_req->second.Run(has_images); + std::move(pending_req->second).Run(has_images); image_requests_callback_map_.erase(pending_req); } } diff --git a/android_webview/browser/renderer_host/aw_render_view_host_ext.h b/android_webview/browser/renderer_host/aw_render_view_host_ext.h index 911cd666721589..a78962d5b5a771 100644 --- a/android_webview/browser/renderer_host/aw_render_view_host_ext.h +++ b/android_webview/browser/renderer_host/aw_render_view_host_ext.h @@ -42,7 +42,7 @@ class AwRenderViewHostExt : public content::WebContentsObserver { ~AwRenderViewHostExt() override; // |result| will be invoked with the outcome of the request. - typedef base::Callback DocumentHasImagesResult; + using DocumentHasImagesResult = base::OnceCallback; void DocumentHasImages(DocumentHasImagesResult result); // Clear all WebCore memory cache (not only for this view). diff --git a/android_webview/browser/renderer_host/aw_resource_dispatcher_host_delegate.cc b/android_webview/browser/renderer_host/aw_resource_dispatcher_host_delegate.cc index 74c56c9d52435c..0f27fb073288bc 100644 --- a/android_webview/browser/renderer_host/aw_resource_dispatcher_host_delegate.cc +++ b/android_webview/browser/renderer_host/aw_resource_dispatcher_host_delegate.cc @@ -357,10 +357,10 @@ void AwResourceDispatcherHostDelegate::RequestComplete( } BrowserThread::PostTask( BrowserThread::UI, FROM_HERE, - base::Bind(&OnReceivedErrorOnUiThread, - request_info->GetWebContentsGetterForRequest(), - AwWebResourceRequest(*request), request->status().error(), - safebrowsing_hit)); + base::BindOnce(&OnReceivedErrorOnUiThread, + request_info->GetWebContentsGetterForRequest(), + AwWebResourceRequest(*request), + request->status().error(), safebrowsing_hit)); } } @@ -399,9 +399,10 @@ void AwResourceDispatcherHostDelegate::DownloadStarting( BrowserThread::PostTask( BrowserThread::UI, FROM_HERE, - base::Bind(&DownloadStartingOnUIThread, - request_info->GetWebContentsGetterForRequest(), url, - user_agent, content_disposition, mime_type, content_length)); + base::BindOnce(&DownloadStartingOnUIThread, + request_info->GetWebContentsGetterForRequest(), url, + user_agent, content_disposition, mime_type, + content_length)); } void AwResourceDispatcherHostDelegate::OnResponseStarted( @@ -422,9 +423,10 @@ void AwResourceDispatcherHostDelegate::OnResponseStarted( if (ParserHeaderInResponse(request, ALLOW_ANY_REALM, &header_data)) { BrowserThread::PostTask( BrowserThread::UI, FROM_HERE, - base::Bind(&NewLoginRequestOnUIThread, - request_info->GetWebContentsGetterForRequest(), - header_data.realm, header_data.account, header_data.args)); + base::BindOnce(&NewLoginRequestOnUIThread, + request_info->GetWebContentsGetterForRequest(), + header_data.realm, header_data.account, + header_data.args)); } } } @@ -444,8 +446,9 @@ void AwResourceDispatcherHostDelegate::RemovePendingThrottleOnIoThread( void AwResourceDispatcherHostDelegate::OnIoThreadClientReady( int new_render_process_id, int new_render_frame_id) { - BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, - base::Bind( + BrowserThread::PostTask( + BrowserThread::IO, FROM_HERE, + base::BindOnce( &AwResourceDispatcherHostDelegate::OnIoThreadClientReadyInternal, base::Unretained( g_webview_resource_dispatcher_host_delegate.Pointer()), @@ -457,8 +460,9 @@ void AwResourceDispatcherHostDelegate::AddPendingThrottle( int render_process_id, int render_frame_id, IoThreadClientThrottle* pending_throttle) { - BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, - base::Bind( + BrowserThread::PostTask( + BrowserThread::IO, FROM_HERE, + base::BindOnce( &AwResourceDispatcherHostDelegate::AddPendingThrottleOnIoThread, base::Unretained( g_webview_resource_dispatcher_host_delegate.Pointer()), diff --git a/android_webview/browser/test/fake_window.cc b/android_webview/browser/test/fake_window.cc index 411ee217352a12..943bbb23026ca8 100644 --- a/android_webview/browser/test/fake_window.cc +++ b/android_webview/browser/test/fake_window.cc @@ -65,8 +65,8 @@ FakeWindow::~FakeWindow() { base::WaitableEvent::ResetPolicy::MANUAL, base::WaitableEvent::InitialState::NOT_SIGNALED); render_thread_loop_->PostTask( - FROM_HERE, base::Bind(&FakeWindow::DestroyOnRT, base::Unretained(this), - &completion)); + FROM_HERE, base::BindOnce(&FakeWindow::DestroyOnRT, + base::Unretained(this), &completion)); completion.Wait(); } @@ -86,8 +86,8 @@ void FakeWindow::RequestInvokeGL(FakeFunctor* functor, base::WaitableEvent::InitialState::NOT_SIGNALED); render_thread_loop_->PostTask( FROM_HERE, - base::Bind(&FakeWindow::InvokeFunctorOnRT, base::Unretained(this), - functor, wait_for_completion ? &completion : nullptr)); + base::BindOnce(&FakeWindow::InvokeFunctorOnRT, base::Unretained(this), + functor, wait_for_completion ? &completion : nullptr)); if (wait_for_completion) completion.Wait(); } @@ -103,9 +103,9 @@ void FakeWindow::InvokeFunctorOnRT(FakeFunctor* functor, void FakeWindow::RequestDrawGL(FakeFunctor* functor) { CheckCurrentlyOnUIThread(); - render_thread_loop_->PostTask(FROM_HERE, - base::Bind(&FakeWindow::ProcessDrawOnRT, - base::Unretained(this), functor)); + render_thread_loop_->PostTask( + FROM_HERE, base::BindOnce(&FakeWindow::ProcessDrawOnRT, + base::Unretained(this), functor)); } void FakeWindow::PostInvalidate() { @@ -114,8 +114,8 @@ void FakeWindow::PostInvalidate() { return; on_draw_hardware_pending_ = true; base::ThreadTaskRunnerHandle::Get()->PostTask( - FROM_HERE, - base::Bind(&FakeWindow::OnDrawHardware, weak_ptr_factory_.GetWeakPtr())); + FROM_HERE, base::BindOnce(&FakeWindow::OnDrawHardware, + weak_ptr_factory_.GetWeakPtr())); } void FakeWindow::OnDrawHardware() { @@ -135,8 +135,9 @@ void FakeWindow::OnDrawHardware() { base::WaitableEvent::ResetPolicy::MANUAL, base::WaitableEvent::InitialState::NOT_SIGNALED); render_thread_loop_->PostTask( - FROM_HERE, base::Bind(&FakeWindow::DrawFunctorOnRT, - base::Unretained(this), functor, &completion)); + FROM_HERE, + base::BindOnce(&FakeWindow::DrawFunctorOnRT, base::Unretained(this), + functor, &completion)); completion.Wait(); } } @@ -179,8 +180,8 @@ void FakeWindow::CreateRenderThreadIfNeeded() { base::WaitableEvent::ResetPolicy::MANUAL, base::WaitableEvent::InitialState::NOT_SIGNALED); render_thread_loop_->PostTask( - FROM_HERE, base::Bind(&FakeWindow::InitializeOnRT, base::Unretained(this), - &completion)); + FROM_HERE, base::BindOnce(&FakeWindow::InitializeOnRT, + base::Unretained(this), &completion)); completion.Wait(); } @@ -220,8 +221,9 @@ void FakeFunctor::Init( std::unique_ptr render_thread_manager) { window_ = window; render_thread_manager_ = std::move(render_thread_manager); - callback_ = base::Bind(&RenderThreadManager::DrawGL, - base::Unretained(render_thread_manager_.get())); + callback_ = + base::BindRepeating(&RenderThreadManager::DrawGL, + base::Unretained(render_thread_manager_.get())); } void FakeFunctor::Sync(const gfx::Rect& location, diff --git a/android_webview/browser/test/fake_window.h b/android_webview/browser/test/fake_window.h index 8f53975e0d3126..0f1eea8ead28f8 100644 --- a/android_webview/browser/test/fake_window.h +++ b/android_webview/browser/test/fake_window.h @@ -98,7 +98,7 @@ class FakeWindow { class FakeFunctor : public RenderThreadManagerClient { public: - using DrawGLCallback = base::Callback; + using DrawGLCallback = base::RepeatingCallback; FakeFunctor(); ~FakeFunctor() override; diff --git a/android_webview/browser/test/rendering_test.cc b/android_webview/browser/test/rendering_test.cc index 9561a295289278..23eeb78a76f6b6 100644 --- a/android_webview/browser/test/rendering_test.cc +++ b/android_webview/browser/test/rendering_test.cc @@ -96,8 +96,8 @@ void RenderingTest::InitializeCompositor() { void RenderingTest::RunTest() { SetUpTestHarness(); - ui_task_runner_->PostTask( - FROM_HERE, base::Bind(&RenderingTest::StartTest, base::Unretained(this))); + ui_task_runner_->PostTask(FROM_HERE, base::BindOnce(&RenderingTest::StartTest, + base::Unretained(this))); run_loop_.Run(); } diff --git a/android_webview/browser/token_binding_manager_bridge.cc b/android_webview/browser/token_binding_manager_bridge.cc index 6fa49ebcf55d0e..73d93f63a6b8a9 100644 --- a/android_webview/browser/token_binding_manager_bridge.cc +++ b/android_webview/browser/token_binding_manager_bridge.cc @@ -80,9 +80,9 @@ static void JNI_AwTokenBindingManager_GetTokenBindingKey( j_callback.Reset(env, callback); TokenBindingManager::KeyReadyCallback key_callback = - base::Bind(&OnKeyReady, j_callback); + base::BindOnce(&OnKeyReady, j_callback); TokenBindingManager::GetInstance()->GetKey(ConvertJavaStringToUTF8(env, host), - key_callback); + std::move(key_callback)); } static void JNI_AwTokenBindingManager_DeleteTokenBindingKey( @@ -96,9 +96,9 @@ static void JNI_AwTokenBindingManager_DeleteTokenBindingKey( ScopedJavaGlobalRef j_callback; j_callback.Reset(env, callback); TokenBindingManager::DeletionCompleteCallback complete_callback = - base::Bind(&OnDeletionComplete, j_callback); + base::BindOnce(&OnDeletionComplete, j_callback); TokenBindingManager::GetInstance()->DeleteKey( - ConvertJavaStringToUTF8(env, host), complete_callback); + ConvertJavaStringToUTF8(env, host), std::move(complete_callback)); } static void JNI_AwTokenBindingManager_DeleteAllTokenBindingKeys( @@ -111,8 +111,9 @@ static void JNI_AwTokenBindingManager_DeleteAllTokenBindingKeys( ScopedJavaGlobalRef j_callback; j_callback.Reset(env, callback); TokenBindingManager::DeletionCompleteCallback complete_callback = - base::Bind(&OnDeletionComplete, j_callback); - TokenBindingManager::GetInstance()->DeleteAllKeys(complete_callback); + base::BindOnce(&OnDeletionComplete, j_callback); + TokenBindingManager::GetInstance()->DeleteAllKeys( + std::move(complete_callback)); } } // namespace android_webview diff --git a/android_webview/browser/tracing/aw_trace_event_args_whitelist.cc b/android_webview/browser/tracing/aw_trace_event_args_whitelist.cc index 4436ce60102337..64dfe5d209b3eb 100644 --- a/android_webview/browser/tracing/aw_trace_event_args_whitelist.cc +++ b/android_webview/browser/tracing/aw_trace_event_args_whitelist.cc @@ -60,8 +60,8 @@ bool IsTraceEventArgsWhitelisted( whitelist_entry.category_name) && base::MatchPattern(event_name, whitelist_entry.event_name)) { if (whitelist_entry.arg_name_filter) { - *arg_name_filter = base::Bind(&IsTraceArgumentNameWhitelisted, - whitelist_entry.arg_name_filter); + *arg_name_filter = base::BindRepeating( + &IsTraceArgumentNameWhitelisted, whitelist_entry.arg_name_filter); } return true; } diff --git a/android_webview/browser/tracing/aw_tracing_controller.cc b/android_webview/browser/tracing/aw_tracing_controller.cc index 74aa5ff703a09c..d045abb83e34cb 100644 --- a/android_webview/browser/tracing/aw_tracing_controller.cc +++ b/android_webview/browser/tracing/aw_tracing_controller.cc @@ -30,34 +30,35 @@ base::android::ScopedJavaLocalRef StringToJavaBytes( class AwTraceDataEndpoint : public content::TracingController::TraceDataEndpoint { public: - typedef base::Callback)> - ReceivedChunkCallback; - typedef base::Callback)> - CompletedCallback; + using ReceivedChunkCallback = + base::RepeatingCallback)>; + using CompletedCallback = + base::OnceCallback)>; static scoped_refptr Create( ReceivedChunkCallback received_chunk_callback, CompletedCallback completed_callback) { - return new AwTraceDataEndpoint(received_chunk_callback, completed_callback); + return new AwTraceDataEndpoint(std::move(received_chunk_callback), + std::move(completed_callback)); } void ReceiveTraceFinalContents( std::unique_ptr metadata) override { content::BrowserThread::PostTask( content::BrowserThread::UI, FROM_HERE, - base::Bind(completed_callback_, base::Passed(std::move(metadata)))); + base::BindOnce(std::move(completed_callback_), std::move(metadata))); } void ReceiveTraceChunk(std::unique_ptr chunk) override { content::BrowserThread::PostTask( content::BrowserThread::UI, FROM_HERE, - base::Bind(received_chunk_callback_, base::Passed(std::move(chunk)))); + base::BindOnce(received_chunk_callback_, std::move(chunk))); } explicit AwTraceDataEndpoint(ReceivedChunkCallback received_chunk_callback, CompletedCallback completed_callback) - : received_chunk_callback_(received_chunk_callback), - completed_callback_(completed_callback) {} + : received_chunk_callback_(std::move(received_chunk_callback)), + completed_callback_(std::move(completed_callback)) {} private: ~AwTraceDataEndpoint() override {} @@ -101,10 +102,10 @@ bool AwTracingController::StopAndFlush(JNIEnv* env, const JavaParamRef& obj) { return content::TracingController::GetInstance()->StopTracing( AwTraceDataEndpoint::Create( - base::Bind(&AwTracingController::OnTraceDataReceived, - weak_factory_.GetWeakPtr()), - base::Bind(&AwTracingController::OnTraceDataComplete, - weak_factory_.GetWeakPtr()))); + base::BindRepeating(&AwTracingController::OnTraceDataReceived, + weak_factory_.GetWeakPtr()), + base::BindOnce(&AwTracingController::OnTraceDataComplete, + weak_factory_.GetWeakPtr()))); } void AwTracingController::OnTraceDataComplete( diff --git a/android_webview/lib/aw_main_delegate.cc b/android_webview/lib/aw_main_delegate.cc index 7986de82ea9bd3..c8c4a95e57768e 100644 --- a/android_webview/lib/aw_main_delegate.cc +++ b/android_webview/lib/aw_main_delegate.cc @@ -187,7 +187,7 @@ bool AwMainDelegate::BasicStartupComplete(int* exit_code) { // Used only if the argument filter is enabled in tracing config, // as is the case by default in aw_tracing_controller.cc base::trace_event::TraceLog::GetInstance()->SetArgumentFilterPredicate( - base::Bind(&IsTraceEventArgsWhitelisted)); + base::BindRepeating(&IsTraceEventArgsWhitelisted)); return false; } @@ -294,7 +294,7 @@ gpu::SyncPointManager* GetSyncPointManager() { content::ContentGpuClient* AwMainDelegate::CreateContentGpuClient() { content_gpu_client_.reset( - new AwContentGpuClient(base::Bind(&GetSyncPointManager))); + new AwContentGpuClient(base::BindRepeating(&GetSyncPointManager))); return content_gpu_client_.get(); }