From 8b4a89c44551c229fe4d7dc44b3a21676c01b06c Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Sat, 14 Apr 2018 12:50:55 -0400 Subject: [PATCH 1/6] .deepCopyTo() => sk_tool_utils::copy_to() --- atom/common/api/atom_api_clipboard.cc | 38 ++------------------------- common.gypi | 2 ++ 2 files changed, 4 insertions(+), 36 deletions(-) diff --git a/atom/common/api/atom_api_clipboard.cc b/atom/common/api/atom_api_clipboard.cc index 47c85650a8..6b0c97078c 100644 --- a/atom/common/api/atom_api_clipboard.cc +++ b/atom/common/api/atom_api_clipboard.cc @@ -10,45 +10,11 @@ #include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkImageInfo.h" #include "third_party/skia/include/core/SkPixmap.h" +#include "third_party/skia/tools/sk_tool_utils.h" #include "ui/base/clipboard/scoped_clipboard_writer.h" #include "atom/common/node_includes.h" -namespace { - -// TODO(alexeykuzmin): It is a copy of `sk_tool_utils::copy_to()`, -// use the original function if possible, skia doesn't export it. -bool copy_to(SkBitmap* dst, SkColorType dstColorType, const SkBitmap& src) { - SkPixmap srcPM; - if (!src.peekPixels(&srcPM)) { - return false; - } - - SkBitmap tmpDst; - SkImageInfo dstInfo = srcPM.info().makeColorType(dstColorType); - if (!tmpDst.setInfo(dstInfo)) { - return false; - } - - if (!tmpDst.tryAllocPixels()) { - return false; - } - - SkPixmap dstPM; - if (!tmpDst.peekPixels(&dstPM)) { - return false; - } - - if (!srcPM.readPixels(dstPM)) { - return false; - } - - dst->swap(tmpDst); - return true; -} - -} // namespace - namespace atom { namespace api { @@ -207,7 +173,7 @@ void Clipboard::WriteImage(const gfx::Image& image, mate::Arguments* args) { SkBitmap orig = image.AsBitmap(); SkBitmap bmp; - if (copy_to(&bmp, orig.colorType(), orig)) { + if (sk_tool_utils::copy_to(&bmp, orig.colorType(), &orig)) { writer.WriteImage(bmp); } else { writer.WriteImage(orig); diff --git a/common.gypi b/common.gypi index 5c6677b333..d65a44308e 100644 --- a/common.gypi +++ b/common.gypi @@ -146,6 +146,8 @@ '<(libchromiumcontent_src_dir)', '<(libchromiumcontent_src_dir)/third_party/icu/source/common', '<(libchromiumcontent_src_dir)/third_party/icu/source/i18n', + '<(libchromiumcontent_src_dir)/third_party/skia/include/utils', + '<(libchromiumcontent_src_dir)/third_party/skia/include/private', '<(libchromiumcontent_src_dir)/v8', '<(libchromiumcontent_src_dir)/v8/include', ], From 1727a9eca999a010dd9b43e6c8348f7c525aa084 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Sat, 14 Apr 2018 21:23:05 -0400 Subject: [PATCH 2/6] pull up definition and remove include --- atom/browser/api/atom_api_auto_updater.cc | 2 ++ atom/common/api/atom_api_clipboard.cc | 7 +++++-- common.gypi | 2 -- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/atom/browser/api/atom_api_auto_updater.cc b/atom/browser/api/atom_api_auto_updater.cc index 88a58f6bca..5d736ad43d 100644 --- a/atom/browser/api/atom_api_auto_updater.cc +++ b/atom/browser/api/atom_api_auto_updater.cc @@ -104,6 +104,8 @@ void AutoUpdater::SetFeedURL(mate::Arguments* args) { } void AutoUpdater::QuitAndInstall() { + Emit("before-quit-for-update"); + // If we don't have any window then quitAndInstall immediately. if (WindowList::IsEmpty()) { auto_updater::AutoUpdater::QuitAndInstall(); diff --git a/atom/common/api/atom_api_clipboard.cc b/atom/common/api/atom_api_clipboard.cc index 6b0c97078c..2cd4070fba 100644 --- a/atom/common/api/atom_api_clipboard.cc +++ b/atom/common/api/atom_api_clipboard.cc @@ -10,11 +10,14 @@ #include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkImageInfo.h" #include "third_party/skia/include/core/SkPixmap.h" -#include "third_party/skia/tools/sk_tool_utils.h" #include "ui/base/clipboard/scoped_clipboard_writer.h" #include "atom/common/node_includes.h" +namespace sk_tool_utils { + bool copy_to(SkBitmap* dst, SkColorType dstCT, const SkBitmap& src); +} + namespace atom { namespace api { @@ -173,7 +176,7 @@ void Clipboard::WriteImage(const gfx::Image& image, mate::Arguments* args) { SkBitmap orig = image.AsBitmap(); SkBitmap bmp; - if (sk_tool_utils::copy_to(&bmp, orig.colorType(), &orig)) { + if (sk_tool_utils::copy_to(&bmp, orig.colorType(), orig)) { writer.WriteImage(bmp); } else { writer.WriteImage(orig); diff --git a/common.gypi b/common.gypi index d65a44308e..5c6677b333 100644 --- a/common.gypi +++ b/common.gypi @@ -146,8 +146,6 @@ '<(libchromiumcontent_src_dir)', '<(libchromiumcontent_src_dir)/third_party/icu/source/common', '<(libchromiumcontent_src_dir)/third_party/icu/source/i18n', - '<(libchromiumcontent_src_dir)/third_party/skia/include/utils', - '<(libchromiumcontent_src_dir)/third_party/skia/include/private', '<(libchromiumcontent_src_dir)/v8', '<(libchromiumcontent_src_dir)/v8/include', ], From 43a9092c1646db962c1361527497045e3cc1b980 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Sat, 14 Apr 2018 21:24:19 -0400 Subject: [PATCH 3/6] remove accidental file change --- atom/browser/api/atom_api_auto_updater.cc | 2 -- 1 file changed, 2 deletions(-) diff --git a/atom/browser/api/atom_api_auto_updater.cc b/atom/browser/api/atom_api_auto_updater.cc index 5d736ad43d..88a58f6bca 100644 --- a/atom/browser/api/atom_api_auto_updater.cc +++ b/atom/browser/api/atom_api_auto_updater.cc @@ -104,8 +104,6 @@ void AutoUpdater::SetFeedURL(mate::Arguments* args) { } void AutoUpdater::QuitAndInstall() { - Emit("before-quit-for-update"); - // If we don't have any window then quitAndInstall immediately. if (WindowList::IsEmpty()) { auto_updater::AutoUpdater::QuitAndInstall(); From 90a7b5ebcef7cdc272744ddbda82252b111cb336 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Mon, 16 Apr 2018 08:47:34 -0400 Subject: [PATCH 4/6] switch to simplified version of copy_to --- atom/common/api/atom_api_clipboard.cc | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/atom/common/api/atom_api_clipboard.cc b/atom/common/api/atom_api_clipboard.cc index 2cd4070fba..3c3651a759 100644 --- a/atom/common/api/atom_api_clipboard.cc +++ b/atom/common/api/atom_api_clipboard.cc @@ -14,10 +14,6 @@ #include "atom/common/node_includes.h" -namespace sk_tool_utils { - bool copy_to(SkBitmap* dst, SkColorType dstCT, const SkBitmap& src); -} - namespace atom { namespace api { @@ -176,8 +172,8 @@ void Clipboard::WriteImage(const gfx::Image& image, mate::Arguments* args) { SkBitmap orig = image.AsBitmap(); SkBitmap bmp; - if (sk_tool_utils::copy_to(&bmp, orig.colorType(), orig)) { - writer.WriteImage(bmp); + if (bmp.tryAllocPixels(orig.info())) { + orig.readPixels(bmp.info(), bmp.getPixels(), bmp.rowBytes(), 0, 0); } else { writer.WriteImage(orig); } From a19ddfc578e0ec90babf7c9d6a816f09ad60727b Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Mon, 16 Apr 2018 12:14:35 -0400 Subject: [PATCH 5/6] fix copy_to conditional --- atom/common/api/atom_api_clipboard.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/atom/common/api/atom_api_clipboard.cc b/atom/common/api/atom_api_clipboard.cc index 3c3651a759..bbff56e032 100644 --- a/atom/common/api/atom_api_clipboard.cc +++ b/atom/common/api/atom_api_clipboard.cc @@ -172,10 +172,9 @@ void Clipboard::WriteImage(const gfx::Image& image, mate::Arguments* args) { SkBitmap orig = image.AsBitmap(); SkBitmap bmp; - if (bmp.tryAllocPixels(orig.info())) { - orig.readPixels(bmp.info(), bmp.getPixels(), bmp.rowBytes(), 0, 0); - } else { - writer.WriteImage(orig); + if (bmp.tryAllocPixels(orig.info()) && + orig.readPixels(bmp.info(), bmp.getPixels(), bmp.rowBytes(), 0, 0)) { + writer.WriteImage(bmp); } } From 354f8729196a4bb54eab4b7394c0811de92e815c Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Mon, 16 Apr 2018 15:08:17 -0400 Subject: [PATCH 6/6] run clang-format --- atom/common/api/atom_api_clipboard.cc | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/atom/common/api/atom_api_clipboard.cc b/atom/common/api/atom_api_clipboard.cc index bbff56e032..7502b1cb36 100644 --- a/atom/common/api/atom_api_clipboard.cc +++ b/atom/common/api/atom_api_clipboard.cc @@ -52,8 +52,8 @@ std::string Clipboard::Read(const std::string& format_string) { v8::Local Clipboard::ReadBuffer(const std::string& format_string, mate::Arguments* args) { std::string data = Read(format_string); - return node::Buffer::Copy( - args->isolate(), data.data(), data.length()).ToLocalChecked(); + return node::Buffer::Copy(args->isolate(), data.data(), data.length()) + .ToLocalChecked(); } void Clipboard::WriteBuffer(const std::string& format, @@ -97,11 +97,11 @@ base::string16 Clipboard::ReadText(mate::Arguments* args) { base::string16 data; ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); auto type = GetClipboardType(args); - if (clipboard->IsFormatAvailable( - ui::Clipboard::GetPlainTextWFormatType(), type)) { + if (clipboard->IsFormatAvailable(ui::Clipboard::GetPlainTextWFormatType(), + type)) { clipboard->ReadText(type, &data); } else if (clipboard->IsFormatAvailable( - ui::Clipboard::GetPlainTextFormatType(), type)) { + ui::Clipboard::GetPlainTextFormatType(), type)) { std::string result; clipboard->ReadAsciiText(type, &result); data = base::ASCIIToUTF16(result); @@ -173,14 +173,16 @@ void Clipboard::WriteImage(const gfx::Image& image, mate::Arguments* args) { SkBitmap bmp; if (bmp.tryAllocPixels(orig.info()) && - orig.readPixels(bmp.info(), bmp.getPixels(), bmp.rowBytes(), 0, 0)) { + orig.readPixels(bmp.info(), bmp.getPixels(), bmp.rowBytes(), 0, 0)) { writer.WriteImage(bmp); } } #if !defined(OS_MACOSX) void Clipboard::WriteFindText(const base::string16& text) {} -base::string16 Clipboard::ReadFindText() { return base::string16(); } +base::string16 Clipboard::ReadFindText() { + return base::string16(); +} #endif void Clipboard::Clear(mate::Arguments* args) { @@ -193,8 +195,10 @@ void Clipboard::Clear(mate::Arguments* args) { namespace { -void Initialize(v8::Local exports, v8::Local unused, - v8::Local context, void* priv) { +void Initialize(v8::Local exports, + v8::Local unused, + v8::Local context, + void* priv) { mate::Dictionary dict(context->GetIsolate(), exports); dict.SetMethod("availableFormats", &atom::api::Clipboard::AvailableFormats); dict.SetMethod("has", &atom::api::Clipboard::Has);