From bb9cd680c480c8e2f55c4e1071faa01e52cf2ac8 Mon Sep 17 00:00:00 2001 From: "caillon%returnzero.com" Date: Wed, 17 May 2006 02:34:58 +0000 Subject: [PATCH] Bug 107949, Allow the user to prevent sites from disabling window features via window.open(). r=danm, sr=jag git-svn-id: svn://10.0.0.236/trunk@197516 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/suite/common/pref/pref-scripts.js | 37 +++++++++---------- mozilla/suite/common/pref/pref-scripts.xul | 12 +++++- .../en-US/chrome/common/pref/pref-scripts.dtd | 1 + 3 files changed, 29 insertions(+), 21 deletions(-) diff --git a/mozilla/suite/common/pref/pref-scripts.js b/mozilla/suite/common/pref/pref-scripts.js index d8fa59fc019..57051dc0077 100644 --- a/mozilla/suite/common/pref/pref-scripts.js +++ b/mozilla/suite/common/pref/pref-scripts.js @@ -51,6 +51,7 @@ function changeDisabledState(state){ document.getElementById("allowDocumentCookieGet").disabled = state; document.getElementById("allowWindowStatusChange").disabled = state; document.getElementById("allowWindowFlip").disabled = state; + document.getElementById("allowHideStatusBar").disabled = state; } function javascriptEnabledChange(){ @@ -87,10 +88,16 @@ function Startup(){ //If scriptData does not exist, then it is the first time the panel was shown and we default to false if (!("scriptData" in data)){ - var changedList = ["allowWindowOpenChanged", "allowTargetNewChanged", - "allowWindowMoveResizeChanged", "allowWindowStatusChangeChanged", - "allowWindowFlipChanged", "allowDocumentCookieSetChanged", - "allowDocumentCookieGetChanged", "allowImageSrcChangeChanged"]; + var changedList = ["allowWindowOpenChanged", + "allowTargetNewChanged", + "allowWindowMoveResizeChanged", + "allowWindowStatusChangeChanged", + "allowWindowFlipChanged", + "allowDocumentCookieSetChanged", + "allowDocumentCookieGetChanged", + "allowImageSrcChangeChanged", + "allowHideStatusBarChanged"]; + data.scriptData = []; for(var run = 0; run < changedList.length; run++ ){ data.scriptData[ changedList[run] ] = []; @@ -105,28 +112,13 @@ function Startup(){ document.getElementById("allowImageSrcChange").checked = getPrefValueForCheckbox("dom.disable_image_src_set"); document.getElementById("allowDocumentCookieGet").checked = getPrefValueForCheckbox("dom.disable_cookie_get"); document.getElementById("allowDocumentCookieSet").checked = getPrefValueForCheckbox("dom.disable_cookie_set"); + document.getElementById("allowHideStatusBar").checked = getPrefValueForCheckbox("dom.disable_window_open_feature.status"); //If we don't have a checkbox under groupbox pluginPreferences, we should hide it var pluginGroup = document.getElementById("pluginPreferences") var children = pluginGroup.childNodes; if (!children || children.length <= 1) // 1 for the caption pluginGroup.setAttribute("hidden", "true"); - - } else { //not first time it was loaded, get default values from data - - document.getElementById("allowWindowOpen").checked = data["allowWindowOpen"].checked; - document.getElementById("allowTargetNew").checked = data["allowTargetNew"].checked; - document.getElementById("allowWindowMoveResize").checked = data["allowWindowMoveResize"].checked; - document.getElementById("allowWindowFlip").checked = data["allowWindowFlip"].checked; - document.getElementById("allowWindowStatusChange").checked = data["allowWindowStatusChange"].checked; - document.getElementById("allowImageSrcChange").checked = data["allowImageSrcChange"].checked; - document.getElementById("allowDocumentCookieSet").checked = data["allowDocumentCookieSet"].checked; - document.getElementById("allowDocumentCookieGet").checked = data["allowDocumentCookieGet"].checked; - document.getElementById("javascriptAllowNavigator").checked = data["javascriptAllowNavigator"].checked; - - if (document.getElementById("javascriptAllowMailnews")) { - document.getElementById("javascriptAllowMailNews").checked = data["javascriptAllowMailNews"].checked; - } } javascriptEnabledChange(); @@ -193,6 +185,11 @@ function doOnOk(){ parent.hPrefWindow.setPref("bool", "dom.disable_image_src_set", !getCheckboxValue("allowImageSrcChange")); } + + if (data.scriptData["allowHideStatusBarChanged"].value) { + parent.hPrefWindow.setPref("bool", "dom.disable_window_open_feature.status", + !getCheckboxValue("allowHideStatusBar")); + } } function onCheckboxCheck(event) diff --git a/mozilla/suite/common/pref/pref-scripts.xul b/mozilla/suite/common/pref/pref-scripts.xul index d99efe923c4..add6a3426d9 100644 --- a/mozilla/suite/common/pref/pref-scripts.xul +++ b/mozilla/suite/common/pref/pref-scripts.xul @@ -52,7 +52,16 @@ @@ -72,6 +81,7 @@ + diff --git a/mozilla/suite/locales/en-US/chrome/common/pref/pref-scripts.dtd b/mozilla/suite/locales/en-US/chrome/common/pref/pref-scripts.dtd index d45b834996f..0e4ae852a81 100644 --- a/mozilla/suite/locales/en-US/chrome/common/pref/pref-scripts.dtd +++ b/mozilla/suite/locales/en-US/chrome/common/pref/pref-scripts.dtd @@ -17,5 +17,6 @@ +