Skip to content

Commit

Permalink
Revert "Browser Clipboard: Implements read and write SVG on the brows…
Browse files Browse the repository at this point in the history
…er side"

This reverts commit 81bbe1e.

Reason for revert: compile error

https://ci.chromium.org/p/chromium/builders/try/linux-chromeos-rel/654323?

seems to conflict with this recent change: https://chromium-review.googlesource.com/c/chromium/src/+/2355015

Original change's description:
> Browser Clipboard: Implements read and write SVG on the browser side
> 
> Implements the SVG format for the clipboard on all blink platforms. The
> implementation is very similar to HTML and plain text. Initially we will
> put this feature behind a flag before it is exposed to the Web Platform.
> 
> Design Doc: https://docs.google.com/document/d/1jq8QSCQRdNy99rnPusmW8is62c22PVuq-Sk-tMT2tRk/edit#
> 
> Bug: 1110511
> Change-Id: I6d405a9704c431a31995bb50a17dfc309b49b74b
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2313961
> Reviewed-by: Jarryd Goodman <jarrydg@chromium.org>
> Reviewed-by: Daniel Cheng <dcheng@chromium.org>
> Reviewed-by: Darwin Huang <huangdarwin@chromium.org>
> Reviewed-by: Scott Violet <sky@chromium.org>
> Commit-Queue: Darwin Huang <huangdarwin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#800774}

TBR=sky@chromium.org,dcheng@chromium.org,jarrydg@chromium.org,huangdarwin@chromium.org,dsleeps@google.com

Change-Id: I0e550072698323d9a7e0754548821e2c765e3162
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 1110511
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2369419
Reviewed-by: Collin Baker <collinbaker@chromium.org>
Commit-Queue: Collin Baker <collinbaker@chromium.org>
Cr-Commit-Position: refs/heads/master@{#800797}
  • Loading branch information
chbaker0 authored and Commit Bot committed Aug 22, 2020
1 parent 370b7fa commit de67731
Show file tree
Hide file tree
Showing 41 changed files with 6 additions and 387 deletions.
22 changes: 0 additions & 22 deletions content/browser/frame_host/clipboard_host_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -236,24 +236,6 @@ void ClipboardHostImpl::ReadHtml(ui::ClipboardBuffer clipboard_buffer,
fragment_end, std::move(callback)));
}

void ClipboardHostImpl::ReadSvg(ui::ClipboardBuffer clipboard_buffer,
ReadSvgCallback callback) {
base::string16 markup;
clipboard_->ReadSvg(clipboard_buffer, /*data_dst=*/nullptr, &markup);

std::string data = base::UTF16ToUTF8(markup);
PerformPasteIfAllowed(clipboard_->GetSequenceNumber(clipboard_buffer),
ui::ClipboardFormatType::GetSvgType(), std::move(data),
base::BindOnce(
[](base::string16 markup, ReadSvgCallback callback,
ClipboardPasteAllowed allowed) {
if (!allowed)
markup.clear();
std::move(callback).Run(std::move(markup));
},
std::move(markup), std::move(callback)));
}

