Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(694)

Unified Diff: third_party/WebKit/Source/modules/encryptedmedia/ContentDecryptionModuleResultPromise.cpp

Issue 2342953002: Update EME errors to use TypeError (Closed)
Patch Set: rebase on promise changes Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/encryptedmedia/ContentDecryptionModuleResultPromise.cpp
diff --git a/third_party/WebKit/Source/modules/encryptedmedia/ContentDecryptionModuleResultPromise.cpp b/third_party/WebKit/Source/modules/encryptedmedia/ContentDecryptionModuleResultPromise.cpp
index f11d53c995df455a5240b45d56fc9d09fd9bc82a..fcb793a42d47f87d14ffdc9e037f740a2f19ddbf 100644
--- a/third_party/WebKit/Source/modules/encryptedmedia/ContentDecryptionModuleResultPromise.cpp
+++ b/third_party/WebKit/Source/modules/encryptedmedia/ContentDecryptionModuleResultPromise.cpp
@@ -6,6 +6,7 @@
#include "bindings/core/v8/ScriptPromise.h"
#include "bindings/core/v8/ScriptState.h"
+#include "bindings/core/v8/V8ThrowException.h"
#include "core/dom/DOMException.h"
#include "core/dom/ExecutionContext.h"
#include "core/dom/ExecutionContextTask.h"
@@ -17,22 +18,16 @@ namespace blink {
ExceptionCode WebCdmExceptionToExceptionCode(
WebContentDecryptionModuleException cdmException) {
switch (cdmException) {
+ case WebContentDecryptionModuleExceptionTypeError:
+ return V8TypeError;
case WebContentDecryptionModuleExceptionNotSupportedError:
return NotSupportedError;
case WebContentDecryptionModuleExceptionInvalidStateError:
return InvalidStateError;
- case WebContentDecryptionModuleExceptionInvalidAccessError:
- return InvalidAccessError;
case WebContentDecryptionModuleExceptionQuotaExceededError:
return QuotaExceededError;
case WebContentDecryptionModuleExceptionUnknownError:
return UnknownError;
- case WebContentDecryptionModuleExceptionClientError:
- case WebContentDecryptionModuleExceptionOutputError:
- // Currently no matching DOMException for these 2 errors.
- // FIXME: Update DOMException to handle these if actually added to
- // the EME spec.
- return UnknownError;
}
NOTREACHED();
@@ -98,7 +93,15 @@ void ContentDecryptionModuleResultPromise::reject(ExceptionCode code,
const String& errorMessage) {
DCHECK(isValidToFulfillPromise());
- m_resolver->reject(DOMException::create(code, errorMessage));
+ if (code == V8TypeError) {
haraken 2016/10/15 01:30:46 Can you just use V8ThrowException::createDOMExcept
jrummell 2016/10/17 18:57:24 Done.
+ ScriptState::Scope scope(m_resolver->getScriptState());
jrummell 2016/10/14 20:43:47 Without this line I get a crash in v8::internal::H
haraken 2016/10/15 01:30:46 Yes, this is needed.
+ v8::Isolate* isolate = m_resolver->getScriptState()->isolate();
+ m_resolver->reject(
+ V8ThrowException::createTypeError(isolate, errorMessage));
+ } else {
+ m_resolver->reject(DOMException::create(code, errorMessage));
+ }
+
m_resolver.clear();
}

Powered by Google App Engine
This is Rietveld 408576698