mirror of
https://github.com/electron/electron.git
synced 2026-01-09 15:38:08 -05:00
refactor: remove base::AdaptCallbackForRepeating patch (#48774)
refactor: remove base::AdaptCallbackForRepeating patch
This commit is contained in:
@@ -59,7 +59,6 @@ webview_fullscreen.patch
|
||||
extend_apply_webpreferences.patch
|
||||
build_libc_as_static_library.patch
|
||||
build_do_not_depend_on_packed_resource_integrity.patch
|
||||
refactor_restore_base_adaptcallbackforrepeating.patch
|
||||
logging_win32_only_create_a_console_if_logging_to_stderr.patch
|
||||
fix_media_key_usage_with_globalshortcuts.patch
|
||||
feat_expose_raw_response_headers_from_urlloader.patch
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Charles Kerr <charles@charleskerr.com>
|
||||
Date: Wed, 9 Jun 2021 14:28:08 -0500
|
||||
Subject: refactor: restore base::AdaptCallbackForRepeating
|
||||
|
||||
Undo https://chromium-review.googlesource.com/c/chromium/src/+/2941842
|
||||
to reinstate base::AdaptCallbackForRepeating(). It was removed to fix
|
||||
https://bugs.chromium.org/p/chromium/issues/detail?id=730593 .
|
||||
|
||||
We use AdaptCallbackForRepeating() in about a dozen places. This patch
|
||||
should be removed as soon as those have been updated. Patching because
|
||||
every instance is a FTBFS that prevents testing any one instance's fix.
|
||||
|
||||
diff --git a/base/functional/callback_helpers.h b/base/functional/callback_helpers.h
|
||||
index f1aa11fec7c0994ac19a26a02800f25de8f2f519..bbfdb3e4839ed96e4c6238235458a421c917411f 100644
|
||||
--- a/base/functional/callback_helpers.h
|
||||
+++ b/base/functional/callback_helpers.h
|
||||
@@ -99,6 +99,22 @@ RepeatingCallback<void(Args...)> ForwardRepeatingCallbacks(
|
||||
std::move(v));
|
||||
}
|
||||
|
||||
+// Wraps the given OnceCallback into a RepeatingCallback that relays its
|
||||
+// invocation to the original OnceCallback on the first invocation. The
|
||||
+// following invocations are just ignored.
|
||||
+//
|
||||
+// Note that this deliberately subverts the Once/Repeating paradigm of Callbacks
|
||||
+// but helps ease the migration from old-style Callbacks. Avoid if possible; use
|
||||
+// if necessary for migration. TODO(tzik): Remove it. https://crbug.com/730593
|
||||
+template <typename... Args>
|
||||
+RepeatingCallback<void(Args...)> AdaptCallbackForRepeating(
|
||||
+ OnceCallback<void(Args...)> callback) {
|
||||
+ using Helper = internal::OnceCallbackHolder<Args...>;
|
||||
+ return base::BindRepeating(
|
||||
+ &Helper::Run, std::make_unique<Helper>(std::move(callback),
|
||||
+ /*ignore_extra_runs=*/true));
|
||||
+}
|
||||
+
|
||||
// Wraps the given OnceCallback and returns two OnceCallbacks with an identical
|
||||
// signature. On first invokation of either returned callbacks, the original
|
||||
// callback is invoked. Invoking the remaining callback results in a crash.
|
||||
Reference in New Issue
Block a user