зеркало из https://github.com/mozilla/gecko-dev.git
Bug 940907 Re-introduce the Character Encoding menu to the View Source window r=Unfocused
--HG-- rename : browser/locales/en-US/chrome/browser/charsetMenu.dtd => toolkit/locales/en-US/chrome/global/charsetMenu.dtd rename : browser/locales/en-US/chrome/browser/charsetMenu.properties => toolkit/locales/en-US/chrome/global/charsetMenu.properties rename : browser/modules/CharsetMenu.jsm => toolkit/modules/CharsetMenu.jsm
This commit is contained in:
Родитель
acef910f4d
Коммит
fbaa743e6a
|
@ -11,9 +11,9 @@
|
|||
#endif
|
||||
oncommand="MultiplexHandler(event)"
|
||||
#ifdef OMIT_ACCESSKEYS
|
||||
#expand onpopupshowing="CharsetMenu.build(event, '__ID_PREFIX__');"
|
||||
#expand onpopupshowing="CharsetMenu.build(event, '__ID_PREFIX__', false);"
|
||||
#else
|
||||
#expand onpopupshowing="CharsetMenu.build(event, '__ID_PREFIX__', true);"
|
||||
#expand onpopupshowing="CharsetMenu.build(event, '__ID_PREFIX__');"
|
||||
#endif
|
||||
onpopupshown="UpdateMenus(event);">
|
||||
<menupopup>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
%browserDTD;
|
||||
<!ENTITY % baseMenuDTD SYSTEM "chrome://browser/locale/baseMenuOverlay.dtd" >
|
||||
%baseMenuDTD;
|
||||
<!ENTITY % charsetDTD SYSTEM "chrome://browser/locale/charsetMenu.dtd" >
|
||||
<!ENTITY % charsetDTD SYSTEM "chrome://global/locale/charsetMenu.dtd" >
|
||||
%charsetDTD;
|
||||
<!ENTITY % textcontextDTD SYSTEM "chrome://global/locale/textcontext.dtd" >
|
||||
%textcontextDTD;
|
||||
|
|
|
@ -14,7 +14,7 @@ Cu.import("resource://gre/modules/WindowsPrefSync.jsm");
|
|||
XPCOMUtils.defineLazyModuleGetter(this, "Task",
|
||||
"resource://gre/modules/Task.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "CharsetMenu",
|
||||
"resource:///modules/CharsetMenu.jsm");
|
||||
"resource://gre/modules/CharsetMenu.jsm");
|
||||
|
||||
const nsIWebNavigation = Ci.nsIWebNavigation;
|
||||
|
||||
|
|
|
@ -23,8 +23,6 @@
|
|||
locale/browser/browser.dtd (%chrome/browser/browser.dtd)
|
||||
locale/browser/baseMenuOverlay.dtd (%chrome/browser/baseMenuOverlay.dtd)
|
||||
locale/browser/browser.properties (%chrome/browser/browser.properties)
|
||||
locale/browser/charsetMenu.properties (%chrome/browser/charsetMenu.properties)
|
||||
locale/browser/charsetMenu.dtd (%chrome/browser/charsetMenu.dtd)
|
||||
locale/browser/customizableui/customizableWidgets.properties (%chrome/browser/customizableui/customizableWidgets.properties)
|
||||
locale/browser/devtools/appcacheutils.properties (%chrome/browser/devtools/appcacheutils.properties)
|
||||
locale/browser/devtools/debugger.dtd (%chrome/browser/devtools/debugger.dtd)
|
||||
|
|
|
@ -9,7 +9,6 @@ TEST_DIRS += ['test']
|
|||
EXTRA_JS_MODULES += [
|
||||
'BrowserNewTabPreloader.jsm',
|
||||
'BrowserUITelemetry.jsm',
|
||||
'CharsetMenu.jsm',
|
||||
'ContentClick.jsm',
|
||||
'NetworkPrioritizer.jsm',
|
||||
'offlineAppCache.jsm',
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
Components.utils.import("resource://gre/modules/CharsetMenu.jsm");
|
||||
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
|
@ -662,6 +663,67 @@ function BrowserSetForcedCharacterSet(aCharset)
|
|||
BrowserCharsetReload();
|
||||
}
|
||||
|
||||
function MultiplexHandler(event)
|
||||
{
|
||||
var node = event.target;
|
||||
var name = node.getAttribute("name");
|
||||
|
||||
if (name == "detectorGroup") {
|
||||
SelectDetector(event);
|
||||
BrowserCharsetReload();
|
||||
} else if (name == "charsetGroup") {
|
||||
var charset = node.getAttribute("id");
|
||||
charset = charset.substring(charset.indexOf("charset.") + "charset.".length);
|
||||
BrowserSetForcedCharacterSet(charset);
|
||||
}
|
||||
}
|
||||
|
||||
function SelectDetector(event)
|
||||
{
|
||||
var uri = event.target.getAttribute("id");
|
||||
var prefvalue = uri.substring(uri.indexOf("chardet.") + "chardet.".length);
|
||||
if ("off" == prefvalue) { // "off" is special value to turn off the detectors
|
||||
prefvalue = "";
|
||||
}
|
||||
|
||||
try {
|
||||
var str = Cc["@mozilla.org/supports-string;1"].
|
||||
createInstance(Ci.nsISupportsString);
|
||||
str.data = prefvalue;
|
||||
gPrefService.setComplexValue("intl.charset.detector", Ci.nsISupportsString, str);
|
||||
}
|
||||
catch (ex) {
|
||||
dump("Failed to set the intl.charset.detector preference.\n");
|
||||
}
|
||||
}
|
||||
|
||||
function UpdateCurrentCharset() {
|
||||
var menuitem = document.getElementById("charset." + content.document.characterSet);
|
||||
if (menuitem)
|
||||
menuitem.setAttribute("checked", "true");
|
||||
}
|
||||
|
||||
function UpdateCharsetDetector() {
|
||||
var prefvalue;
|
||||
|
||||
try {
|
||||
prefvalue = gPrefService.getComplexValue("intl.charset.detector", Ci.nsIPrefLocalizedString).data;
|
||||
}
|
||||
catch (ex) {}
|
||||
|
||||
if (!prefvalue)
|
||||
prefvalue = "off";
|
||||
|
||||
var menuitem = document.getElementById("chardet." + prefvalue);
|
||||
if (menuitem)
|
||||
menuitem.setAttribute("checked", "true");
|
||||
}
|
||||
|
||||
function UpdateMenus() {
|
||||
UpdateCurrentCharset();
|
||||
UpdateCharsetDetector();
|
||||
}
|
||||
|
||||
function BrowserForward(aEvent) {
|
||||
try {
|
||||
gBrowser.goForward();
|
||||
|
|
|
@ -14,6 +14,8 @@
|
|||
%brandDTD;
|
||||
<!ENTITY % sourceDTD SYSTEM "chrome://global/locale/viewSource.dtd" >
|
||||
%sourceDTD;
|
||||
<!ENTITY % charsetDTD SYSTEM "chrome://global/locale/charsetMenu.dtd" >
|
||||
%charsetDTD;
|
||||
]>
|
||||
|
||||
<window id="viewSource"
|
||||
|
@ -194,6 +196,43 @@
|
|||
key="key_textZoomReset"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
|
||||
<!-- Charset Menu -->
|
||||
<menu id="charsetMenu"
|
||||
label="&charsetMenu.label;"
|
||||
accesskey="&charsetMenu.accesskey;"
|
||||
oncommand="MultiplexHandler(event);"
|
||||
onpopupshowing="CharsetMenu.build(event);"
|
||||
onpopupshown="UpdateMenus();">
|
||||
<menupopup>
|
||||
<menu label="&charsetMenuAutodet.label;"
|
||||
accesskey="&charsetMenuAutodet.accesskey;">
|
||||
<menupopup>
|
||||
<menuitem type="radio"
|
||||
name="detectorGroup"
|
||||
id="chardet.off"
|
||||
label="&charsetMenuAutodet.off.label;"
|
||||
accesskey="&charsetMenuAutodet.off.accesskey;"/>
|
||||
<menuitem type="radio"
|
||||
name="detectorGroup"
|
||||
id="chardet.ja_parallel_state_machine"
|
||||
label="&charsetMenuAutodet.ja.label;"
|
||||
accesskey="&charsetMenuAutodet.ja.accesskey;"/>
|
||||
<menuitem type="radio"
|
||||
name="detectorGroup"
|
||||
id="chardet.ruprob"
|
||||
label="&charsetMenuAutodet.ru.label;"
|
||||
accesskey="&charsetMenuAutodet.ru.accesskey;"/>
|
||||
<menuitem type="radio"
|
||||
name="detectorGroup"
|
||||
id="chardet.ukprob"
|
||||
label="&charsetMenuAutodet.uk.label;"
|
||||
accesskey="&charsetMenuAutodet.uk.accesskey;"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menuseparator/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menuseparator/>
|
||||
<menuitem id="menu_wrapLongLines" type="checkbox" command="cmd_wrapLongLines"
|
||||
label="&menu_wrapLongLines.title;" accesskey="&menu_wrapLongLines.accesskey;"/>
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
locale/@AB_CD@/global/appPicker.dtd (%chrome/global/appPicker.dtd)
|
||||
locale/@AB_CD@/global/brand.dtd (generic/chrome/global/brand.dtd)
|
||||
locale/@AB_CD@/global/browser.properties (%chrome/global/browser.properties)
|
||||
locale/@AB_CD@/global/charsetMenu.dtd (%chrome/global/charsetMenu.dtd)
|
||||
locale/@AB_CD@/global/charsetMenu.properties (%chrome/global/charsetMenu.properties)
|
||||
locale/@AB_CD@/global/charsetOverlay.dtd (%chrome/global/charsetOverlay.dtd)
|
||||
locale/@AB_CD@/global/commonDialog.dtd (%chrome/global/commonDialog.dtd)
|
||||
locale/@AB_CD@/global/commonDialogs.properties (%chrome/global/commonDialogs.properties)
|
||||
|
|
|
@ -9,7 +9,7 @@ const { classes: Cc, interfaces: Ci, utils: Cu} = Components;
|
|||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
XPCOMUtils.defineLazyGetter(this, "gBundle", function() {
|
||||
const kUrl = "chrome://browser/locale/charsetMenu.properties";
|
||||
const kUrl = "chrome://global/locale/charsetMenu.properties";
|
||||
return Services.strings.createBundle(kUrl);
|
||||
});
|
||||
/**
|
||||
|
@ -81,7 +81,7 @@ const kPinned = [
|
|||
];
|
||||
|
||||
this.CharsetMenu = Object.freeze({
|
||||
build: function BuildCharsetMenu(event, idPrefix="", showAccessKeys=false) {
|
||||
build: function BuildCharsetMenu(event, idPrefix="", showAccessKeys=true) {
|
||||
let parent = event.target;
|
||||
if (parent.lastChild.localName != "menuseparator") {
|
||||
// Detector menu or charset menu already built
|
|
@ -8,6 +8,7 @@ TEST_DIRS += ['tests']
|
|||
|
||||
EXTRA_JS_MODULES += [
|
||||
'AsyncShutdown.jsm',
|
||||
'CharsetMenu.jsm',
|
||||
'debug.js',
|
||||
'DeferredTask.jsm',
|
||||
'Deprecated.jsm',
|
||||
|
|
Загрузка…
Ссылка в новой задаче