diff -ru firefox-32.0.3+build1.orig/browser/components/preferences/in-content/content.js firefox-32.0.3+build1/browser/components/preferences/in-content/content.js --- firefox-32.0.3+build1.orig/browser/components/preferences/in-content/content.js 2014-09-24 06:33:20.000000000 +0000 +++ firefox-32.0.3+build1/browser/components/preferences/in-content/content.js 2014-09-30 13:03:48.000000000 +0000 @@ -70,6 +70,18 @@ "Browser:Permissions", "resizable=yes", params); }, + // JAVASCRIPT + + /** + * Displays the advanced JavaScript preferences for enabling or disabling + * various annoying behaviors. + */ + showAdvancedJS: function () + { + openDialog("chrome://browser/content/preferences/advanced-scripts.xul", + "Browser:AdvancedScripts", null); + }, + // FONTS /** diff -ru firefox-32.0.3+build1.orig/browser/components/preferences/in-content/content.xul firefox-32.0.3+build1/browser/components/preferences/in-content/content.xul --- firefox-32.0.3+build1.orig/browser/components/preferences/in-content/content.xul 2014-09-24 06:33:20.000000000 +0000 +++ firefox-32.0.3+build1/browser/components/preferences/in-content/content.xul 2014-09-30 13:06:50.000000000 +0000 @@ -11,6 +11,15 @@ name="dom.disable_open_during_load" type="bool"/> + <!-- JavaScript --> + <preference id="javascript.enabled" + name="javascript.enabled" + type="bool"/> + + <preference id="pref.advanced.javascript.disable_button.advanced" + name="pref.advanced.javascript.disable_button.advanced" + type="bool"/> + <!-- Fonts --> <preference id="font.language.group" name="font.language.group" @@ -56,6 +65,20 @@ oncommand="gContentPane.showPopupExceptions();" accesskey="&popupExceptions.accesskey;"/> </row> + <row id="enableJavaScriptRow"> + <vbox align="start"> + <checkbox id="enableJavaScript" preference="javascript.enabled" + label="&enableJavaScript.label;" accesskey="&enableJavaScript.accesskey;" + onsyncfrompreference="return gContentPane.updateButtons('advancedJSButton', + 'javascript.enabled');"/> + </vbox> + <vbox> + <button id="advancedJSButton" label="&advancedJS.label;" + accesskey="&advancedJS.accesskey;" + oncommand="gContentPane.showAdvancedJS();" + preference="pref.advanced.javascript.disable_button.advanced"/> + </vbox> + </row> </rows> </grid> </groupbox> diff -ru firefox-32.0.3+build1.orig/browser/components/preferences/in-content/jar.mn firefox-32.0.3+build1/browser/components/preferences/jar.mn --- firefox-32.0.3+build1.orig/browser/components/preferences/in-content/jar.mn 2014-09-24 06:33:20.000000000 +0000 +++ firefox-32.0.3+build1/browser/components/preferences/in-content/jar.mn 2014-09-30 13:03:48.000000000 +0000 @@ -10,6 +10,7 @@ * content/browser/preferences/in-content/main.js * content/browser/preferences/in-content/privacy.js * content/browser/preferences/in-content/advanced.js + content/browser/preferences/advanced-scripts.xul * content/browser/preferences/in-content/applications.js content/browser/preferences/in-content/content.js content/browser/preferences/in-content/sync.js diff -ru firefox-32.0.3+build1.orig/browser/locales/en-US/chrome/browser/preferences/content.dtd firefox-32.0.3+build1/browser/locales/en-US/chrome/browser/preferences/content.dtd --- firefox-32.0.3+build1.orig/browser/locales/en-US/chrome/browser/preferences/content.dtd 2014-09-24 06:33:22.000000000 +0000 +++ firefox-32.0.3+build1/browser/locales/en-US/chrome/browser/preferences/content.dtd 2014-09-30 13:03:48.000000000 +0000 @@ -9,6 +9,15 @@ <!ENTITY popupExceptions.label "Exceptions…"> <!ENTITY popupExceptions.accesskey "E"> +<!ENTITY enableJavaScript.label "Enable JavaScript"> +<!ENTITY enableJavaScript.accesskey "J"> +<!ENTITY advancedJS.label "Advanced…"> +<!ENTITY advancedJS.accesskey "v"> + +<!ENTITY enableJava.label "Enable Java"> +<!ENTITY enableJava.accesskey "n"> + + <!ENTITY fontsAndColors.label "Fonts & Colors"> <!ENTITY defaultFont.label "Default font:"> diff -ru firefox-32.0.3+build1.orig/browser/locales/jar.mn firefox-32.0.3+build1/browser/locales/jar.mn --- firefox-32.0.3+build1.orig/browser/locales/jar.mn 2014-09-24 06:33:22.000000000 +0000 +++ firefox-32.0.3+build1/browser/locales/jar.mn 2014-09-30 13:03:48.000000000 +0000 @@ -103,6 +103,7 @@ locale/browser/preferences/aboutPermissions.dtd (%chrome/browser/preferences/aboutPermissions.dtd) locale/browser/preferences/aboutPermissions.properties (%chrome/browser/preferences/aboutPermissions.properties) locale/browser/preferences/advanced.dtd (%chrome/browser/preferences/advanced.dtd) + locale/browser/preferences/advanced-scripts.dtd (%chrome/browser/preferences/advanced-scripts.dtd) locale/browser/preferences/applicationManager.dtd (%chrome/browser/preferences/applicationManager.dtd) locale/browser/preferences/applicationManager.properties (%chrome/browser/preferences/applicationManager.properties) locale/browser/preferences/colors.dtd (%chrome/browser/preferences/colors.dtd) diff --git a/browser/components/preferences/advanced-scripts.xul b/browser/components/preferences/advanced-scripts.xul --- /dev/null +++ a/browser/components/preferences/advanced-scripts.xul @@ -0,0 +1,46 @@ +<?xml version="1.0"?> + +<!-- -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- --> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + +<!DOCTYPE prefwindow SYSTEM "chrome://browser/locale/preferences/advanced-scripts.dtd"> + +<?xml-stylesheet href="chrome://global/skin/"?> + +<prefwindow id="AdvancedJSDialog" type="child" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + title="&advancedJSDialog.title;" + dlgbuttons="accept,cancel,help" + ondialoghelp="openPrefsHelp()"> + + <script type="application/javascript" src="chrome://browser/content/utilityOverlay.js"/> + + <prefpane id="AdvancedJSDialogPane" + helpTopic="prefs-advanced-javascript"> + + <preferences> + <preference id="dom.event.contextmenu.enabled" name="dom.event.contextmenu.enabled" type="bool"/> + <preference id="dom.disable_window_move_resize" name="dom.disable_window_move_resize" type="bool" inverted="true"/> + <preference id="dom.disable_window_flip" name="dom.disable_window_flip" type="bool" inverted="true"/> + </preferences> + + <script type="application/javascript" src="chrome://browser/content/preferences/advanced-scripts.js"/> + + <stringbundle id="preferencesBundle" src="chrome://browser/locale/preferences/preferences.properties"/> + + <description value="&allowScripts.label;"/> + + <checkbox id="moveResizePopupWindows" label="&moveResizePopupWindows.label;" + accesskey="&moveResizePopupWindows.accesskey;" + preference="dom.disable_window_move_resize"/> + <checkbox id="raiseLowerWindows" label="&raiseLowerWindows.label;" + accesskey="&raiseLowerWindows.accesskey;" + preference="dom.disable_window_flip"/> + <checkbox id="disableContextMenus" label="&disableContextMenus.label;" + accesskey="&disableContextMenus.accesskey;" + preference="dom.event.contextmenu.enabled"/> + + </prefpane> +</prefwindow> --- /dev/null +++ a/browser/locales/en-US/chrome/browser/preferences/advanced-scripts.dtd @@ -0,0 +1,15 @@ +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + +<!ENTITY advancedJSDialog.title "Advanced JavaScript Settings"> +<!ENTITY window.width "37em"> + +<!ENTITY allowScripts.label "Allow scripts to:"> + +<!ENTITY moveResizePopupWindows.label "Move or resize popup windows"> +<!ENTITY moveResizePopupWindows.accesskey "M"> +<!ENTITY raiseLowerWindows.label "Raise or lower windows"> +<!ENTITY raiseLowerWindows.accesskey "R"> +<!ENTITY disableContextMenus.label "Disable or replace context menus"> +<!ENTITY disableContextMenus.accesskey "D">