diff --git a/content/html/document/src/nsHTMLDocument.cpp b/content/html/document/src/nsHTMLDocument.cpp index 1f2389d876b0..33efb6ebb3e7 100644 --- a/content/html/document/src/nsHTMLDocument.cpp +++ b/content/html/document/src/nsHTMLDocument.cpp @@ -1896,14 +1896,16 @@ nsHTMLDocument::OpenCommon(const nsACString& aContentType, PRBool aReplace) nsresult rv = NS_OK; - nsPIDOMWindow *win = GetWindow(); - if (win) { - nsCOMPtr frameElement; - rv = win->GetFrameElement(getter_AddRefs(frameElement)); - NS_ENSURE_SUCCESS(rv, rv); + if (!nsContentUtils::CanCallerAccess(NS_STATIC_CAST(nsIDOMHTMLDocument*, this))) { + nsPIDOMWindow *win = GetWindow(); + if (win) { + nsCOMPtr frameElement; + rv = win->GetFrameElement(getter_AddRefs(frameElement)); + NS_ENSURE_SUCCESS(rv, rv); - if (frameElement && !nsContentUtils::CanCallerAccess(frameElement)) { - return NS_ERROR_DOM_SECURITY_ERR; + if (frameElement && !nsContentUtils::CanCallerAccess(frameElement)) { + return NS_ERROR_DOM_SECURITY_ERR; + } } }