feat: implement File System API support (#41419)
This commit is contained in:
parent
41ba963392
commit
344aba0838
23 changed files with 1562 additions and 9 deletions
|
@ -17,6 +17,7 @@
|
|||
#include "third_party/skia/include/core/SkImageInfo.h"
|
||||
#include "third_party/skia/include/core/SkPixmap.h"
|
||||
#include "ui/base/clipboard/clipboard_format_type.h"
|
||||
#include "ui/base/clipboard/file_info.h"
|
||||
#include "ui/base/clipboard/scoped_clipboard_writer.h"
|
||||
#include "ui/gfx/codec/png_codec.h"
|
||||
|
||||
|
@ -274,6 +275,17 @@ void Clipboard::Clear(gin_helper::Arguments* args) {
|
|||
ui::Clipboard::GetForCurrentThread()->Clear(GetClipboardBuffer(args));
|
||||
}
|
||||
|
||||
// This exists for testing purposes ONLY.
|
||||
void Clipboard::WriteFilesForTesting(const std::vector<base::FilePath>& files) {
|
||||
std::vector<ui::FileInfo> file_infos;
|
||||
for (const auto& file : files) {
|
||||
file_infos.emplace_back(ui::FileInfo(ui::FileInfo(file, file.BaseName())));
|
||||
}
|
||||
|
||||
ui::ScopedClipboardWriter writer(ui::ClipboardBuffer::kCopyPaste);
|
||||
writer.WriteFilenames(ui::FileInfosToURIList(file_infos));
|
||||
}
|
||||
|
||||
} // namespace electron::api
|
||||
|
||||
namespace {
|
||||
|
@ -302,6 +314,8 @@ void Initialize(v8::Local<v8::Object> exports,
|
|||
dict.SetMethod("writeFindText", &electron::api::Clipboard::WriteFindText);
|
||||
dict.SetMethod("readBuffer", &electron::api::Clipboard::ReadBuffer);
|
||||
dict.SetMethod("writeBuffer", &electron::api::Clipboard::WriteBuffer);
|
||||
dict.SetMethod("_writeFilesForTesting",
|
||||
&electron::api::Clipboard::WriteFilesForTesting);
|
||||
dict.SetMethod("clear", &electron::api::Clipboard::Clear);
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "shell/common/gin_converters/file_path_converter.h"
|
||||
#include "ui/base/clipboard/clipboard.h"
|
||||
#include "ui/gfx/image/image.h"
|
||||
#include "v8/include/v8.h"
|
||||
|
@ -63,6 +64,8 @@ class Clipboard {
|
|||
static void WriteBuffer(const std::string& format_string,
|
||||
const v8::Local<v8::Value> buffer,
|
||||
gin_helper::Arguments* args);
|
||||
|
||||
static void WriteFilesForTesting(const std::vector<base::FilePath>& files);
|
||||
};
|
||||
|
||||
} // namespace electron::api
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue