chore: migrate base::StringPiece to std::string_view (#40915)
* chore: migrate from base::StringPiece to std::string_view in keyboard_util.cc
* chore: migrate from base::StringPiece to std::string_view in error_thrower.cc
* chore: migrate from base::StringPiece to std::string_view in electron_api_web_contents.cc
* chore: migrate from base::StringPiece to std::string_view in gin_helper/dictionary.h
* chore: migrate from base::StringPiece to std::string_view in electron_api_url_loader.cc
* chore: phase out internal use of base:::StringPiece
`base::StringPiece` is being phased out upstream. Its code has been
removed upstream and it's just a typedef for `std::string_view`.
They haven't removed the typedef yet, so this PR tries to get ahead
of future breakage by migrating "internal" use (i.e. leaving alone the
places where the `base::StringPiece` name is coming from an upstream
method that we override).
Xref: https://bugs.chromium.org/p/chromium/issues/detail?id=691162
Xref: 4294483
Xref: https://docs.google.com/document/d/1d4RnD1uAE2t4iANR0nXy82ASIPGsPuw2mpO6v6T7JKs
This commit is contained in:
parent
892c9d78a3
commit
f36ceae024
45 changed files with 223 additions and 174 deletions
|
@ -6,12 +6,12 @@
|
|||
#define ELECTRON_SHELL_COMMON_GIN_HELPER_PROMISE_H_
|
||||
|
||||
#include <string>
|
||||
#include <string_view>
|
||||
#include <tuple>
|
||||
#include <type_traits>
|
||||
#include <utility>
|
||||
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "base/strings/string_piece.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "shell/common/gin_converters/std_converter.h"
|
||||
|
@ -47,19 +47,20 @@ class PromiseBase {
|
|||
//
|
||||
// Note: The parameter type is PromiseBase&& so it can take the instances of
|
||||
// Promise<T> type.
|
||||
static void RejectPromise(PromiseBase&& promise, base::StringPiece errmsg) {
|
||||
static void RejectPromise(PromiseBase&& promise,
|
||||
const std::string_view errmsg) {
|
||||
if (electron::IsBrowserProcess() &&
|
||||
!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)) {
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(
|
||||
// Note that this callback can not take StringPiece,
|
||||
// Note that this callback can not take std::string_view,
|
||||
// as StringPiece only references string internally and
|
||||
// will blow when a temporary string is passed.
|
||||
[](PromiseBase&& promise, std::string str) {
|
||||
promise.RejectWithErrorMessage(str);
|
||||
},
|
||||
std::move(promise), std::string(errmsg.data(), errmsg.size())));
|
||||
std::move(promise), std::string{errmsg}));
|
||||
} else {
|
||||
promise.RejectWithErrorMessage(errmsg);
|
||||
}
|
||||
|
@ -67,7 +68,7 @@ class PromiseBase {
|
|||
|
||||
v8::Maybe<bool> Reject();
|
||||
v8::Maybe<bool> Reject(v8::Local<v8::Value> except);
|
||||
v8::Maybe<bool> RejectWithErrorMessage(base::StringPiece message);
|
||||
v8::Maybe<bool> RejectWithErrorMessage(std::string_view message);
|
||||
|
||||
v8::Local<v8::Context> GetContext() const;
|
||||
v8::Local<v8::Promise> GetHandle() const;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue