Clipboard: Change sequence_number from uint64_t to UnguessableToken
The sequence number is supposed to uniquely identify clipboard state,
but in practice this is not true since there can exist multiple
clipboard instances.
Also includes a small change to TestRunnerBindings::CopyImageThen
which may help with some flaky tests.
Bug: 1226356, 1098369
Change-Id: I416a003b3d78966404924a973dfb4890615f8ea4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3011783
Reviewed-by: Darwin Huang <[email protected]>
Reviewed-by: danakj <[email protected]>
Reviewed-by: Peter Kvitek <[email protected]>
Reviewed-by: Victor Costan <[email protected]>
Reviewed-by: Ahmed Fakhry <[email protected]>
Reviewed-by: Gary Kacmarcik <[email protected]>
Reviewed-by: Scott Violet <[email protected]>
Reviewed-by: Peter Beverloo <[email protected]>
Commit-Queue: Austin Sullivan <[email protected]>
Cr-Commit-Position: refs/heads/master@{#903688}
diff --git a/chrome/browser/ui/ash/clipboard_util.cc b/chrome/browser/ui/ash/clipboard_util.cc
index 9412f5b..e3f11f6 100644
--- a/chrome/browser/ui/ash/clipboard_util.cc
+++ b/chrome/browser/ui/ash/clipboard_util.cc
@@ -54,7 +54,7 @@
* `decoded_image` is the image we are attempting to copy to the clipboard.
*/
void CopyImageToClipboard(bool maintain_clipboard,
- uint64_t clipboard_sequence,
+ ui::ClipboardSequenceNumberToken clipboard_sequence,
base::OnceCallback<void(bool)> callback,
scoped_refptr<base::RefCountedString> png_data,
const SkBitmap& decoded_image) {
@@ -81,7 +81,7 @@
return;
}
- uint64_t current_sequence =
+ ui::ClipboardSequenceNumberToken current_sequence =
ui::ClipboardNonBacked::GetForCurrentThread()->GetSequenceNumber(
ui::ClipboardBuffer::kCopyPaste);
if (current_sequence != clipboard_sequence) {
@@ -119,14 +119,15 @@
}
content::GetUIThreadTaskRunner({})->PostTask(
- FROM_HERE, base::BindOnce(&DecodeImageFileAndCopyToClipboard,
- /*clipboard_sequence=*/0,
- /*maintain_clipboard=*/false, png_data,
- base::DoNothing::Once<bool>()));
+ FROM_HERE,
+ base::BindOnce(&DecodeImageFileAndCopyToClipboard,
+ /*clipboard_sequence=*/ui::ClipboardSequenceNumberToken(),
+ /*maintain_clipboard=*/false, png_data,
+ base::DoNothing::Once<bool>()));
}
void DecodeImageFileAndCopyToClipboard(
- uint64_t clipboard_sequence,
+ ui::ClipboardSequenceNumberToken clipboard_sequence,
bool maintain_clipboard,
scoped_refptr<base::RefCountedString> png_data,
base::OnceCallback<void(bool)> callback) {