Skip to content

Commit

Permalink
[base] Disallow base::BindOnce() + base::Passed() everywhere.
Browse files Browse the repository at this point in the history
std::move() and base::Passed() mean the same thing for base::BindOnce(),
so use the standard library idiom instead.

Bug: 1180750
Change-Id: I0c92aeaae601d21492952cf4eb890cce44faf576
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2755175
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Auto-Submit: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org>
Owners-Override: Jan Wilken Dörrie <jdoerrie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#863182}
  • Loading branch information
zetafunction authored and Chromium LUCI CQ committed Mar 16, 2021
1 parent cffad60 commit 64da068
Show file tree
Hide file tree
Showing 9 changed files with 19 additions and 18 deletions.
5 changes: 0 additions & 5 deletions base/bind.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,15 +70,10 @@ inline OnceCallback<internal::MakeUnboundRunType<Functor, Args...>> BindOnce(
!std::is_const<std::remove_reference_t<Functor>>()),
"BindOnce requires non-const rvalue for OnceCallback binding."
" I.e.: base::BindOnce(std::move(callback)).");
#if defined(OS_APPLE) || defined(OS_CHROMEOS) || defined(OS_FUCHSIA) || \
defined(OS_LINUX) || defined(OS_WIN) || \
defined(NCTEST_BIND_ONCE_WITH_PASSED)
// TODO(https://crbug.com/1180750): Enable this everywhere.
static_assert(
conjunction<
internal::AssertBindArgIsNotBasePassed<std::decay_t<Args>>...>::value,
"Use std::move() instead of base::Passed() with base::BindOnce()");
#endif

return internal::BindImpl<OnceCallback>(std::forward<Functor>(functor),
std::forward<Args>(args)...);
Expand Down
9 changes: 5 additions & 4 deletions chrome/browser/android/bookmarks/partner_bookmarks_reader.cc
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

#include "chrome/browser/android/bookmarks/partner_bookmarks_reader.h"

#include <utility>

#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
#include "base/bind.h"
Expand Down Expand Up @@ -267,9 +269,8 @@ void PartnerBookmarksReader::GetFaviconFromCacheOrServer(
GetLargeIconService()->GetLargeIconRawBitmapOrFallbackStyleForPageUrl(
page_url, kPartnerBookmarksMinimumFaviconSizePx, desired_favicon_size_px,
base::BindOnce(&PartnerBookmarksReader::OnGetFaviconFromCacheFinished,
base::Unretained(this), page_url,
base::Passed(std::move(callback)), fallback_to_server,
from_server, desired_favicon_size_px),
base::Unretained(this), page_url, std::move(callback),
fallback_to_server, from_server, desired_favicon_size_px),
&favicon_task_tracker_);
}

Expand Down Expand Up @@ -326,7 +327,7 @@ void PartnerBookmarksReader::OnGetFaviconFromCacheFinished(
base::BindOnce(
&PartnerBookmarksReader::OnGetFaviconFromServerFinished,
base::Unretained(this), page_url, desired_favicon_size_px,
base::Passed(std::move(callback))));
std::move(callback)));
}

void PartnerBookmarksReader::OnGetFaviconFromServerFinished(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

#include "chrome/browser/android/context_menu/context_menu_native_delegate_impl.h"

#include <utility>

#include "base/android/callback_android.h"
#include "base/android/jni_array.h"
#include "base/android/jni_string.h"
Expand Down Expand Up @@ -169,7 +171,7 @@ void ContextMenuNativeDelegateImpl::RetrieveImageInternal(
max_width_px * max_height_px, gfx::Size(max_width_px, max_height_px),
image_format,
base::BindOnce(
std::move(retrieve_callback), base::Passed(&chrome_render_frame),
std::move(retrieve_callback), std::move(chrome_render_frame),
base::android::ScopedJavaGlobalRef<jobject>(env, jcallback)));
}

Expand Down
5 changes: 3 additions & 2 deletions chrome/browser/android/vr/autocomplete_controller.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include "chrome/browser/android/vr/autocomplete_controller.h"