void ClipboardHostImpl::ReadRtf(ui::ClipboardBuffer clipboard_buffer,
ReadRtfCallback callback) {
std::string result;
Expand Down Expand Up @@ -331,10 +313,6 @@ void ClipboardHostImpl::WriteHtml(const base::string16& markup,
clipboard_writer_->WriteHTML(markup, url.spec());
}

void ClipboardHostImpl::WriteSvg(const base::string16& markup) {
clipboard_writer_->WriteSvg(markup);
}

void ClipboardHostImpl::WriteSmartPasteMarker() {
clipboard_writer_->WriteWebSmartPaste();
}
Expand Down
3 changes: 0 additions & 3 deletions content/browser/frame_host/clipboard_host_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -144,8 +144,6 @@ class CONTENT_EXPORT ClipboardHostImpl : public blink::mojom::ClipboardHost {
ReadTextCallback callback) override;
void ReadHtml(ui::ClipboardBuffer clipboard_buffer,
ReadHtmlCallback callback) override;
void ReadSvg(ui::ClipboardBuffer clipboard_buffer,
ReadSvgCallback callback) override;
void ReadRtf(ui::ClipboardBuffer clipboard_buffer,
ReadRtfCallback callback) override;
void ReadImage(ui::ClipboardBuffer clipboard_buffer,
Expand All @@ -155,7 +153,6 @@ class CONTENT_EXPORT ClipboardHostImpl : public blink::mojom::ClipboardHost {
ReadCustomDataCallback callback) override;
void WriteText(const base::string16& text) override;
void WriteHtml(const base::string16& markup, const GURL& url) override;
void WriteSvg(const base::string16& markup) override;
void WriteSmartPasteMarker() override;
void WriteCustomData(
const base::flat_map<base::string16, base::string16>& data) override;
Expand Down
14 changes: 0 additions & 14 deletions content/test/mock_clipboard_host.cc
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ void MockClipboardHost::Bind(
void MockClipboardHost::Reset() {
plain_text_ = base::string16();
html_text_ = base::string16();
svg_text_ = base::string16();
url_ = GURL();
image_.reset();
custom_data_.clear();
Expand All @@ -42,8 +41,6 @@ void MockClipboardHost::ReadAvailableTypes(
types.push_back(base::ASCIIToUTF16("text/plain"));
if (!html_text_.empty())
types.push_back(base::ASCIIToUTF16("text/html"));
if (!svg_text_.empty())
types.push_back(base::ASCIIToUTF16("image/svg+xml"));
if (!image_.isNull())
types.push_back(base::ASCIIToUTF16("image/png"));
for (auto& it : custom_data_) {
Expand Down Expand Up @@ -84,11 +81,6 @@ void MockClipboardHost::ReadHtml(ui::ClipboardBuffer clipboard_buffer,
std::move(callback).Run(html_text_, url_, 0, html_text_.length());
}

void MockClipboardHost::ReadSvg(ui::ClipboardBuffer clipboard_buffer,
ReadSvgCallback callback) {
std::move(callback).Run(svg_text_);
}

void MockClipboardHost::ReadRtf(ui::ClipboardBuffer clipboard_buffer,
ReadRtfCallback callback) {
std::move(callback).Run(std::string());
Expand Down Expand Up @@ -121,12 +113,6 @@ void MockClipboardHost::WriteHtml(const base::string16& markup,
url_ = url;
}

void MockClipboardHost::WriteSvg(const base::string16& markup) {
if (needs_reset_)
Reset();
svg_text_ = markup;
}

void MockClipboardHost::WriteSmartPasteMarker() {
if (needs_reset_)
Reset();
Expand Down
4 changes: 0 additions & 4 deletions content/test/mock_clipboard_host.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,6 @@ class MockClipboardHost : public blink::mojom::ClipboardHost {
ReadTextCallback callback) override;
void ReadHtml(ui::ClipboardBuffer clipboard_buffer,
ReadHtmlCallback callback) override;
void ReadSvg(ui::ClipboardBuffer clipboard_buffer,
ReadSvgCallback callback) override;
void ReadRtf(ui::ClipboardBuffer clipboard_buffer,
ReadRtfCallback callback) override;
void ReadImage(ui::ClipboardBuffer clipboard_buffer,
Expand All @@ -46,7 +44,6 @@ class MockClipboardHost : public blink::mojom::ClipboardHost {
ReadCustomDataCallback callback) override;
void WriteText(const base::string16& text) override;
void WriteHtml(const base::string16& markup, const GURL& url) override;
void WriteSvg(const base::string16& markup) override;
void WriteSmartPasteMarker() override;
void WriteCustomData(
const base::flat_map<base::string16, base::string16>& data) override;
Expand All @@ -62,7 +59,6 @@ class MockClipboardHost : public blink::mojom::ClipboardHost {
uint64_t sequence_number_ = 0;
base::string16 plain_text_;
base::string16 html_text_;
base::string16 svg_text_;
GURL url_;
SkBitmap image_;
std::map<base::string16, base::string16> custom_data_;
Expand Down
17 changes: 0 additions & 17 deletions headless/lib/browser/headless_clipboard.cc
Original file line number Diff line number Diff line change
Expand Up @@ -124,18 +124,6 @@ void HeadlessClipboard::ReadHTML(ui::ClipboardBuffer buffer,
*fragment_end = base::checked_cast<uint32_t>(markup->size());
}

// |data_dst| is not used. It's only passed to be consistent with other
// platforms.
void HeadlessClipboard::ReadSvg(ui::ClipboardBuffer buffer,
const ui::ClipboardDataEndpoint* data_dst,
base::string16* result) const {
result->clear();
const DataStore& store = GetStore(buffer);
auto it = store.data.find(ui::ClipboardFormatType::GetSvgType());
if (it != store.data.end())
*result = base::UTF8ToUTF16(it->second);
}

// |data_dst| is not used. It's only passed to be consistent with other
// platforms.
void HeadlessClipboard::ReadRTF(ui::ClipboardBuffer buffer,
Expand Down Expand Up @@ -239,11 +227,6 @@ void HeadlessClipboard::WriteHTML(const char* markup_data,
GetDefaultStore().html_src_url = std::string(url_data, url_len);
}

void HeadlessClipboard::WriteSvg(const char* markup_data, size_t markup_len) {
std::string markup(markup_data, markup_len);
GetDefaultStore().data[ui::ClipboardFormatType::GetSvgType()] = markup;
}

void HeadlessClipboard::WriteRTF(const char* rtf_data, size_t data_len) {
GetDefaultStore().data[ui::ClipboardFormatType::GetRtfType()] =
std::string(rtf_data, data_len);
Expand Down
4 changes: 0 additions & 4 deletions headless/lib/browser/headless_clipboard.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,6 @@ class HeadlessClipboard : public ui::Clipboard {
std::string* src_url,
uint32_t* fragment_start,
uint32_t* fragment_end) const override;
void ReadSvg(ui::ClipboardBuffer buffer,
const ui::ClipboardDataEndpoint* data_dst,
base::string16* result) const override;
void ReadRTF(ui::ClipboardBuffer buffer,
const ui::ClipboardDataEndpoint* data_dst,
std::string* result) const override;
Expand Down Expand Up @@ -86,7 +83,6 @@ class HeadlessClipboard : public ui::Clipboard {
size_t markup_len,
const char* url_data,
size_t url_len) override;
void WriteSvg(const char* markup_data, size_t markup_len) override;
void WriteRTF(const char* rtf_data, size_t data_len) override;
void WriteBookmark(const char* title_data,
size_t title_len,
Expand Down
7 changes: 0 additions & 7 deletions third_party/blink/public/mojom/clipboard/clipboard.mojom
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,6 @@ interface ClipboardHost {
uint32 fragment_start,
uint32 fragment_end);

// Read SVG from the OS clipboard.
ReadSvg(ClipboardBuffer buffer) => (mojo_base.mojom.BigString16 result);

[Sync]
ReadRtf(ClipboardBuffer buffer) => (string result);

Expand All @@ -72,10 +69,6 @@ interface ClipboardHost {

WriteHtml(mojo_base.mojom.BigString16 markup, url.mojom.Url url);

// Takes sanitized SVG in a UTF16 string format and writes it to the
// OS clipboard.
WriteSvg(mojo_base.mojom.BigString16 markup);

WriteSmartPasteMarker();

// Chrome-specific pickled data.
Expand Down
14 changes: 0 additions & 14 deletions third_party/blink/renderer/core/testing/mock_clipboard_host.cc
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ void MockClipboardHost::Bind(
void MockClipboardHost::Reset() {
plain_text_ = g_empty_string;
html_text_ = g_empty_string;
svg_text_ = g_empty_string;
url_ = KURL();
image_.reset();
custom_data_.clear();
Expand All @@ -42,8 +41,6 @@ void MockClipboardHost::ReadAvailableTypes(
types.push_back("text/plain");
if (!html_text_.IsEmpty())
types.push_back("text/html");
if (!svg_text_.IsEmpty())
types.push_back("image/svg+xml");
if (!image_.isNull())
types.push_back("image/png");
for (auto& it : custom_data_) {
Expand Down Expand Up @@ -85,11 +82,6 @@ void MockClipboardHost::ReadHtml(mojom::ClipboardBuffer clipboard_buffer,
std::move(callback).Run(html_text_, url_, 0, html_text_.length());
}

void MockClipboardHost::ReadSvg(mojom::ClipboardBuffer clipboard_buffer,
ReadSvgCallback callback) {
std::move(callback).Run(svg_text_);
}

void MockClipboardHost::ReadRtf(mojom::ClipboardBuffer clipboard_buffer,
ReadRtfCallback callback) {
std::move(callback).Run(g_empty_string);
Expand Down Expand Up @@ -121,12 +113,6 @@ void MockClipboardHost::WriteHtml(const String& markup, const KURL& url) {
url_ = url;
}

void MockClipboardHost::WriteSvg(const String& markup) {
if (needs_reset_)
Reset();
svg_text_ = markup;
}

void MockClipboardHost::WriteSmartPasteMarker() {
if (needs_reset_)
Reset();
Expand Down
4 changes: 0 additions & 4 deletions third_party/blink/renderer/core/testing/mock_clipboard_host.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,6 @@ class MockClipboardHost : public mojom::blink::ClipboardHost {
ReadTextCallback callback) override;
void ReadHtml(mojom::ClipboardBuffer clipboard_buffer,
ReadHtmlCallback callback) override;
void ReadSvg(mojom::ClipboardBuffer clipboard_buffer,
ReadSvgCallback callback) override;
void ReadRtf(mojom::ClipboardBuffer clipboard_buffer,
ReadRtfCallback callback) override;
void ReadImage(mojom::ClipboardBuffer clipboard_buffer,
Expand All @@ -48,7 +46,6 @@ class MockClipboardHost : public mojom::blink::ClipboardHost {
ReadCustomDataCallback callback) override;
void WriteText(const String& text) override;
void WriteHtml(const String& markup, const KURL& url) override;
void WriteSvg(const String& markup) override;
void WriteSmartPasteMarker() override;
void WriteCustomData(const HashMap<String, String>& data) override;
void WriteBookmark(const String& url, const String& title) override;
Expand All @@ -62,7 +59,6 @@ class MockClipboardHost : public mojom::blink::ClipboardHost {
uint64_t sequence_number_ = 0;
String plain_text_ = g_empty_string;
String html_text_ = g_empty_string;
String svg_text_ = g_empty_string;
KURL url_;
SkBitmap image_;
HashMap<String, String> custom_data_;
Expand Down
2 changes: 0 additions & 2 deletions tools/metrics/histograms/enums.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10590,7 +10590,6 @@ histogram as enum -->
<int value="5" label="Data"/>
<int value="6" label="CustomData"/>
<int value="7" label="WebSmartPaste"/>
<int value="8" label="Svg"/>
</enum>

<enum name="ClipboardFormatWrite">
Expand All @@ -10602,7 +10601,6 @@ histogram as enum -->
<int value="5" label="Data"/>
<int value="6" label="CustomData"/>
<int value="7" label="WebSmartPaste"/>
<int value="8" label="Svg"/>
</enum>

<enum name="ClockdriftLevel">
Expand Down
4 changes: 0 additions & 4 deletions ui/base/clipboard/clipboard.cc
Original file line number Diff line number Diff line change
Expand Up @@ -127,10 +127,6 @@ void Clipboard::DispatchPortableRepresentation(PortableFormat format,
}
break;

case PortableFormat::kSvg:
WriteSvg(&(params[0].front()), params[0].size());
break;

case PortableFormat::kRtf:
WriteRTF(&(params[0].front()), params[0].size());
break;
Expand Down
9 changes: 0 additions & 9 deletions ui/base/clipboard/clipboard.h
Original file line number Diff line number Diff line change
Expand Up @@ -180,12 +180,6 @@ class COMPONENT_EXPORT(UI_BASE_CLIPBOARD) Clipboard
uint32_t* fragment_start,
uint32_t* fragment_end) const = 0;

// Reads an SVG image from the clipboard, if available.
// TODO(crbug.com/1103614): Update |data_dst| in all references to its
// appropriate ClipboardDataEndpoint for web-originates uses.
virtual void ReadSvg(ClipboardBuffer buffer,
const ClipboardDataEndpoint* data_dst,
base::string16* result) const = 0;
// Reads RTF from the clipboard, if available. Stores the result as a byte
// vector.
// TODO(crbug.com/1103614): Update |data_dst| in all references to its
Expand Down Expand Up @@ -261,7 +255,6 @@ class COMPONENT_EXPORT(UI_BASE_CLIPBOARD) Clipboard
kText,
kWebkit,
kData, // Arbitrary block of bytes.
kSvg,
};

// TODO (https://crbug.com/994928): Rename ObjectMap-related types.
Expand Down Expand Up @@ -338,8 +331,6 @@ class COMPONENT_EXPORT(UI_BASE_CLIPBOARD) Clipboard
const char* url_data,
size_t url_len) = 0;

virtual void WriteSvg(const char* markup_data, size_t markup_len) = 0;

virtual void WriteRTF(const char* rtf_data, size_t data_len) = 0;

virtual void WriteBookmark(const char* title_data,
Expand Down
17 changes: 0 additions & 17 deletions ui/base/clipboard/clipboard_android.cc
Original file line number Diff line number Diff line change
Expand Up @@ -483,18 +483,6 @@ void ClipboardAndroid::ReadHTML(ClipboardBuffer buffer,
*fragment_end = static_cast<uint32_t>(markup->length());
}

// |data_dst| is not used. It's only passed to be consistent with other
// platforms.
void ClipboardAndroid::ReadSvg(ClipboardBuffer buffer,
const ClipboardDataEndpoint* data_dst,
base::string16* result) const {
DCHECK(CalledOnValidThread());
DCHECK_EQ(buffer, ClipboardBuffer::kCopyPaste);
std::string utf8 =
g_map.Get().Get(ClipboardFormatType::GetSvgType().GetName());
*result = base::UTF8ToUTF16(utf8);
}

// |data_dst| is not used. It's only passed to be consistent with other
// platforms.
void ClipboardAndroid::ReadRTF(ClipboardBuffer buffer,
Expand Down Expand Up @@ -599,11 +587,6 @@ void ClipboardAndroid::WriteHTML(const char* markup_data,
std::string(markup_data, markup_len));
}

void ClipboardAndroid::WriteSvg(const char* markup_data, size_t markup_len) {
g_map.Get().Set(ClipboardFormatType::GetSvgType().GetName(),
std::string(markup_data, markup_len));
}

void ClipboardAndroid::WriteRTF(const char* rtf_data, size_t data_len) {
NOTIMPLEMENTED();
}
Expand Down
4 changes: 0 additions & 4 deletions ui/base/clipboard/clipboard_android.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,6 @@ class ClipboardAndroid : public Clipboard {
std::string* src_url,
uint32_t* fragment_start,
uint32_t* fragment_end) const override;
void ReadSvg(ClipboardBuffer buffer,
const ClipboardDataEndpoint* data_dst,
base::string16* result) const override;
void ReadRTF(ClipboardBuffer buffer,
const ClipboardDataEndpoint* data_dst,
std::string* result) const override;
Expand Down Expand Up @@ -118,7 +115,6 @@ class ClipboardAndroid : public Clipboard {
size_t markup_len,
const char* url_data,
size_t url_len) override;
void WriteSvg(const char* markup_data, size_t markup_len) override;
void WriteRTF(const char* rtf_data, size_t data_len) override;
void WriteBookmark(const char* title_data,
size_t title_len,
Expand Down
1 change: 0 additions & 1 deletion ui/base/clipboard/clipboard_constants.cc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ const char kMimeTypeURIList[] = "text/uri-list";
const char kMimeTypeMozillaURL[] = "text/x-moz-url";
const char kMimeTypeDownloadURL[] = "downloadurl";
const char kMimeTypeHTML[] = "text/html";
const char kMimeTypeSvg[] = "image/svg+xml";
const char kMimeTypeRTF[] = "text/rtf";
const char kMimeTypePNG[] = "image/png";

Expand Down
5 changes: 0 additions & 5 deletions ui/base/clipboard/clipboard_constants.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ extern const char kMimeTypeDownloadURL[];
COMPONENT_EXPORT(UI_BASE_CLIPBOARD_TYPES)
extern const char kMimeTypeMozillaURL[];
COMPONENT_EXPORT(UI_BASE_CLIPBOARD_TYPES) extern const char kMimeTypeHTML[];
COMPONENT_EXPORT(UI_BASE_CLIPBOARD_TYPES) extern const char kMimeTypeSvg[];
COMPONENT_EXPORT(UI_BASE_CLIPBOARD_TYPES) extern const char kMimeTypeRTF[];
COMPONENT_EXPORT(UI_BASE_CLIPBOARD_TYPES) extern const char kMimeTypePNG[];

Expand All @@ -57,10 +56,6 @@ extern const char kMimeTypePepperCustomData[];
#else
// MacOS-specific Uniform Type Identifiers.

// SVG images.
COMPONENT_EXPORT(UI_BASE_CLIPBOARD_TYPES)
extern NSString* const kImageSvg;

// Pickled data.
COMPONENT_EXPORT(UI_BASE_CLIPBOARD_TYPES)
extern NSString* const kWebCustomDataPboardType;
Expand Down
1 change: 0 additions & 1 deletion ui/base/clipboard/clipboard_constants_mac.mm
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@

namespace ui {

NSString* const kImageSvg = @"public.svg-image";
// TODO(dcheng): This name is temporary. See crbug.com/106449.
NSString* const kWebCustomDataPboardType = @"org.chromium.web-custom-data";
NSString* const kWebSmartPastePboardType = @"NeXT smart paste pasteboard type";
Expand Down
Loading

0 comments on commit de67731

Please sign in to comment.