From d1021ec94a6bcc543f94c3398979c82961ac3c86 Mon Sep 17 00:00:00 2001 From: Shawn Huang Date: Mon, 17 Apr 2017 15:07:15 +0800 Subject: [PATCH] Bug 1348874 - If origin is an opaque origin, reject promise with a TypeError, r=janv --- dom/quota/StorageManager.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dom/quota/StorageManager.cpp b/dom/quota/StorageManager.cpp index 783e003a03b6..561dcba6399d 100644 --- a/dom/quota/StorageManager.cpp +++ b/dom/quota/StorageManager.cpp @@ -287,6 +287,13 @@ ExecuteOpOnMainOrWorkerThread(nsIGlobalObject* aGlobal, nsCOMPtr principal = doc->NodePrincipal(); MOZ_ASSERT(principal); + // Storage Standard 7. API + // If origin is an opaque origin, then reject promise with a TypeError. + if (principal->GetIsNullPrincipal()) { + promise->MaybeReject(NS_ERROR_DOM_TYPE_ERR); + return promise.forget(); + } + switch (aType) { case RequestResolver::Type::Persisted: { RefPtr resolver =