Index: Source/modules/crypto/CryptoResult.h |
diff --git a/Source/core/workers/WorkerClients.h b/Source/modules/crypto/CryptoResult.h |
similarity index 67% |
copy from Source/core/workers/WorkerClients.h |
copy to Source/modules/crypto/CryptoResult.h |
index b362662a0aa6e53bc04529eb6b3d4954ef112e33..ae95b24d49ca7c22847e48e664527a0d6b9f7828 100644 |
--- a/Source/core/workers/WorkerClients.h |
+++ b/Source/modules/crypto/CryptoResult.h |
@@ -28,31 +28,45 @@ |
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
-#ifndef WorkerClients_h |
-#define WorkerClients_h |
+#ifndef CryptoResult_h |
+#define CryptoResult_h |
-#include "core/platform/Supplementable.h" |
+#include "bindings/v8/ScriptObject.h" |
+#include "public/platform/WebCrypto.h" |
#include "wtf/Forward.h" |
+#include "wtf/ThreadSafeRefCounted.h" |
namespace WebCore { |
-// This is created on the main thread, passed to the worker thread and |
-// attached to WorkerGlobalScope when it is created. |
-// This class can be used to provide "client" implementations to Workers. |
-class WorkerClients : public Supplementable<WorkerClients> { |
- WTF_MAKE_NONCOPYABLE(WorkerClients); |
+class ScriptPromiseResolver; |
+ |
+// Wrapper around a Promise to notify completion of the crypto operation. |
+class CryptoResult : public ThreadSafeRefCounted<CryptoResult> { |
public: |
- static PassOwnPtr<WorkerClients> create() |
+ ~CryptoResult(); |
+ |
+ static PassRefPtr<CryptoResult> create(); |
+ |
+ void completeWithError(); |
+ void completeWithBuffer(const WebKit::WebArrayBuffer&); |
+ void completeWithBoolean(bool); |
+ void completeWithKey(const WebKit::WebCryptoKey&); |
+ |
+ WebKit::WebCryptoResult result() |
{ |
- return adoptPtr(new WorkerClients()); |
+ return WebKit::WebCryptoResult(this); |
} |
- virtual ~WorkerClients() { } |
+ ScriptObject promise(); |
private: |
- WorkerClients() { } |
+ CryptoResult(); |
+ void finish(); |
+ |
+ RefPtr<ScriptPromiseResolver> m_promiseResolver; |
+ bool m_finished; |
}; |
} // namespace WebCore |
-#endif // WorkerClients_h |
+#endif |