chore: make util::Promise a move-only type (#17071)

This commit is contained in:
Cheng Zhao 2019-02-21 12:32:44 +00:00 committed by GitHub
parent a40d826b11
commit 32a4de4a68
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
29 changed files with 325 additions and 260 deletions

View file

@ -44,12 +44,12 @@ struct Converter<base::win::ShortcutOperation> {
namespace {
void OnOpenExternalFinished(scoped_refptr<atom::util::Promise> promise,
void OnOpenExternalFinished(atom::util::Promise promise,
const std::string& error) {
if (error.empty())
promise->Resolve();
promise.Resolve();
else
promise->RejectWithErrorMessage(error.c_str());
promise.RejectWithErrorMessage(error.c_str());
}
bool OpenExternalSync(
@ -78,8 +78,7 @@ v8::Local<v8::Promise> OpenExternal(
const GURL& url,
#endif
mate::Arguments* args) {
scoped_refptr<atom::util::Promise> promise =
new atom::util::Promise(args->isolate());
atom::util::Promise promise(args->isolate());
platform_util::OpenExternalOptions options;
if (args->Length() >= 2) {
@ -90,10 +89,11 @@ v8::Local<v8::Promise> OpenExternal(
}
}
platform_util::OpenExternal(url, options,
base::Bind(&OnOpenExternalFinished, promise));
return promise->GetHandle();
v8::Local<v8::Promise> handle = promise.GetHandle();
platform_util::OpenExternal(
url, options,
base::BindOnce(&OnOpenExternalFinished, std::move(promise)));
return handle;
}
#if defined(OS_WIN)