Commit f4723a7e authored by Will Cassella's avatar Will Cassella Committed by Commit Bot

Convert from base::Bind and base::Callback to Once/Repeating in media

This CL converts base::Callback (and corresponding calls to base::Bind)
to either base::OnceCallback or base::RepeatingCallback in
chrome/browser/media. In general a base::OnceCallback is preferred since
that's a stronger API guarantee, so that's been done where safe.

Bug: 1007635
Change-Id: Ie3113c61db1ae43ce2e31c262f023d714f42dfc0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2321003
Commit-Queue: Will Cassella <cassew@google.com>
Reviewed-by: default avatarFrank Liberato <liberato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#792380}
parent 8f75822d
...@@ -108,8 +108,8 @@ void ComputeStorageId(const std::vector<uint8_t>& profile_salt, ...@@ -108,8 +108,8 @@ void ComputeStorageId(const std::vector<uint8_t>& profile_salt,
mojo::WrapCallbackWithDefaultInvokeIfNotRun(std::move(callback), mojo::WrapCallbackWithDefaultInvokeIfNotRun(std::move(callback),
std::vector<uint8_t>()); std::vector<uint8_t>());
chromeos::SystemSaltGetter::Get()->GetSystemSalt( chromeos::SystemSaltGetter::Get()->GetSystemSalt(
base::Bind(&ComputeAndReturnStorageId, profile_salt, origin, base::BindOnce(&ComputeAndReturnStorageId, profile_salt, origin,
base::Passed(&scoped_callback))); std::move(scoped_callback));
#else #else
#error Storage ID enabled but not implemented for this platform. #error Storage ID enabled but not implemented for this platform.
......
...@@ -69,11 +69,11 @@ class WasRecentlyAudibleWatcher { ...@@ -69,11 +69,11 @@ class WasRecentlyAudibleWatcher {
// Waits until WasRecentlyAudible is true. // Waits until WasRecentlyAudible is true.
void WaitForWasRecentlyAudible() { void WaitForWasRecentlyAudible() {
if (!audible_helper_->WasRecentlyAudible()) { if (!audible_helper_->WasRecentlyAudible()) {
timer_.Start( timer_.Start(FROM_HERE, base::TimeDelta::FromMicroseconds(100),
FROM_HERE, base::TimeDelta::FromMicroseconds(100), base::BindRepeating(
base::Bind(&WasRecentlyAudibleWatcher::TestWasRecentlyAudible, &WasRecentlyAudibleWatcher::TestWasRecentlyAudible,
base::Unretained(this))); base::Unretained(this)));
run_loop_.reset(new base::RunLoop()); run_loop_ = std::make_unique<base::RunLoop>();
run_loop_->Run(); run_loop_->Run();
} }
} }
......
...@@ -142,8 +142,8 @@ void MediaEngagementService::ClearDataBetweenTime( ...@@ -142,8 +142,8 @@ void MediaEngagementService::ClearDataBetweenTime(
->ClearSettingsForOneTypeWithPredicate( ->ClearSettingsForOneTypeWithPredicate(
ContentSettingsType::MEDIA_ENGAGEMENT, base::Time(), ContentSettingsType::MEDIA_ENGAGEMENT, base::Time(),
base::Time::Max(), base::Time::Max(),
base::Bind(&MediaEngagementTimeFilterAdapter, this, delete_begin, base::BindRepeating(&MediaEngagementTimeFilterAdapter, this,
delete_end)); delete_begin, delete_end));
} }
void MediaEngagementService::Shutdown() { void MediaEngagementService::Shutdown() {
......
...@@ -42,9 +42,9 @@ void OutputProtectionImpl::QueryStatus(QueryStatusCallback callback) { ...@@ -42,9 +42,9 @@ void OutputProtectionImpl::QueryStatus(QueryStatusCallback callback) {
DVLOG(2) << __func__; DVLOG(2) << __func__;
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
GetProxy()->QueryStatus(base::Bind(&OutputProtectionImpl::OnQueryStatusResult, GetProxy()->QueryStatus(
weak_factory_.GetWeakPtr(), base::BindOnce(&OutputProtectionImpl::OnQueryStatusResult,
base::Passed(&callback))); weak_factory_.GetWeakPtr(), base::Passed(&callback)));
} }
void OutputProtectionImpl::EnableProtection(uint32_t desired_protection_mask, void OutputProtectionImpl::EnableProtection(uint32_t desired_protection_mask,
...@@ -54,8 +54,8 @@ void OutputProtectionImpl::EnableProtection(uint32_t desired_protection_mask, ...@@ -54,8 +54,8 @@ void OutputProtectionImpl::EnableProtection(uint32_t desired_protection_mask,
GetProxy()->EnableProtection( GetProxy()->EnableProtection(
desired_protection_mask, desired_protection_mask,
base::Bind(&OutputProtectionImpl::OnEnableProtectionResult, base::BindOnce(&OutputProtectionImpl::OnEnableProtectionResult,
weak_factory_.GetWeakPtr(), base::Passed(&callback))); weak_factory_.GetWeakPtr(), base::Passed(&callback)));
} }
void OutputProtectionImpl::OnQueryStatusResult(QueryStatusCallback callback, void OutputProtectionImpl::OnQueryStatusResult(QueryStatusCallback callback,
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
#include "chrome/browser/media/output_protection_proxy.h" #include "chrome/browser/media/output_protection_proxy.h"
#include <utility>
#include "base/bind.h" #include "base/bind.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "chrome/browser/media/webrtc/media_capture_devices_dispatcher.h" #include "chrome/browser/media/webrtc/media_capture_devices_dispatcher.h"
...@@ -38,35 +40,36 @@ OutputProtectionProxy::~OutputProtectionProxy() { ...@@ -38,35 +40,36 @@ OutputProtectionProxy::~OutputProtectionProxy() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
} }
void OutputProtectionProxy::QueryStatus(const QueryStatusCallback& callback) { void OutputProtectionProxy::QueryStatus(QueryStatusCallback callback) {
DVLOG(1) << __func__; DVLOG(1) << __func__;
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
output_protection_delegate_.QueryStatus( output_protection_delegate_.QueryStatus(
base::BindOnce(&OutputProtectionProxy::ProcessQueryStatusResult, base::BindOnce(&OutputProtectionProxy::ProcessQueryStatusResult,
weak_ptr_factory_.GetWeakPtr(), callback)); weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
#else // defined(OS_CHROMEOS) #else // defined(OS_CHROMEOS)
ProcessQueryStatusResult(callback, true, 0, 0); ProcessQueryStatusResult(std::move(callback), true, 0, 0);
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
} }
void OutputProtectionProxy::EnableProtection( void OutputProtectionProxy::EnableProtection(
uint32_t desired_method_mask, uint32_t desired_method_mask,
const EnableProtectionCallback& callback) { EnableProtectionCallback callback) {
DVLOG(1) << __func__; DVLOG(1) << __func__;
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
output_protection_delegate_.SetProtection(desired_method_mask, callback); output_protection_delegate_.SetProtection(desired_method_mask,
std::move(callback));
#else // defined(OS_CHROMEOS) #else // defined(OS_CHROMEOS)
NOTIMPLEMENTED(); NOTIMPLEMENTED();
callback.Run(false); std::move(callback).Run(false);
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
} }
void OutputProtectionProxy::ProcessQueryStatusResult( void OutputProtectionProxy::ProcessQueryStatusResult(
const QueryStatusCallback& callback, QueryStatusCallback callback,
bool success, bool success,
uint32_t link_mask, uint32_t link_mask,
uint32_t protection_mask) { uint32_t protection_mask) {
...@@ -76,7 +79,7 @@ void OutputProtectionProxy::ProcessQueryStatusResult( ...@@ -76,7 +79,7 @@ void OutputProtectionProxy::ProcessQueryStatusResult(
// TODO(xjz): Investigate whether this check should be removed. // TODO(xjz): Investigate whether this check should be removed.
if (!GetRenderFrameView(render_process_id_, render_frame_id_)) { if (!GetRenderFrameView(render_process_id_, render_frame_id_)) {
LOG(WARNING) << "RenderFrameHost is not alive."; LOG(WARNING) << "RenderFrameHost is not alive.";
callback.Run(false, 0, 0); std::move(callback).Run(false, 0, 0);
return; return;
} }
...@@ -91,5 +94,5 @@ void OutputProtectionProxy::ProcessQueryStatusResult( ...@@ -91,5 +94,5 @@ void OutputProtectionProxy::ProcessQueryStatusResult(
new_link_mask |= display::DISPLAY_CONNECTION_TYPE_NETWORK; new_link_mask |= display::DISPLAY_CONNECTION_TYPE_NETWORK;
} }
callback.Run(success, new_link_mask, protection_mask); std::move(callback).Run(success, new_link_mask, protection_mask);
} }
...@@ -26,23 +26,23 @@ ...@@ -26,23 +26,23 @@
// All methods except constructor should be invoked in UI thread. // All methods except constructor should be invoked in UI thread.
class OutputProtectionProxy { class OutputProtectionProxy {
public: public:
typedef base::Callback<void(bool /* success */, using QueryStatusCallback =
base::OnceCallback<void(bool /* success */,
uint32_t /* link_mask */, uint32_t /* link_mask */,
uint32_t /* protection_mask*/)> uint32_t /* protection_mask*/)>;
QueryStatusCallback; using EnableProtectionCallback = base::OnceCallback<void(bool /* success */)>;
typedef base::Callback<void(bool /* success */)> EnableProtectionCallback;
OutputProtectionProxy(int render_process_id, int render_frame_id); OutputProtectionProxy(int render_process_id, int render_frame_id);
~OutputProtectionProxy(); ~OutputProtectionProxy();
void QueryStatus(const QueryStatusCallback& callback); void QueryStatus(QueryStatusCallback callback);
void EnableProtection(uint32_t desired_method_mask, void EnableProtection(uint32_t desired_method_mask,
const EnableProtectionCallback& callback); EnableProtectionCallback callback);
private: private:
// Callbacks for QueryStatus(). It also checks the network link and adds it // Callbacks for QueryStatus(). It also checks the network link and adds it
// to the |link_mask|. // to the |link_mask|.
void ProcessQueryStatusResult(const QueryStatusCallback& callback, void ProcessQueryStatusResult(QueryStatusCallback callback,
bool success, bool success,
uint32_t link_mask, uint32_t link_mask,
uint32_t protection_mask); uint32_t protection_mask);
......
...@@ -606,14 +606,16 @@ TEST_F(CastMediaSinkServiceImplTest, TestOnSinkAddedOrUpdated) { ...@@ -606,14 +606,16 @@ TEST_F(CastMediaSinkServiceImplTest, TestOnSinkAddedOrUpdated) {
// Channel 1, 2 opened. // Channel 1, 2 opened.
EXPECT_CALL(*mock_cast_socket_service_, OpenSocketInternal(ip_endpoint1, _)) EXPECT_CALL(*mock_cast_socket_service_, OpenSocketInternal(ip_endpoint1, _))
.WillOnce(WithArgs<1>( .WillOnce(WithArgs<1>(
[&socket1]( [&socket1](const base::RepeatingCallback<void(
const base::Callback<void(cast_channel::CastSocket * socket)>& cast_channel::CastSocket * socket)>& callback) {
callback) { callback.Run(&socket1); })); callback.Run(&socket1);
}));
EXPECT_CALL(*mock_cast_socket_service_, OpenSocketInternal(ip_endpoint2, _)) EXPECT_CALL(*mock_cast_socket_service_, OpenSocketInternal(ip_endpoint2, _))
.WillOnce(WithArgs<1>( .WillOnce(WithArgs<1>(
[&socket2]( [&socket2](const base::RepeatingCallback<void(
const base::Callback<void(cast_channel::CastSocket * socket)>& cast_channel::CastSocket * socket)>& callback) {
callback) { callback.Run(&socket2); })); callback.Run(&socket2);
}));
// Add DIAL sinks to |dial_media_sink_service_|, which in turn notifies // Add DIAL sinks to |dial_media_sink_service_|, which in turn notifies
// |media_sink_service_impl_| via the Observer interface. // |media_sink_service_impl_| via the Observer interface.
...@@ -651,10 +653,11 @@ TEST_F(CastMediaSinkServiceImplTest, ...@@ -651,10 +653,11 @@ TEST_F(CastMediaSinkServiceImplTest,
EXPECT_CALL(*mock_cast_socket_service_, OpenSocketInternal(ip_endpoint1, _)) EXPECT_CALL(*mock_cast_socket_service_, OpenSocketInternal(ip_endpoint1, _))
.Times(1) .Times(1)
.WillOnce(WithArgs<1>(Invoke( .WillOnce(WithArgs<1>(
[&socket1]( Invoke([&socket1](const base::RepeatingCallback<void(
const base::Callback<void(cast_channel::CastSocket * socket)>& cast_channel::CastSocket * socket)>& callback) {
callback) { std::move(callback).Run(&socket1); }))); std::move(callback).Run(&socket1);
})));
media_sink_service_impl_.OnSinkAddedOrUpdated(dial_sink1); media_sink_service_impl_.OnSinkAddedOrUpdated(dial_sink1);
// We don't trigger retries, thus each iteration will only increment the // We don't trigger retries, thus each iteration will only increment the
...@@ -664,9 +667,10 @@ TEST_F(CastMediaSinkServiceImplTest, ...@@ -664,9 +667,10 @@ TEST_F(CastMediaSinkServiceImplTest,
EXPECT_CALL(*mock_cast_socket_service_, OpenSocketInternal(ip_endpoint1, _)) EXPECT_CALL(*mock_cast_socket_service_, OpenSocketInternal(ip_endpoint1, _))
.Times(1) .Times(1)
.WillOnce(WithArgs<1>(Invoke( .WillOnce(WithArgs<1>(Invoke(
[&socket1]( [&socket1](const base::RepeatingCallback<void(
const base::Callback<void(cast_channel::CastSocket * socket)>& cast_channel::CastSocket * socket)>& callback) {
callback) { std::move(callback).Run(&socket1); }))); std::move(callback).Run(&socket1);
})));
media_sink_service_impl_.OnSinkAddedOrUpdated(dial_sink1); media_sink_service_impl_.OnSinkAddedOrUpdated(dial_sink1);
} }
......
...@@ -61,11 +61,11 @@ void IssueManager::AddIssue(const IssueInfo& issue_info) { ...@@ -61,11 +61,11 @@ void IssueManager::AddIssue(const IssueInfo& issue_info) {
} }
Issue issue(issue_info); Issue issue(issue_info);
std::unique_ptr<base::CancelableClosure> cancelable_dismiss_cb; std::unique_ptr<base::CancelableOnceClosure> cancelable_dismiss_cb;
base::TimeDelta timeout = GetAutoDismissTimeout(issue_info); base::TimeDelta timeout = GetAutoDismissTimeout(issue_info);
if (!timeout.is_zero()) { if (!timeout.is_zero()) {
cancelable_dismiss_cb = cancelable_dismiss_cb =
std::make_unique<base::CancelableClosure>(base::Bind( std::make_unique<base::CancelableOnceClosure>(base::BindOnce(
&IssueManager::ClearIssue, base::Unretained(this), issue.id())); &IssueManager::ClearIssue, base::Unretained(this), issue.id()));
task_runner_->PostDelayedTask(FROM_HERE, cancelable_dismiss_cb->callback(), task_runner_->PostDelayedTask(FROM_HERE, cancelable_dismiss_cb->callback(),
timeout); timeout);
...@@ -108,7 +108,7 @@ void IssueManager::UnregisterObserver(IssuesObserver* observer) { ...@@ -108,7 +108,7 @@ void IssueManager::UnregisterObserver(IssuesObserver* observer) {
IssueManager::Entry::Entry( IssueManager::Entry::Entry(
const Issue& issue, const Issue& issue,
std::unique_ptr<base::CancelableClosure> cancelable_dismiss_callback) std::unique_ptr<base::CancelableOnceClosure> cancelable_dismiss_callback)
: issue(issue), : issue(issue),
cancelable_dismiss_callback(std::move(cancelable_dismiss_callback)) {} cancelable_dismiss_callback(std::move(cancelable_dismiss_callback)) {}
......
...@@ -69,13 +69,14 @@ class IssueManager { ...@@ -69,13 +69,14 @@ class IssueManager {
// will require adding support for delayed tasks to CancelableTaskTracker. // will require adding support for delayed tasks to CancelableTaskTracker.
struct Entry { struct Entry {
Entry(const Issue& issue, Entry(const Issue& issue,
std::unique_ptr<base::CancelableClosure> cancelable_dismiss_callback); std::unique_ptr<base::CancelableOnceClosure>
cancelable_dismiss_callback);
~Entry(); ~Entry();
Issue issue; Issue issue;
// Set to non-null if |issue| can be auto-dismissed. // Set to non-null if |issue| can be auto-dismissed.
std::unique_ptr<base::CancelableClosure> cancelable_dismiss_callback; std::unique_ptr<base::CancelableOnceClosure> cancelable_dismiss_callback;
private: private:
DISALLOW_COPY_AND_ASSIGN(Entry); DISALLOW_COPY_AND_ASSIGN(Entry);
......
...@@ -62,7 +62,7 @@ MediaRouterBase::AddPresentationConnectionStateChangedCallback( ...@@ -62,7 +62,7 @@ MediaRouterBase::AddPresentationConnectionStateChangedCallback(
auto& callbacks = presentation_connection_state_callbacks_[route_id]; auto& callbacks = presentation_connection_state_callbacks_[route_id];
if (!callbacks) { if (!callbacks) {
callbacks = std::make_unique<PresentationConnectionStateChangedCallbacks>(); callbacks = std::make_unique<PresentationConnectionStateChangedCallbacks>();
callbacks->set_removal_callback(base::Bind( callbacks->set_removal_callback(base::BindRepeating(
&MediaRouterBase::OnPresentationConnectionStateCallbackRemoved, &MediaRouterBase::OnPresentationConnectionStateCallbackRemoved,
base::Unretained(this), route_id)); base::Unretained(this), route_id));
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment