зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset e348ec7e3a2b (bug 1597268) for causing mass bustages CLOSED TREE
This commit is contained in:
Родитель
5265a52464
Коммит
452c92d58b
|
@ -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>
|
Загрузка…
Ссылка в новой задаче