Index: Source/modules/crypto/KeyOperation.h |
diff --git a/Source/modules/crypto/SubtleCrypto.h b/Source/modules/crypto/KeyOperation.h |
similarity index 61% |
copy from Source/modules/crypto/SubtleCrypto.h |
copy to Source/modules/crypto/KeyOperation.h |
index d3cf99000b662102e872e99d272109f189f1da90..f5e96ff6d40cf77b1aea61d7e5e51a5f42be9199 100644 |
--- a/Source/modules/crypto/SubtleCrypto.h |
+++ b/Source/modules/crypto/KeyOperation.h |
@@ -28,33 +28,59 @@ |
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
-#ifndef SubtleCrypto_h |
-#define SubtleCrypto_h |
+#ifndef KeyOperation_h |
+#define KeyOperation_h |
-#include "bindings/v8/ScriptWrappable.h" |
+#include "bindings/v8/ScriptObject.h" |
#include "wtf/Forward.h" |
#include "wtf/PassRefPtr.h" |
-#include "wtf/RefCounted.h" |
+#include "wtf/RefPtr.h" |
+#include "wtf/ThreadSafeRefCounted.h" |
+ |
+namespace WebKit { |
+class WebCryptoKeyOperation; |
+class WebCryptoKey; |
+} |
namespace WebCore { |
-class CryptoOperation; |
-class Dictionary; |
class ExceptionState; |
+class ScriptPromiseResolver; |
+ |
+typedef int ExceptionCode; |
-class SubtleCrypto : public ScriptWrappable, public RefCounted<SubtleCrypto> { |
+// todo: m_exceptionCode |
+// create the promise resolver. |
+ |
+class KeyOperation : public ThreadSafeRefCounted<KeyOperation> { |
public: |
- static PassRefPtr<SubtleCrypto> create() { return adoptRef(new SubtleCrypto()); } |
+ static PassRefPtr<KeyOperation> create(); |
+ |
+ ~KeyOperation(); |
- PassRefPtr<CryptoOperation> encrypt(const Dictionary&, ExceptionState&); |
- PassRefPtr<CryptoOperation> decrypt(const Dictionary&, ExceptionState&); |
- PassRefPtr<CryptoOperation> sign(const Dictionary&, ExceptionState&); |
- // Note that this is not named "verify" because when compiling on Mac that expands to a macro and breaks. |
- PassRefPtr<CryptoOperation> verifySignature(const Dictionary&, ExceptionState&); |
- PassRefPtr<CryptoOperation> digest(const Dictionary&, ExceptionState&); |
+ // Implementation of WebKit::WebCryptoKeyOperationResult. |
+ void initializationFailed(); |
+ void initializationSucceeded(WebKit::WebCryptoKeyOperation*); |
+ void completeWithError(); |
+ void completeWithKey(const WebKit::WebCryptoKey&); |
+ |
+ ScriptObject returnValue(ExceptionState&); |
private: |
- SubtleCrypto(); |
+ enum State { |
+ Initializing, |
+ InProgress, |
+ Done, |
+ }; |
+ |
+ KeyOperation(); |
+ |
+ ScriptPromiseResolver* promiseResolver(); |
+ |
+ State m_state; |
+ WebKit::WebCryptoKeyOperation* m_impl; |
+ ExceptionCode m_exceptionCode; |
+ RefPtr<ScriptPromiseResolver> m_promiseResolver; |
}; |
} // namespace WebCore |