From 32eb3613019cc5c05e79836e23dfcc754850858d Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Sun, 16 Dec 2018 13:09:21 +0100 Subject: [PATCH] Issue #910 part 1. Don't navigate when location.protocol is set to anything other than http or https. --- dom/base/Location.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/dom/base/Location.cpp b/dom/base/Location.cpp index 7b3722f09e..5f87382982 100644 --- a/dom/base/Location.cpp +++ b/dom/base/Location.cpp @@ -730,6 +730,23 @@ Location::SetProtocol(const nsAString& aProtocol) if (NS_FAILED(rv)) { return rv; } + + bool isHttp; + rv = uri->SchemeIs("http", &isHttp); + if (NS_WARN_IF(NS_FAILED(rv))) { + return rv; + } + + bool isHttps; + rv = uri->SchemeIs("https", &isHttps); + if (NS_WARN_IF(NS_FAILED(rv))) { + return rv; + } + + if (!isHttp && !isHttps) { + // No-op, per spec. + return NS_OK; + } return SetURI(uri); }