Index: Source/modules/serviceworkers/Cache.cpp |
diff --git a/Source/modules/serviceworkers/Cache.cpp b/Source/modules/serviceworkers/Cache.cpp |
index 0febcd26576b300fa3a8bf264ef1887ca17e94a1..92b562954805c5581f8606fbb1cc840e8cd60dd7 100644 |
--- a/Source/modules/serviceworkers/Cache.cpp |
+++ b/Source/modules/serviceworkers/Cache.cpp |
@@ -6,9 +6,9 @@ |
#include "modules/serviceworkers/Cache.h" |
#include "bindings/core/v8/Dictionary.h" |
+#include "bindings/core/v8/ExceptionState.h" |
#include "bindings/core/v8/ScriptPromiseResolver.h" |
#include "bindings/core/v8/ScriptState.h" |
-#include "bindings/core/v8/V8ThrowException.h" |
#include "core/dom/DOMException.h" |
#include "modules/serviceworkers/Request.h" |
#include "modules/serviceworkers/Response.h" |
@@ -114,12 +114,10 @@ private: |
RefPtr<ScriptPromiseResolver> m_resolver; |
}; |
-ScriptPromise rejectAsNotImplemented(ScriptState* scriptState) |
+ScriptPromise rejectAsNotImplemented(ExceptionState& exceptionState) |
{ |
- RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState); |
- const ScriptPromise promise = resolver->promise(); |
- resolver->reject(DOMException::create(NotSupportedError, "Cache is not implemented")); |
- return promise; |
+ exceptionState.throwDOMException(NotSupportedError, "Cache is not implemented"); |
+ return ScriptPromise(); |
} |
} // namespace |
@@ -135,143 +133,109 @@ Cache::~Cache() |
{ |
} |
-ScriptPromise Cache::match(ScriptState* scriptState, Request* originalRequest, const Dictionary& queryParamsDict) |
+ScriptPromise Cache::match(ScriptState* scriptState, Request* originalRequest, const Dictionary& queryParamsDict, ExceptionState& exceptionState) |
{ |
- TrackExceptionState exceptionState; |
RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->executionContext(), originalRequest, exceptionState); |
if (exceptionState.hadException()) |
- return ScriptPromise::reject(scriptState, V8ThrowException::createTypeError(exceptionState.message(), scriptState->isolate())); |
- // return ScriptPromise::reject(DOMException::create(NotFoundError, "The specified Service Worker resource was not found.")); |
+ return ScriptPromise(); |
return matchImpl(scriptState, request, queryParamsDict); |
} |
-ScriptPromise Cache::match(ScriptState* scriptState, const String& requestString, const Dictionary& queryParamsDict) |
+ScriptPromise Cache::match(ScriptState* scriptState, const String& requestString, const Dictionary& queryParamsDict, ExceptionState& exceptionState) |
{ |
- TrackExceptionState exceptionState; |
RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->executionContext(), requestString, exceptionState); |
if (exceptionState.hadException()) |
- return ScriptPromise::reject(scriptState, V8ThrowException::createTypeError(exceptionState.message(), scriptState->isolate())); |
- // return ScriptPromise::reject(DOMException::create(NotFoundError, "The specified Service Worker resource was not found.")); |
+ return ScriptPromise(); |
return matchImpl(scriptState, request, queryParamsDict); |
} |
-ScriptPromise Cache::matchAll(ScriptState* scriptState, Request* originalRequest, const Dictionary& queryParamsDict) |
+ScriptPromise Cache::matchAll(ScriptState* scriptState, Request* originalRequest, const Dictionary& queryParamsDict, ExceptionState& exceptionState) |
{ |
- TrackExceptionState exceptionState; |
RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->executionContext(), originalRequest, exceptionState); |
- if (exceptionState.hadException()) { |
- // FIXME: We should throw the caught error. |
- return ScriptPromise::reject(scriptState, V8ThrowException::createTypeError(exceptionState.message(), scriptState->isolate())); |
- } |
+ if (exceptionState.hadException()) |
+ return ScriptPromise(); |
return matchAllImpl(scriptState, request, queryParamsDict); |
} |
-ScriptPromise Cache::matchAll(ScriptState* scriptState, const String& requestString, const Dictionary& queryParamsDict) |
+ScriptPromise Cache::matchAll(ScriptState* scriptState, const String& requestString, const Dictionary& queryParamsDict, ExceptionState& exceptionState) |
{ |
- TrackExceptionState exceptionState; |
RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->executionContext(), requestString, exceptionState); |
- if (exceptionState.hadException()) { |
- // FIXME: We should throw the caught error. |
- return ScriptPromise::reject(scriptState, V8ThrowException::createTypeError(exceptionState.message(), scriptState->isolate())); |
- } |
+ if (exceptionState.hadException()) |
+ return ScriptPromise(); |
return matchAllImpl(scriptState, request, queryParamsDict); |
} |
-ScriptPromise Cache::add(ScriptState* scriptState, Request* originalRequest) |
+ScriptPromise Cache::add(ScriptState* scriptState, Request* originalRequest, ExceptionState& exceptionState) |
{ |
- TrackExceptionState exceptionState; |
RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->executionContext(), originalRequest, exceptionState); |
- if (exceptionState.hadException()) { |
- // FIXME: We should throw the caught error. |
- return ScriptPromise::reject(scriptState, V8ThrowException::createTypeError(exceptionState.message(), scriptState->isolate())); |
- } |
- return addImpl(scriptState, request); |
+ if (exceptionState.hadException()) |
+ return ScriptPromise(); |
+ return addImpl(scriptState, request, exceptionState); |
} |
-ScriptPromise Cache::add(ScriptState* scriptState, const String& requestString) |
+ScriptPromise Cache::add(ScriptState* scriptState, const String& requestString, ExceptionState& exceptionState) |
{ |
- TrackExceptionState exceptionState; |
RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->executionContext(), requestString, exceptionState); |
- if (exceptionState.hadException()) { |
- // FIXME: We should throw the caught error. |
- return ScriptPromise::reject(scriptState, V8ThrowException::createTypeError(exceptionState.message(), scriptState->isolate())); |
- } |
- return addImpl(scriptState, request); |
+ if (exceptionState.hadException()) |
+ return ScriptPromise(); |
+ return addImpl(scriptState, request, exceptionState); |
} |
-ScriptPromise Cache::addAll(ScriptState* scriptState, const Vector<ScriptValue>& rawRequests) |
+ScriptPromise Cache::addAll(ScriptState* scriptState, const Vector<ScriptValue>& rawRequests, ExceptionState& exceptionState) |
{ |
- return rejectAsNotImplemented(scriptState); |
+ return rejectAsNotImplemented(exceptionState); |
} |
-ScriptPromise Cache::deleteFunction(ScriptState* scriptState, Request* originalRequest, const Dictionary& queryParamsDict) |
+ScriptPromise Cache::deleteFunction(ScriptState* scriptState, Request* originalRequest, const Dictionary& queryParamsDict, ExceptionState& exceptionState) |
{ |
- TrackExceptionState exceptionState; |
RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->executionContext(), originalRequest, exceptionState); |
- if (exceptionState.hadException()) { |
- // FIXME: We should throw the caught error. |
- return ScriptPromise::reject(scriptState, V8ThrowException::createTypeError(exceptionState.message(), scriptState->isolate())); |
- } |
+ if (exceptionState.hadException()) |
+ return ScriptPromise(); |
return deleteImpl(scriptState, request, queryParamsDict); |
} |
-ScriptPromise Cache::deleteFunction(ScriptState* scriptState, const String& requestString, const Dictionary& queryParamsDict) |
+ScriptPromise Cache::deleteFunction(ScriptState* scriptState, const String& requestString, const Dictionary& queryParamsDict, ExceptionState& exceptionState) |
{ |
- TrackExceptionState exceptionState; |
RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->executionContext(), requestString, exceptionState); |
- if (exceptionState.hadException()) { |
- // FIXME: We should throw the caught error. |
- return ScriptPromise::reject(scriptState, V8ThrowException::createTypeError(exceptionState.message(), scriptState->isolate())); |
- } |
+ if (exceptionState.hadException()) |
+ return ScriptPromise(); |
return deleteImpl(scriptState, request, queryParamsDict); |
} |
-ScriptPromise Cache::put(ScriptState* scriptState, Request* originalRequest, Response* response) |
+ScriptPromise Cache::put(ScriptState* scriptState, Request* originalRequest, Response* response, ExceptionState& exceptionState) |
{ |
- TrackExceptionState exceptionState; |
RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->executionContext(), originalRequest, exceptionState); |
- if (exceptionState.hadException()) { |
- // FIXME: We should throw the caught error. |
- return ScriptPromise::reject(scriptState, V8ThrowException::createTypeError(exceptionState.message(), scriptState->isolate())); |
- } |
+ if (exceptionState.hadException()) |
+ return ScriptPromise(); |
return putImpl(scriptState, request, response); |
} |
-ScriptPromise Cache::put(ScriptState* scriptState, const String& requestString, Response* response) |
+ScriptPromise Cache::put(ScriptState* scriptState, const String& requestString, Response* response, ExceptionState& exceptionState) |
{ |
- TrackExceptionState exceptionState; |
RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->executionContext(), requestString, exceptionState); |
- if (exceptionState.hadException()) { |
- // FIXME: We should throw the caught error. |
- return ScriptPromise::reject(scriptState, V8ThrowException::createTypeError(exceptionState.message(), scriptState->isolate())); |
- } |
+ if (exceptionState.hadException()) |
+ return ScriptPromise(); |
return putImpl(scriptState, request, response); |
} |
-ScriptPromise Cache::keys(ScriptState* scriptState) |
+ScriptPromise Cache::keys(ScriptState* scriptState, ExceptionState& exceptionState) |
{ |
return keysImpl(scriptState, RefPtrWillBeRawPtr<Request>(), Dictionary()); |
} |
-ScriptPromise Cache::keys(ScriptState* scriptState, Request* originalRequest, const Dictionary& queryParamsDict) |
+ScriptPromise Cache::keys(ScriptState* scriptState, Request* originalRequest, const Dictionary& queryParamsDict, ExceptionState& exceptionState) |
{ |
- TrackExceptionState exceptionState; |
RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->executionContext(), originalRequest, exceptionState); |
- if (exceptionState.hadException()) { |
- // FIXME: We should throw the caught error. |
- return ScriptPromise::reject(scriptState, V8ThrowException::createTypeError(exceptionState.message(), scriptState->isolate())); |
- } |
+ if (exceptionState.hadException()) |
+ return ScriptPromise(); |
return keysImpl(scriptState); |
} |
-ScriptPromise Cache::keys(ScriptState* scriptState, const String& requestString, const Dictionary& queryParamsDict) |
+ScriptPromise Cache::keys(ScriptState* scriptState, const String& requestString, const Dictionary& queryParamsDict, ExceptionState& exceptionState) |
{ |
- TrackExceptionState exceptionState; |
RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->executionContext(), requestString, exceptionState); |
- if (exceptionState.hadException()) { |
- // FIXME: We should throw the caught error. |
- return ScriptPromise::reject(scriptState, V8ThrowException::createTypeError(exceptionState.message(), scriptState->isolate())); |
- } |
+ if (exceptionState.hadException()) |
+ return ScriptPromise(); |
return keysImpl(scriptState, request, queryParamsDict); |
} |
@@ -309,14 +273,14 @@ ScriptPromise Cache::matchAllImpl(ScriptState* scriptState, PassRefPtrWillBeRawP |
return promise; |
} |
-ScriptPromise Cache::addImpl(ScriptState* scriptState, PassRefPtrWillBeRawPtr<Request>) |
+ScriptPromise Cache::addImpl(ScriptState* scriptState, PassRefPtrWillBeRawPtr<Request>, ExceptionState& exceptionState) |
{ |
- return rejectAsNotImplemented(scriptState); |
+ return rejectAsNotImplemented(exceptionState); |
} |
-ScriptPromise Cache::addAllImpl(ScriptState* scriptState, Vector<RefPtrWillBeRawPtr<Request> >) |
+ScriptPromise Cache::addAllImpl(ScriptState* scriptState, Vector<RefPtrWillBeRawPtr<Request> >, ExceptionState& exceptionState) |
{ |
- return rejectAsNotImplemented(scriptState); |
+ return rejectAsNotImplemented(exceptionState); |
} |
PassRefPtrWillBeRawPtr<DOMException> Cache::domExceptionForCacheError(WebServiceWorkerCacheError reason) |