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) {