Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(388)

Unified Diff: Source/bindings/v8/ScriptPromiseResolverWithContext.h

Issue 236673003: [WebCrypto] Use ScriptPromiseResolverWithContext. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | Source/modules/crypto/CryptoResultImpl.h » ('j') | Source/modules/crypto/CryptoResultImpl.h » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/bindings/v8/ScriptPromiseResolverWithContext.h
diff --git a/Source/bindings/v8/ScriptPromiseResolverWithContext.h b/Source/bindings/v8/ScriptPromiseResolverWithContext.h
index f373fa9f3e1347a6ea148a86c18c3db1f09632ff..dd429b5759b40aff93db554e1fcf0eb2c18eba97 100644
--- a/Source/bindings/v8/ScriptPromiseResolverWithContext.h
+++ b/Source/bindings/v8/ScriptPromiseResolverWithContext.h
@@ -30,6 +30,10 @@ namespace WebCore {
class ScriptPromiseResolverWithContext FINAL : public ActiveDOMObject, public RefCounted<ScriptPromiseResolverWithContext> {
WTF_MAKE_NONCOPYABLE(ScriptPromiseResolverWithContext);
+ class NullType {
+ };
+ class UndefinedType {
+ };
public:
static PassRefPtr<ScriptPromiseResolverWithContext> create(NewScriptState* scriptState)
{
@@ -38,6 +42,8 @@ public:
return resolver.release();
}
+ // Anything that can be passed to one of toV8 functions defined in this
eroman 2014/04/17 02:25:46 "one of toV8" --> "one of the toV8"
+ // class can be passed to this function.
template <typename T>
void resolve(T value)
{
@@ -50,6 +56,8 @@ public:
resolveOrRejectImmediately(&m_timer);
}
+ // Anything that can be passed to one of toV8 functions defined in this
eroman 2014/04/17 02:25:46 "one of toV8" --> "one of the toV8"
+ // class can be passed to this function.
template <typename T>
void reject(T value)
{
@@ -62,6 +70,14 @@ public:
resolveOrRejectImmediately(&m_timer);
}
+ // null and undefined can be passed to resolve and reject functions.
+ static NullType null() { return NullType(); }
+ static UndefinedType undefined() { return UndefinedType(); }
+ struct Boolean {
+ explicit Boolean(bool value) : value(value) { }
+ const bool value;
+ };
+
// Note that an empty ScriptPromise will be returned after resolve or
// reject is called.
ScriptPromise promise()
@@ -103,6 +119,28 @@ private:
{
return value.v8Value();
}
+ v8::Handle<v8::Value> toV8(v8::Handle<v8::Value> value) { return value; }
+ v8::Handle<v8::Value> toV8(NullType) { return v8::Null(m_scriptState->isolate()); }
+ v8::Handle<v8::Value> toV8(UndefinedType) { return v8::Undefined(m_scriptState->isolate()); }
+ // We don't define toV8(bool) to avoid implicit conversion.
+ v8::Handle<v8::Value> toV8(Boolean value) { return v8::Boolean::New(m_scriptState->isolate(), value.value); }
+ v8::Handle<v8::Value> toV8(int8_t value) { return v8::Integer::New(m_scriptState->isolate(), value); }
+ v8::Handle<v8::Value> toV8(uint8_t value) { return v8::Integer::New(m_scriptState->isolate(), value); }
+ v8::Handle<v8::Value> toV8(int16_t value) { return v8::Integer::New(m_scriptState->isolate(), value); }
+ v8::Handle<v8::Value> toV8(uint16_t value) { return v8::Integer::New(m_scriptState->isolate(), value); }
+ v8::Handle<v8::Value> toV8(int32_t value) { return v8::Integer::New(m_scriptState->isolate(), value); }
+ v8::Handle<v8::Value> toV8(uint32_t value) { return v8::Number::New(m_scriptState->isolate(), value); }
+ v8::Handle<v8::Value> toV8(int64_t value) { return v8::Number::New(m_scriptState->isolate(), value); }
+ v8::Handle<v8::Value> toV8(uint64_t value) { return v8::Number::New(m_scriptState->isolate(), value); }
+ v8::Handle<v8::Value> toV8(double value) { return v8::Number::New(m_scriptState->isolate(), value); }
+ v8::Handle<v8::Value> toV8(const char* value)
+ {
+ return v8::String::NewFromUtf8(m_scriptState->isolate(), value, v8::String::kInternalizedString, strlen(value));
+ }
+ v8::Handle<v8::Value> toV8(const String& value)
+ {
+ return v8String(m_scriptState->isolate(), value);
+ }
void resolveOrRejectImmediately(Timer<ScriptPromiseResolverWithContext>*);
void clear();
« no previous file with comments | « no previous file | Source/modules/crypto/CryptoResultImpl.h » ('j') | Source/modules/crypto/CryptoResultImpl.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698