#include <string>
#include <utility>

#include "base/bind.h"
#include "base/strings/string_util.h"
Expand Down Expand Up @@ -97,8 +98,8 @@ void AutocompleteController::OnResultChanged(
suggestions_timeout_.Cancel();

if (suggestions.size() < kMaxNumberOfSuggestions) {
suggestions_timeout_.Reset(base::BindOnce(
suggestion_callback_, base::Passed(std::move(suggestions))));
suggestions_timeout_.Reset(
base::BindOnce(suggestion_callback_, std::move(suggestions)));
base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
FROM_HERE, suggestions_timeout_.callback(),
base::TimeDelta::FromMilliseconds(kSuggestionThrottlingDelayMs));
Expand Down
2 changes: 1 addition & 1 deletion chrome/browser/android/webapk/webapk_install_service.cc
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ void WebApkInstallService::InstallAsync(
WebApkInstaller::InstallAsync(
browser_context_, shortcut_info, primary_icon, is_primary_icon_maskable,
base::BindOnce(&WebApkInstallService::OnFinishedInstall,
weak_ptr_factory_.GetWeakPtr(), base::Passed(&observer),
weak_ptr_factory_.GetWeakPtr(), std::move(observer),
shortcut_info, primary_icon, is_primary_icon_maskable));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1619,7 +1619,7 @@ void ChromeDownloadManagerDelegate::CheckDownloadAllowed(
web_contents_getter,
base::BindOnce(&OnDownloadAcquireFileAccessPermissionDone,
web_contents_getter, url, request_method,
std::move(request_initiator), base::Passed(&cb)));
std::move(request_initiator), std::move(cb)));
#else
CheckCanDownload(web_contents_getter, url, request_method,
std::move(request_initiator),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

#include <memory>
#include <string>
#include <utility>

#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
Expand Down Expand Up @@ -55,7 +56,7 @@ void JNI_TestRulesetPublisher_CreateAndPublishRulesetDisallowingSuffixForTesting
auto* ruleset_service =
g_browser_process->subresource_filter_ruleset_service();
ruleset_service->SetRulesetPublishedCallbackForTesting(base::BindOnce(
&OnRulesetPublished, base::Passed(&creator), ruleset_service, publisher));
&OnRulesetPublished, std::move(creator), ruleset_service, publisher));
ruleset_service->IndexAndStoreAndPublishRulesetIfNeeded(
unindexed_ruleset_info);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ AddToHomescreenDataFetcher::AddToHomescreenDataFetcher(
auto* web_page_metadata_proxy = metadata_agent.get();
web_page_metadata_proxy->GetWebPageMetadata(base::BindOnce(
&AddToHomescreenDataFetcher::OnDidGetWebPageMetadata,
weak_ptr_factory_.GetWeakPtr(), base::Passed(&metadata_agent)));
weak_ptr_factory_.GetWeakPtr(), std::move(metadata_agent)));
}

AddToHomescreenDataFetcher::~AddToHomescreenDataFetcher() = default;
Expand Down
5 changes: 3 additions & 2 deletions weblayer/browser/webrtc/media_stream_manager.cc
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

#include "weblayer/browser/webrtc/media_stream_manager.h"

#include <utility>

#include "base/supports_user_data.h"
#include "components/webrtc/media_stream_devices_controller.h"
#include "content/public/browser/media_stream_request.h"
Expand Down Expand Up @@ -115,8 +117,7 @@ void MediaStreamManager::RequestMediaAccessPermission(
webrtc::MediaStreamDevicesController::RequestPermissions(
request, nullptr,
base::BindOnce(&MediaStreamManager::OnMediaAccessPermissionResult,
weak_factory_.GetWeakPtr(),
base::Passed(std::move(callback))));
weak_factory_.GetWeakPtr(), std::move(callback)));
}

void MediaStreamManager::OnClientReadyToStream(JNIEnv* env,
Expand Down

0 comments on commit 64da068

Please sign in to comment.