Index: third_party/WebKit/Source/modules/budget/BudgetService.cpp |
diff --git a/third_party/WebKit/Source/modules/budget/BudgetService.cpp b/third_party/WebKit/Source/modules/budget/BudgetService.cpp |
index f73c60acc7cec39867661300830a6427db08f047..9a7833380413fbc875992d57455d778448b5dfc5 100644 |
--- a/third_party/WebKit/Source/modules/budget/BudgetService.cpp |
+++ b/third_party/WebKit/Source/modules/budget/BudgetService.cpp |
@@ -59,6 +59,10 @@ ScriptPromise BudgetService::getCost(ScriptState* scriptState, const AtomicStrin |
{ |
DCHECK(m_service); |
+ String errorMessage; |
+ if (!scriptState->getExecutionContext()->isSecureContext(errorMessage)) |
+ return ScriptPromise::rejectWithDOMException(scriptState, DOMException::create(SecurityError, errorMessage)); |
+ |
mojom::blink::BudgetOperationType type = stringToOperationType(operation); |
if (type == mojom::blink::BudgetOperationType::INVALID_OPERATION) |
return ScriptPromise::rejectWithDOMException(scriptState, DOMException::create(NotSupportedError, "Invalid operation type specified")); |
@@ -80,12 +84,15 @@ ScriptPromise BudgetService::getBudget(ScriptState* scriptState) |
{ |
DCHECK(m_service); |
+ String errorMessage; |
+ if (!scriptState->getExecutionContext()->isSecureContext(errorMessage)) |
+ return ScriptPromise::rejectWithDOMException(scriptState, DOMException::create(SecurityError, errorMessage)); |
+ |
ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState); |
ScriptPromise promise = resolver->promise(); |
// Get the budget from the browser BudgetService. |
RefPtr<SecurityOrigin> origin(scriptState->getExecutionContext()->getSecurityOrigin()); |
- // TODO(harkness): Check that this is a valid secure origin. |
m_service->GetBudget(origin, convertToBaseCallback(WTF::bind(&BudgetService::gotBudget, wrapPersistent(this), wrapPersistent(resolver)))); |
return promise; |
} |
@@ -113,12 +120,15 @@ ScriptPromise BudgetService::reserve(ScriptState* scriptState, const AtomicStrin |
if (type == mojom::blink::BudgetOperationType::INVALID_OPERATION) |
return ScriptPromise::rejectWithDOMException(scriptState, DOMException::create(NotSupportedError, "Invalid operation type specified")); |
+ String errorMessage; |
+ if (!scriptState->getExecutionContext()->isSecureContext(errorMessage)) |
+ return ScriptPromise::rejectWithDOMException(scriptState, DOMException::create(SecurityError, errorMessage)); |
+ |
ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState); |
ScriptPromise promise = resolver->promise(); |
// Call to the BudgetService to place the reservation. |
RefPtr<SecurityOrigin> origin(scriptState->getExecutionContext()->getSecurityOrigin()); |
- // TODO(harkness): Check that this is a valid secure origin. |
m_service->Reserve(origin, type, convertToBaseCallback(WTF::bind(&BudgetService::gotReservation, wrapPersistent(this), wrapPersistent(resolver)))); |
return promise; |
} |