| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 m_promiseResolver->reject(DOMException::create(webCryptoErrorToException
Code(errorType), errorDetails)); | 108 m_promiseResolver->reject(DOMException::create(webCryptoErrorToException
Code(errorType), errorDetails)); |
| 109 delete this; | 109 delete this; |
| 110 } | 110 } |
| 111 | 111 |
| 112 void completeWithBuffer(const blink::WebArrayBuffer& buffer) | 112 void completeWithBuffer(const blink::WebArrayBuffer& buffer) |
| 113 { | 113 { |
| 114 m_promiseResolver->resolve(PassRefPtr<ArrayBuffer>(buffer)); | 114 m_promiseResolver->resolve(PassRefPtr<ArrayBuffer>(buffer)); |
| 115 delete this; | 115 delete this; |
| 116 } | 116 } |
| 117 | 117 |
| 118 void completeWithJson(const char* utf8Data, unsigned length) |
| 119 { |
| 120 ScriptState* scriptState = m_promiseResolver->scriptState(); |
| 121 ScriptState::Scope scope(scriptState); |
| 122 |
| 123 v8::Handle<v8::String> jsonString = v8::String::NewFromUtf8(scriptState-
>isolate(), utf8Data, v8::String::kInternalizedString, length); |
| 124 |
| 125 v8::TryCatch exceptionCatcher; |
| 126 v8::Handle<v8::Value> jsonDictionary = v8::JSON::Parse(jsonString); |
| 127 if (exceptionCatcher.HasCaught() || jsonDictionary.IsEmpty()) { |
| 128 ASSERT_NOT_REACHED(); |
| 129 m_promiseResolver->reject(DOMException::create(OperationError, "Fail
ed inflating JWK JSON to object")); |
| 130 } else { |
| 131 m_promiseResolver->resolve(jsonDictionary); |
| 132 } |
| 133 delete this; |
| 134 } |
| 135 |
| 118 void completeWithBoolean(bool b) | 136 void completeWithBoolean(bool b) |
| 119 { | 137 { |
| 120 m_promiseResolver->resolve(b); | 138 m_promiseResolver->resolve(b); |
| 121 delete this; | 139 delete this; |
| 122 } | 140 } |
| 123 | 141 |
| 124 void completeWithKey(const blink::WebCryptoKey& key) | 142 void completeWithKey(const blink::WebCryptoKey& key) |
| 125 { | 143 { |
| 126 m_promiseResolver->resolve(Key::create(key)); | 144 m_promiseResolver->resolve(Key::create(key)); |
| 127 delete this; | 145 delete this; |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 if (m_promiseState) | 203 if (m_promiseState) |
| 186 m_promiseState->completeWithError(errorType, errorDetails); | 204 m_promiseState->completeWithError(errorType, errorDetails); |
| 187 } | 205 } |
| 188 | 206 |
| 189 void CryptoResultImpl::completeWithBuffer(const blink::WebArrayBuffer& buffer) | 207 void CryptoResultImpl::completeWithBuffer(const blink::WebArrayBuffer& buffer) |
| 190 { | 208 { |
| 191 if (m_promiseState) | 209 if (m_promiseState) |
| 192 m_promiseState->completeWithBuffer(buffer); | 210 m_promiseState->completeWithBuffer(buffer); |
| 193 } | 211 } |
| 194 | 212 |
| 213 void CryptoResultImpl::completeWithJson(const char* utf8Data, unsigned length) |
| 214 { |
| 215 if (m_promiseState) |
| 216 m_promiseState->completeWithJson(utf8Data, length); |
| 217 } |
| 218 |
| 195 void CryptoResultImpl::completeWithBoolean(bool b) | 219 void CryptoResultImpl::completeWithBoolean(bool b) |
| 196 { | 220 { |
| 197 if (m_promiseState) | 221 if (m_promiseState) |
| 198 m_promiseState->completeWithBoolean(b); | 222 m_promiseState->completeWithBoolean(b); |
| 199 } | 223 } |
| 200 | 224 |
| 201 void CryptoResultImpl::completeWithKey(const blink::WebCryptoKey& key) | 225 void CryptoResultImpl::completeWithKey(const blink::WebCryptoKey& key) |
| 202 { | 226 { |
| 203 if (m_promiseState) | 227 if (m_promiseState) |
| 204 m_promiseState->completeWithKey(key); | 228 m_promiseState->completeWithKey(key); |
| 205 } | 229 } |
| 206 | 230 |
| 207 void CryptoResultImpl::completeWithKeyPair(const blink::WebCryptoKey& publicKey,
const blink::WebCryptoKey& privateKey) | 231 void CryptoResultImpl::completeWithKeyPair(const blink::WebCryptoKey& publicKey,
const blink::WebCryptoKey& privateKey) |
| 208 { | 232 { |
| 209 if (m_promiseState) | 233 if (m_promiseState) |
| 210 m_promiseState->completeWithKeyPair(publicKey, privateKey); | 234 m_promiseState->completeWithKeyPair(publicKey, privateKey); |
| 211 } | 235 } |
| 212 | 236 |
| 213 CryptoResultImpl::CryptoResultImpl(ScriptState* scriptState) | 237 CryptoResultImpl::CryptoResultImpl(ScriptState* scriptState) |
| 214 : m_promiseState(PromiseState::create(scriptState)) | 238 : m_promiseState(PromiseState::create(scriptState)) |
| 215 { | 239 { |
| 216 } | 240 } |
| 217 | 241 |
| 218 ScriptPromise CryptoResultImpl::promise() | 242 ScriptPromise CryptoResultImpl::promise() |
| 219 { | 243 { |
| 220 return m_promiseState->promise(); | 244 return m_promiseState->promise(); |
| 221 } | 245 } |
| 222 | 246 |
| 223 } // namespace WebCore | 247 } // namespace WebCore |
| OLD | NEW |