Index: Source/modules/crypto/CryptoOperation.h |
diff --git a/Source/modules/crypto/CryptoOperation.h b/Source/modules/crypto/CryptoOperation.h |
deleted file mode 100644 |
index f3fcec5ca624d39be1c1c3e357e57477838bc3d6..0000000000000000000000000000000000000000 |
--- a/Source/modules/crypto/CryptoOperation.h |
+++ /dev/null |
@@ -1,148 +0,0 @@ |
-/* |
- * Copyright (C) 2013 Google Inc. All rights reserved. |
- * |
- * Redistribution and use in source and binary forms, with or without |
- * modification, are permitted provided that the following conditions are |
- * met: |
- * |
- * * Redistributions of source code must retain the above copyright |
- * notice, this list of conditions and the following disclaimer. |
- * * Redistributions in binary form must reproduce the above |
- * copyright notice, this list of conditions and the following disclaimer |
- * in the documentation and/or other materials provided with the |
- * distribution. |
- * * Neither the name of Google Inc. nor the names of its |
- * contributors may be used to endorse or promote products derived from |
- * this software without specific prior written permission. |
- * |
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
- */ |
- |
-#ifndef CryptoOperation_h |
-#define CryptoOperation_h |
- |
-#include "bindings/v8/ScriptObject.h" |
-#include "bindings/v8/ScriptWrappable.h" |
-#include "modules/crypto/Algorithm.h" |
-#include "public/platform/WebCrypto.h" |
-#include "public/platform/WebCryptoAlgorithm.h" |
-#include "wtf/Forward.h" |
-#include "wtf/PassRefPtr.h" |
-#include "wtf/ThreadSafeRefCounted.h" |
- |
-namespace WebCore { |
- |
-class ScriptPromiseResolver; |
-class ExceptionState; |
- |
-typedef int ExceptionCode; |
- |
-// CryptoOperation vs CryptoOperationImpl: |
-// |
-// A CryptoOperation corresponds with the request from JavaScript to start a |
-// multi-part cryptographic operation. This is forwarded to the Platform layer, |
-// which creates a WebCryptoOperation. When the WebCryptoOperation eventually |
-// completes, it resolves a Promise. |
-// |
-// To avoid a reference cycle between WebCryptoOperation and CryptoOperation, |
-// WebCryptoOperation's result handle holds a reference to |
-// CryptoOperationImpl rather than CryptoOperation. This prevents extending the |
-// lifetime of CryptoOperation beyond JavaScript garbage collection, which is |
-// important since: |
-// |
-// * When JavaScript garbage collects CryptoOperation and finish() has NOT |
-// been called on it, the Platform operation can no longer complete and |
-// should therefore be aborted. |
-// * The WebCryptoOperation may outlive CryptoOperation if finish() was |
-// called, as the result is delivered to a separate Promise (this is |
-// different than what the current version of the spec says). |
- |
-class CryptoOperationImpl : public WebKit::WebCryptoOperationResultPrivate, public ThreadSafeRefCounted<CryptoOperationImpl> { |
-public: |
- static PassRefPtr<CryptoOperationImpl> create() { return adoptRef(new CryptoOperationImpl); } |
- |
- bool throwInitializationError(ExceptionState&); |
- |
- // The CryptoOperation which started the request is getting destroyed. |
- void detach(); |
- |
- void process(const void* bytes, size_t); |
- |
- ScriptObject finish(); |
- ScriptObject abort(); |
- |
- // WebCryptoOperationResultPrivate implementation. |
- virtual void initializationFailed() OVERRIDE; |
- virtual void initializationSucceeded(WebKit::WebCryptoOperation*) OVERRIDE; |
- virtual void completeWithError() OVERRIDE; |
- virtual void completeWithArrayBuffer(const WebKit::WebArrayBuffer&) OVERRIDE; |
- virtual void completeWithBoolean(bool) OVERRIDE; |
- virtual void ref() OVERRIDE; |
- virtual void deref() OVERRIDE; |
- |
-private: |
- enum State { |
- // Constructing the WebCryptoOperationImpl. |
- Initializing, |
- |
- // Accepting calls to process(). |
- Processing, |
- |
- // finish() has been called, but the Promise has not been resolved yet. |
- Finishing, |
- |
- // The operation either: |
- // - completed successfully |
- // - failed |
- // - was aborted |
- Done, |
- }; |
- |
- CryptoOperationImpl(); |
- |
- ScriptPromiseResolver* promiseResolver(); |
- |
- State m_state; |
- |
- WebKit::WebCryptoOperation* m_impl; |
- RefPtr<ScriptPromiseResolver> m_promiseResolver; |
- ExceptionCode m_initializationError; |
-}; |
- |
-class CryptoOperation : public ScriptWrappable, public RefCounted<CryptoOperation> { |
-public: |
- ~CryptoOperation(); |
- static PassRefPtr<CryptoOperation> create(const WebKit::WebCryptoAlgorithm&, CryptoOperationImpl*); |
- |
- CryptoOperation* process(ArrayBuffer* data); |
- CryptoOperation* process(ArrayBufferView* data); |
- |
- ScriptObject finish(); |
- ScriptObject abort(); |
- |
- Algorithm* algorithm(); |
- |
- CryptoOperationImpl* impl() { return m_impl.get(); } |
- |
-private: |
- explicit CryptoOperation(const WebKit::WebCryptoAlgorithm&, CryptoOperationImpl*); |
- |
- WebKit::WebCryptoAlgorithm m_algorithm; |
- RefPtr<Algorithm> m_algorithmNode; |
- |
- RefPtr<CryptoOperationImpl> m_impl; |
-}; |
- |
-} // namespace WebCore |
- |
-#endif |