Backed out changeset e348ec7e3a2b (bug 1597268) for causing mass bustages CLOSED TREE

This commit is contained in:
Bogdan Tara 2020-04-01 22:27:41 +03:00
Родитель 5265a52464
Коммит 452c92d58b
9 изменённых файлов: 87 добавлений и 1 удалений

Просмотреть файл

@ -0,0 +1,38 @@
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=402788
-->
<head>
<title>Test for Bug 1398169</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1398169">Mozilla Bug 1398169</a>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
<script class="testbody" type="text/javascript">
SimpleTest.waitForExplicitFinish();
async function tests() {
await SpecialPowers.pushPrefEnv({
set: [
["dom.registerContentHandler.enabled", false],
["dom.registerProtocolHandler.insecure.enabled", false],
],
});
ok(!navigator.registerContentHandler, "navigator.registerContentHandler should be undefined");
ok(!navigator.registerProtocolHandler, "navigator.registerProtocolHandler should be undefined");
SimpleTest.finish();
}
tests();
</script>
</pre>
</body>
</html>

Просмотреть файл

@ -824,6 +824,11 @@ uint32_t Navigator::MaxTouchPoints(CallerType aCallerType) {
// Navigator::nsIDOMClientInformation
//*****************************************************************************
void Navigator::RegisterContentHandler(const nsAString& aMIMEType,
const nsAString& aURI,
const nsAString& aTitle,
ErrorResult& aRv) {}
// This list should be kept up-to-date with the spec:
// https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers
// If you change this list, please also update the copy in E10SUtils.jsm.

Просмотреть файл

@ -123,6 +123,8 @@ class Navigator final : public nsISupports, public nsWrapperCache {
ErrorResult& aRv);
void RegisterProtocolHandler(const nsAString& aScheme, const nsAString& aURL,
const nsAString& aTitle, ErrorResult& aRv);
void RegisterContentHandler(const nsAString& aMIMEType, const nsAString& aURL,
const nsAString& aTitle, ErrorResult& aRv);
nsMimeTypeArray* GetMimeTypes(ErrorResult& aRv);
nsPluginArray* GetPlugins(ErrorResult& aRv);
Permissions* GetPermissions(ErrorResult& aRv);

Просмотреть файл

@ -85,8 +85,13 @@ interface mixin NavigatorContentUtils {
void checkProtocolHandlerAllowed(DOMString scheme, URI handlerURI, URI documentURI);
[Throws, Func="nsGlobalWindowInner::RegisterProtocolHandlerAllowedForContext"]
void registerProtocolHandler(DOMString scheme, DOMString url, DOMString title);
[Pref="dom.registerContentHandler.enabled", Throws]
void registerContentHandler(DOMString mimeType, DOMString url, DOMString title);
// NOT IMPLEMENTED
//DOMString isProtocolHandlerRegistered(DOMString scheme, DOMString url);
//DOMString isContentHandlerRegistered(DOMString mimeType, DOMString url);
//void unregisterProtocolHandler(DOMString scheme, DOMString url);
//void unregisterContentHandler(DOMString mimeType, DOMString url);
};
[SecureContext]

Просмотреть файл

@ -2254,6 +2254,12 @@
value: false
mirror: always
# Is support for Navigator.registerContentHandler enabled?
- name: dom.registerContentHandler.enabled
type: bool
value: false
mirror: always
# Reporting API.
- name: dom.reporting.enabled
type: RelaxedAtomicBool

Просмотреть файл

@ -0,0 +1,2 @@
[historical.window.html]
prefs: [dom.registerContentHandler.enabled:false]

Просмотреть файл

@ -309,7 +309,9 @@ nsMIMEInfoBase::LaunchWithFile(nsIFile* aFile) {
NS_IMETHODIMP
nsMIMEInfoBase::LaunchWithURI(nsIURI* aURI,
nsIInterfaceRequestor* aWindowContext) {
// This is only being called with protocol handlers
// for now, this is only being called with protocol handlers; that
// will change once we get to more general registerContentHandler
// support
NS_ASSERTION(mClass == eProtocolInfo,
"nsMIMEInfoBase should be a protocol handler");

Просмотреть файл

@ -17,3 +17,4 @@ skip-if = toolkit == 'android' && !is_fennec # Bug 1525959
support-files =
HelperAppLauncherDialog_chromeScript.js
unsafeBidiFileName.sjs
[test_web_protocol_handlers.html]

Просмотреть файл

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<head>
<title>Test for disabled registerProtocolHandler</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<p id="display"></p>
<iframe id="test"></iframe>
<script type="text/javascript">
add_task(async function() {
await SpecialPowers.pushPrefEnv({
set: [
["dom.registerContentHandler.enabled", true],
["dom.registerProtocolHandler.insecure.enabled", false],
],
});
let result = "registerProtocolHandler" in navigator;
ok(!result, "Insecure registerProtocolHandler is undefined");
});
</script>
</body>
</html>