Index: third_party/WebKit/Source/core/dom/Document.cpp |
diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKit/Source/core/dom/Document.cpp |
index 76c57e79f91044268011c9d41f0a9e8943d5b79d..f9c5602a6102cf49caa7c325114d588192cee7eb 100644 |
--- a/third_party/WebKit/Source/core/dom/Document.cpp |
+++ b/third_party/WebKit/Source/core/dom/Document.cpp |
@@ -354,15 +354,6 @@ static bool acceptsEditingFocus(const Element& element) |
return element.document().frame() && element.rootEditableElement(); |
} |
-static bool isOriginPotentiallyTrustworthy(SecurityOrigin* origin, String* errorMessage) |
-{ |
- if (origin->isPotentiallyTrustworthy()) |
- return true; |
- if (errorMessage) |
- *errorMessage = origin->isPotentiallyTrustworthyErrorMessage(); |
- return false; |
-} |
- |
uint64_t Document::s_globalTreeVersion = 0; |
static bool s_threadedParsingEnabledForTesting = true; |
@@ -3320,7 +3311,7 @@ void Document::cloneDataFromDocument(const Document& other) |
setMimeType(other.contentType()); |
} |
-bool Document::isSecureContextImpl(String* errorMessage, const SecureContextCheck privilegeContextCheck) const |
+bool Document::isSecureContextImpl(const SecureContextCheck privilegeContextCheck) const |
{ |
// There may be exceptions for the secure context check defined for certain |
// schemes. The exceptions are applied only to the special scheme and to |
@@ -3350,21 +3341,16 @@ bool Document::isSecureContextImpl(String* errorMessage, const SecureContextChec |
// |
// In all cases, a frame must be potentially trustworthy in addition to |
// having an exception listed in order for the exception to be granted. |
- if (!isOriginPotentiallyTrustworthy(getSecurityOrigin(), errorMessage)) |
+ if (!getSecurityOrigin()->isPotentiallyTrustworthy()) |
return false; |
if (SchemeRegistry::schemeShouldBypassSecureContextCheck(getSecurityOrigin()->protocol())) |
return true; |
if (privilegeContextCheck == StandardSecureContextCheck) { |
- if (!m_frame) |
- return true; |
- Frame* parent = m_frame->tree().parent(); |
- while (parent) { |
- if (!isOriginPotentiallyTrustworthy(parent->securityContext()->getSecurityOrigin(), errorMessage)) |
- return false; |
- parent = parent->tree().parent(); |
- } |
+ Frame* parent = m_frame ? m_frame->tree().parent() : nullptr; |
+ if (parent && !parent->canHaveSecureChild()) |
+ return false; |
} |
return true; |
} |
@@ -5841,12 +5827,15 @@ v8::Local<v8::Object> Document::associateWithWrapper(v8::Isolate* isolate, const |
bool Document::isSecureContext(String& errorMessage, const SecureContextCheck privilegeContextCheck) const |
{ |
- return isSecureContextImpl(&errorMessage, privilegeContextCheck); |
+ if (isSecureContextImpl(privilegeContextCheck)) |
+ return true; |
+ errorMessage = SecurityOrigin::isPotentiallyTrustworthyErrorMessage(); |
+ return false; |
} |
bool Document::isSecureContext(const SecureContextCheck privilegeContextCheck) const |
{ |
- return isSecureContextImpl(nullptr, privilegeContextCheck); |
+ return isSecureContextImpl(privilegeContextCheck); |
} |
WebTaskRunner* Document::loadingTaskRunner() const |