![electron-roller[bot]](/assets/img/avatar_default.png)
* chore: bump chromium in DEPS to 136.0.7076.0 * chore: bump chromium in DEPS to 136.0.7077.0 * 6368856: Migrate absl variant.h and utility.h in content (part 2/2) |6368856
* 6356528: Clean up LegacyRenderWidgetHostHWND code |6356528
* chore: export patches * 6339113: [Viewport Segments] Add CDP commands to override Viewport Segments without overriding other device properties. |6339113
* 6352169: [DevTools][MultiInstance] Support new tab in another window on Android |6352169
* 6368856: Migrate absl variant.h and utility.h in content (part 2/2) |6368856
* 6360858:Clickiness: Wire response from URLLoader to DB, add e2e tests|6360858
* chore: bump chromium in DEPS to 136.0.7079.0 * chore: export patches * chore: bump chromium in DEPS to 136.0.7081.0 * chore: export patches * chore: bump chromium in DEPS to 136.0.7083.0 * 6361987: Remove double-declaration with gfx::NativeView and gfx::NativeWindow |6361987
* chore: export patches * chore: bump chromium in DEPS to 136.0.7087.0 * chore: export patches * fix: include node patch for missing AtomicsWaitEvent6385540
* build: add depot_tools python to path * fix: cppgc init and unregistering v8 isolate6333562
CppGc is now initialized earlier so Node can skip reinitializing it. Additionally, gin::IsolateHandle was attempting to destruct an already destructed v8::Isolate upon electron::JavaScriptEnvironment destruction. By removing the call to NodePlatform::UnregisterIsolate, this fixes the crash on app shutdown. * fix: unregister isolate after destruction See code comment. * chore: bump chromium in DEPS to 136.0.7095.0 * chore: sync patches * fix: add script_parsing::ContentScriptType parameter6298395
* fix: migrate content::BrowserAccessibilityState methods6401437
6383275
* feat: enableHappyEyeballs option for host resolver6332599
* fix: add new cookie exclusion reason6343479
* fix: add new url loader method6337340
* fix: add new cppgc header file for electron_node headers6348644
* fix: disable CREL on Linux ARM64 https://chromium-review.googlesource.com/q/I3a62f02f564f07be63173b0773b4ecaffbe939b9 * fixup! fix: add new cppgc header file for electron_node headers6348644
* chore: update corner smoothing patch * fixup! chore: update corner smoothing patch * chore: disable NAN weak tests These two tests are incompatible with a V8 change that disallows running JS code from a weak finalizer callback. Ref:4733273
* test: fix task starvation in node test A V8 change makes these contexts get collected in a task that is posted and run asynchronously. The tests were synchronously GC'ing in an infinite loop, preventing the task loop from running the task that would GC these contexts. This change should be upstreamed in some way. Ref:4733273
--------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: alice <alice@makenotion.com> Co-authored-by: Samuel Maddock <smaddock@slack-corp.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> Co-authored-by: clavin <clavin@electronjs.org>
45 lines
2 KiB
Diff
45 lines
2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Henri Torgemane <henrit@gmail.com>
|
|
Date: Thu, 23 Sep 2021 21:30:33 -0500
|
|
Subject: add ui::ScopedCliboardWriter::WriteUnsafeRawData
|
|
|
|
This restores some ability to write to the clipboard using raw formats, which
|
|
was removed as part of the Raw Clipboard API scrubbing.
|
|
https://bugs.chromium.org/p/chromium/issues/detail?id=1217643
|
|
|
|
diff --git a/ui/base/clipboard/scoped_clipboard_writer.cc b/ui/base/clipboard/scoped_clipboard_writer.cc
|
|
index 8064a2c27d747d4862503526496a65987df7dc35..c92596713c6d3884be3f63bf78d9117b7ad3ec90 100644
|
|
--- a/ui/base/clipboard/scoped_clipboard_writer.cc
|
|
+++ b/ui/base/clipboard/scoped_clipboard_writer.cc
|
|
@@ -237,6 +237,16 @@ void ScopedClipboardWriter::WriteData(std::u16string_view format,
|
|
}
|
|
}
|
|
|
|
+void ScopedClipboardWriter::WriteUnsafeRawData(const std::u16string& format,
|
|
+ mojo_base::BigBuffer data) {
|
|
+ static constexpr int kMaxRegisteredFormats = 100;
|
|
+ if (counter_ >= kMaxRegisteredFormats)
|
|
+ return;
|
|
+ counter_++;
|
|
+ platform_representations_.push_back(
|
|
+ {base::UTF16ToUTF8(format), std::move(data)});
|
|
+}
|
|
+
|
|
void ScopedClipboardWriter::Reset() {
|
|
objects_.clear();
|
|
raw_objects_.clear();
|
|
diff --git a/ui/base/clipboard/scoped_clipboard_writer.h b/ui/base/clipboard/scoped_clipboard_writer.h
|
|
index 939a99b2a086d5373f82fe96da73dabe02f6f9d8..fccc200b1b11076c8fcffde071a53598ffba9a12 100644
|
|
--- a/ui/base/clipboard/scoped_clipboard_writer.h
|
|
+++ b/ui/base/clipboard/scoped_clipboard_writer.h
|
|
@@ -87,6 +87,10 @@ class COMPONENT_EXPORT(UI_BASE_CLIPBOARD) ScopedClipboardWriter {
|
|
// This is only used to write custom format data.
|
|
void WriteData(std::u16string_view format, mojo_base::BigBuffer data);
|
|
|
|
+ // write raw (non-pickled) data to the clipboard
|
|
+ void WriteUnsafeRawData(const std::u16string& format,
|
|
+ mojo_base::BigBuffer data);
|
|
+
|
|
void WriteImage(const SkBitmap& bitmap);
|
|
|
|
// Mark the data to be written as confidential.
|