| 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 13 matching lines...) Expand all  Loading... | 
| 24  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 
| 25  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 
| 26  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 
| 27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 
| 28  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
| 29  */ | 29  */ | 
| 30 | 30 | 
| 31 #ifndef CryptoOperation_h | 31 #ifndef CryptoOperation_h | 
| 32 #define CryptoOperation_h | 32 #define CryptoOperation_h | 
| 33 | 33 | 
| 34 #include "bindings/v8/ScriptObject.h" |  | 
| 35 #include "bindings/v8/ScriptWrappable.h" | 34 #include "bindings/v8/ScriptWrappable.h" | 
| 36 #include "modules/crypto/Algorithm.h" | 35 #include "modules/crypto/Algorithm.h" | 
| 37 #include "public/platform/WebCrypto.h" |  | 
| 38 #include "public/platform/WebCryptoAlgorithm.h" | 36 #include "public/platform/WebCryptoAlgorithm.h" | 
| 39 #include "wtf/Forward.h" | 37 #include "wtf/Forward.h" | 
| 40 #include "wtf/PassRefPtr.h" | 38 #include "wtf/PassRefPtr.h" | 
| 41 #include "wtf/RefCounted.h" | 39 #include "wtf/RefCounted.h" | 
| 42 | 40 | 
| 43 namespace WebCore { | 41 namespace WebCore { | 
| 44 | 42 | 
| 45 class ScriptPromiseResolver; |  | 
| 46 |  | 
| 47 typedef int ExceptionCode; | 43 typedef int ExceptionCode; | 
| 48 | 44 | 
| 49 class CryptoOperation : public ScriptWrappable, public RefCounted<CryptoOperatio
    n> { | 45 class CryptoOperation : public ScriptWrappable, public RefCounted<CryptoOperatio
    n> { | 
| 50 public: | 46 public: | 
| 51     ~CryptoOperation(); | 47     static PassRefPtr<CryptoOperation> create(const WebKit::WebCryptoAlgorithm& 
    algorithm) { return adoptRef(new CryptoOperation(algorithm)); } | 
| 52     static PassRefPtr<CryptoOperation> create(const WebKit::WebCryptoAlgorithm&,
     WebKit::WebCryptoOperation*); |  | 
| 53 |  | 
| 54     CryptoOperation* process(ArrayBuffer* data); |  | 
| 55     CryptoOperation* process(ArrayBufferView* data); |  | 
| 56 |  | 
| 57     ScriptObject finish(); |  | 
| 58     ScriptObject abort(); |  | 
| 59 | 48 | 
| 60     Algorithm* algorithm(); | 49     Algorithm* algorithm(); | 
| 61 | 50 | 
| 62 private: | 51 private: | 
| 63     class Result; | 52     explicit CryptoOperation(const WebKit::WebCryptoAlgorithm&); | 
| 64     friend class Result; |  | 
| 65 |  | 
| 66     enum State { |  | 
| 67         // Accepting calls to process(). |  | 
| 68         Processing, |  | 
| 69 |  | 
| 70         // finish() has been called, but the Promise has not been resolved yet. |  | 
| 71         Finishing, |  | 
| 72 |  | 
| 73         // The operation either: |  | 
| 74         //  - completed successfully |  | 
| 75         //  - failed |  | 
| 76         //  - was aborted |  | 
| 77         Done, |  | 
| 78     }; |  | 
| 79 |  | 
| 80     CryptoOperation(const WebKit::WebCryptoAlgorithm&, WebKit::WebCryptoOperatio
    n*); |  | 
| 81 |  | 
| 82     void process(const unsigned char*, size_t); |  | 
| 83 |  | 
| 84     ScriptPromiseResolver* promiseResolver(); |  | 
| 85 | 53 | 
| 86     WebKit::WebCryptoAlgorithm m_algorithm; | 54     WebKit::WebCryptoAlgorithm m_algorithm; | 
| 87     WebKit::WebCryptoOperation* m_impl; |  | 
| 88     RefPtr<Algorithm> m_algorithmNode; | 55     RefPtr<Algorithm> m_algorithmNode; | 
| 89     State m_state; |  | 
| 90 |  | 
| 91     RefPtr<ScriptPromiseResolver> m_promiseResolver; |  | 
| 92 |  | 
| 93     OwnPtr<Result> m_result; |  | 
| 94 }; | 56 }; | 
| 95 | 57 | 
| 96 } // namespace WebCore | 58 } // namespace WebCore | 
| 97 | 59 | 
| 98 #endif | 60 #endif | 
| OLD | NEW | 
|---|