| Index: Source/modules/crypto/CryptoResult.cpp
|
| diff --git a/Source/core/platform/chromium/support/WebCrypto.cpp b/Source/modules/crypto/CryptoResult.cpp
|
| similarity index 54%
|
| copy from Source/core/platform/chromium/support/WebCrypto.cpp
|
| copy to Source/modules/crypto/CryptoResult.cpp
|
| index cd4e17994c0a1e2ef82dac335249a385579ac96f..d2885527dc1e733361917d1427cb9569d9e01fed 100644
|
| --- a/Source/core/platform/chromium/support/WebCrypto.cpp
|
| +++ b/Source/modules/crypto/CryptoResult.cpp
|
| @@ -29,58 +29,68 @@
|
| */
|
|
|
| #include "config.h"
|
| +#include "modules/crypto/CryptoResult.h"
|
| +
|
| +#include "V8Key.h" // Must precede ScriptPromiseResolver.h
|
| +#include "bindings/v8/custom/V8ArrayBufferCustom.h" // Must precede ScriptPromiseResolver.h
|
| +#include "bindings/v8/ScriptPromiseResolver.h"
|
| +#include "modules/crypto/Key.h"
|
| +#include "modules/crypto/NormalizeAlgorithm.h"
|
| +#include "public/platform/Platform.h"
|
| #include "public/platform/WebArrayBuffer.h"
|
| #include "public/platform/WebCrypto.h"
|
| -#include <string.h>
|
| +#include "public/platform/WebCryptoAlgorithm.h"
|
| +#include "wtf/ArrayBufferView.h"
|
|
|
| -namespace WebKit {
|
| +namespace WebCore {
|
|
|
| -void WebCryptoResult::completeWithError()
|
| +CryptoResult::~CryptoResult()
|
| {
|
| - m_impl->completeWithError();
|
| - reset();
|
| + ASSERT(m_finished);
|
| }
|
|
|
| -void WebCryptoResult::completeWithBuffer(const WebArrayBuffer& buffer)
|
| +PassRefPtr<CryptoResult> CryptoResult::create()
|
| {
|
| - RELEASE_ASSERT(!buffer.isNull());
|
| - m_impl->completeWithBuffer(buffer);
|
| - reset();
|
| + return adoptRef(new CryptoResult);
|
| }
|
|
|
| -void WebCryptoResult::completeWithBuffer(const void* bytes, size_t bytesSize)
|
| +void CryptoResult::completeWithError()
|
| {
|
| - WebArrayBuffer buffer = WebKit::WebArrayBuffer::create(bytesSize, 1);
|
| - RELEASE_ASSERT(!buffer.isNull());
|
| - memcpy(buffer.data(), bytes, bytesSize);
|
| - completeWithBuffer(buffer);
|
| + m_promiseResolver->reject(ScriptValue::createNull());
|
| + finish();
|
| }
|
|
|
| -void WebCryptoResult::completeWithBoolean(bool b)
|
| +void CryptoResult::completeWithBuffer(const WebKit::WebArrayBuffer& buffer)
|
| {
|
| - m_impl->completeWithBoolean(b);
|
| - reset();
|
| + m_promiseResolver->fulfill(PassRefPtr<ArrayBuffer>(buffer));
|
| + finish();
|
| }
|
|
|
| -void WebCryptoResult::completeWithKey(const WebCryptoKey& key)
|
| +void CryptoResult::completeWithBoolean(bool b)
|
| {
|
| - m_impl->completeWithKey(key);
|
| - reset();
|
| + m_promiseResolver->fulfill(ScriptValue::createBoolean(b));
|
| + finish();
|
| }
|
|
|
| -void WebCryptoResult::reset()
|
| +void CryptoResult::completeWithKey(const WebKit::WebCryptoKey& key)
|
| {
|
| - m_impl.reset();
|
| + m_promiseResolver->fulfill(Key::create(key));
|
| + finish();
|
| }
|
|
|
| -void WebCryptoResult::assign(const WebCryptoResult& o)
|
| +ScriptObject CryptoResult::promise()
|
| {
|
| - m_impl = o.m_impl;
|
| + return m_promiseResolver->promise();
|
| }
|
|
|
| -void WebCryptoResult::assign(WebCryptoResultPrivate* impl)
|
| +CryptoResult::CryptoResult()
|
| + : m_promiseResolver(ScriptPromiseResolver::create())
|
| + , m_finished(false) { }
|
| +
|
| +void CryptoResult::finish()
|
| {
|
| - m_impl = impl;
|
| + ASSERT(!m_finished);
|
| + m_finished = true;
|
| }
|
|
|
| -} // namespace WebKit
|
| +} // namespace WebCore
|
|
|