From da0a9f854ff5d2d2a78dae776cc0a6bd75e9765a Mon Sep 17 00:00:00 2001 From: janekptacijarabaci Date: Wed, 25 Jul 2018 15:26:02 +0200 Subject: [PALEMOON] Bug 757726 - Populate Preferences' Applications list using PluginHost --- .../components/preferences/applications.js | 38 ++++++++++++---------- 1 file changed, 20 insertions(+), 18 deletions(-) (limited to 'application') diff --git a/application/palemoon/components/preferences/applications.js b/application/palemoon/components/preferences/applications.js index 5768de708..4388f290e 100644 --- a/application/palemoon/components/preferences/applications.js +++ b/application/palemoon/components/preferences/applications.js @@ -8,15 +8,10 @@ //****************************************************************************// // Constants & Enumeration Values -/* -#ifndef XP_MACOSX -*/ var Cc = Components.classes; var Ci = Components.interfaces; var Cr = Components.results; -/* -#endif -*/ + Components.utils.import('resource://gre/modules/Services.jsm'); const TYPE_MAYBE_FEED = "application/vnd.mozilla.maybe.feed"; @@ -158,7 +153,7 @@ function isFeedType(t) { * * We create an instance of this wrapper for each entry we might display * in the prefpane, and we compose the instances from various sources, - * including navigator.plugins and the handler service. + * including plugins and the handler service. * * We don't implement all the original nsIHandlerInfo functionality, * just the stuff that the prefpane needs. @@ -272,7 +267,7 @@ HandlerInfoWrapper.prototype = { // What to do with content of this type. get preferredAction() { // If we have an enabled plugin, then the action is to use that plugin. - if (this.plugin && !this.isDisabledPluginType) + if (this.pluginName && !this.isDisabledPluginType) return kActionUsePlugin; // If the action is to use a helper app, but we don't have a preferred @@ -308,7 +303,7 @@ HandlerInfoWrapper.prototype = { // of any user configuration, and the default in that case is to always ask, // even though we never ask for content handled by a plugin, so special case // plugin-handled types by returning false here. - if (this.plugin && this.handledOnlyByPlugin) + if (this.pluginName && this.handledOnlyByPlugin) return false; // If this is a protocol type and the preferred action is "save to disk", @@ -1064,10 +1059,17 @@ var gApplicationsPane = { * check the pref ourselves to find out if it's enabled. */ _loadPluginHandlers: function() { - for (let i = 0; i < navigator.plugins.length; ++i) { - let plugin = navigator.plugins[i]; - for (let j = 0; j < plugin.length; ++j) { - let type = plugin[j].type; + "use strict"; + + let pluginHost = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost); + let pluginTags = pluginHost.getPluginTags(); + + for (let i = 0; i < pluginTags.length; ++i) { + let pluginTag = pluginTags[i]; + + let mimeTypes = pluginTag.getMimeTypes(); + for (let j = 0; j < mimeTypes.length; ++j) { + let type = mimeTypes[j]; let handlerInfoWrapper; if (type in this._handledTypes) @@ -1080,7 +1082,7 @@ var gApplicationsPane = { this._handledTypes[type] = handlerInfoWrapper; } - handlerInfoWrapper.plugin = plugin; + handlerInfoWrapper.pluginName = pluginTag.name; } } }, @@ -1274,7 +1276,7 @@ var gApplicationsPane = { case kActionUsePlugin: return this._prefsBundle.getFormattedString("usePluginIn", - [aHandlerInfo.plugin.name, + [aHandlerInfo.pluginName, this._brandShortName]); } }, @@ -1456,11 +1458,11 @@ var gApplicationsPane = { } // Create a menu item for the plugin. - if (handlerInfo.plugin) { + if (handlerInfo.pluginName) { var pluginMenuItem = document.createElement("menuitem"); pluginMenuItem.setAttribute("action", kActionUsePlugin); let label = this._prefsBundle.getFormattedString("usePluginIn", - [handlerInfo.plugin.name, + [handlerInfo.pluginName, this._brandShortName]); pluginMenuItem.setAttribute("label", label); pluginMenuItem.setAttribute("tooltiptext", label); @@ -1623,7 +1625,7 @@ var gApplicationsPane = { // Set the plugin state if we're enabling or disabling a plugin. if (action == kActionUsePlugin) handlerInfo.enablePluginType(); - else if (handlerInfo.plugin && !handlerInfo.isDisabledPluginType) + else if (handlerInfo.pluginName && !handlerInfo.isDisabledPluginType) handlerInfo.disablePluginType(); // Set the preferred application handler. -- cgit v1.2.3 From 58d5c1cca4ae42690a7ddb4e3025d794958b2e37 Mon Sep 17 00:00:00 2001 From: janekptacijarabaci Date: Wed, 25 Jul 2018 15:28:56 +0200 Subject: [PALEMOON] Bug 480242 - "Always ask" doesn't work for Plugins --- .../components/preferences/applications.js | 54 ++++++++++++---------- 1 file changed, 30 insertions(+), 24 deletions(-) (limited to 'application') diff --git a/application/palemoon/components/preferences/applications.js b/application/palemoon/components/preferences/applications.js index 4388f290e..1ff63ada9 100644 --- a/application/palemoon/components/preferences/applications.js +++ b/application/palemoon/components/preferences/applications.js @@ -288,6 +288,14 @@ HandlerInfoWrapper.prototype = { }, set preferredAction(aNewValue) { + // If the action is to use the plugin, + // we must set the preferred action to "save to disk". + // But only if it's not currently the preferred action. + if ((aNewValue == kActionUsePlugin) && + (this.preferredAction != Ci.nsIHandlerInfo.saveToDisk)) { + aNewValue = Ci.nsIHandlerInfo.saveToDisk; + } + // We don't modify the preferred action if the new action is to use a plugin // because handler info objects don't understand our custom "use plugin" // value. Also, leaving it untouched means that we can automatically revert @@ -1616,33 +1624,31 @@ var gApplicationsPane = { var typeItem = this._list.selectedItem; var handlerInfo = this._handledTypes[typeItem.type]; - if (aActionItem.hasAttribute("alwaysAsk")) { + let action = parseInt(aActionItem.getAttribute("action")); + + // Set the plugin state if we're enabling or disabling a plugin. + if (action == kActionUsePlugin) + handlerInfo.enablePluginType(); + else if (handlerInfo.pluginName && !handlerInfo.isDisabledPluginType) + handlerInfo.disablePluginType(); + + // Set the preferred application handler. + // We leave the existing preferred app in the list when we set + // the preferred action to something other than useHelperApp so that + // legacy datastores that don't have the preferred app in the list + // of possible apps still include the preferred app in the list of apps + // the user can choose to handle the type. + if (action == Ci.nsIHandlerInfo.useHelperApp) + handlerInfo.preferredApplicationHandler = aActionItem.handlerApp; + + // Set the "always ask" flag. + if (action == Ci.nsIHandlerInfo.alwaysAsk) handlerInfo.alwaysAskBeforeHandling = true; - } - else if (aActionItem.hasAttribute("action")) { - let action = parseInt(aActionItem.getAttribute("action")); - - // Set the plugin state if we're enabling or disabling a plugin. - if (action == kActionUsePlugin) - handlerInfo.enablePluginType(); - else if (handlerInfo.pluginName && !handlerInfo.isDisabledPluginType) - handlerInfo.disablePluginType(); - - // Set the preferred application handler. - // We leave the existing preferred app in the list when we set - // the preferred action to something other than useHelperApp so that - // legacy datastores that don't have the preferred app in the list - // of possible apps still include the preferred app in the list of apps - // the user can choose to handle the type. - if (action == Ci.nsIHandlerInfo.useHelperApp) - handlerInfo.preferredApplicationHandler = aActionItem.handlerApp; - - // Set the "always ask" flag. + else handlerInfo.alwaysAskBeforeHandling = false; - // Set the preferred action. - handlerInfo.preferredAction = action; - } + // Set the preferred action. + handlerInfo.preferredAction = action; handlerInfo.store(); -- cgit v1.2.3 From 2f8302dd63b5111bb5747975283a64d1b66042d5 Mon Sep 17 00:00:00 2001 From: janekptacijarabaci Date: Wed, 25 Jul 2018 15:29:37 +0200 Subject: [PALEMOON] Bug 1034043 - Fix remaining use of "awlaysAsk" attribute in applications pref pane --- application/palemoon/components/preferences/applications.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'application') diff --git a/application/palemoon/components/preferences/applications.js b/application/palemoon/components/preferences/applications.js index 1ff63ada9..1936f5ee8 100644 --- a/application/palemoon/components/preferences/applications.js +++ b/application/palemoon/components/preferences/applications.js @@ -1378,7 +1378,7 @@ var gApplicationsPane = { { var askMenuItem = document.createElement("menuitem"); - askMenuItem.setAttribute("alwaysAsk", "true"); + askMenuItem.setAttribute("action", Ci.nsIHandlerInfo.alwaysAsk); let label; if (isFeedType(handlerInfo.type)) label = this._prefsBundle.getFormattedString("previewInApp", -- cgit v1.2.3 From 11da825359f0e89eb79a07ba3c12515ab7d1db97 Mon Sep 17 00:00:00 2001 From: janekptacijarabaci Date: Thu, 26 Jul 2018 04:31:11 +0200 Subject: [PALEMOON] Bug 863773 - Changes the way plugin handlers are loaded at the preferences applications pane. Uses enabledPlugin attribute from each navigator.mimeTypes to find the actual plugin used to handle the mime type --- .../components/preferences/applications.js | 33 ++++++++-------------- 1 file changed, 12 insertions(+), 21 deletions(-) (limited to 'application') diff --git a/application/palemoon/components/preferences/applications.js b/application/palemoon/components/preferences/applications.js index 1936f5ee8..d06f9f9fb 100644 --- a/application/palemoon/components/preferences/applications.js +++ b/application/palemoon/components/preferences/applications.js @@ -1069,29 +1069,20 @@ var gApplicationsPane = { _loadPluginHandlers: function() { "use strict"; - let pluginHost = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost); - let pluginTags = pluginHost.getPluginTags(); - - for (let i = 0; i < pluginTags.length; ++i) { - let pluginTag = pluginTags[i]; - - let mimeTypes = pluginTag.getMimeTypes(); - for (let j = 0; j < mimeTypes.length; ++j) { - let type = mimeTypes[j]; - - let handlerInfoWrapper; - if (type in this._handledTypes) - handlerInfoWrapper = this._handledTypes[type]; - else { - let wrappedHandlerInfo = - this._mimeSvc.getFromTypeAndExtension(type, null); - handlerInfoWrapper = new HandlerInfoWrapper(type, wrappedHandlerInfo); - handlerInfoWrapper.handledOnlyByPlugin = true; - this._handledTypes[type] = handlerInfoWrapper; - } + let mimeTypes = navigator.mimeTypes; - handlerInfoWrapper.pluginName = pluginTag.name; + for (let mimeType of mimeTypes) { + let handlerInfoWrapper; + if (mimeType.type in this._handledTypes) { + handlerInfoWrapper = this._handledTypes[mimeType.type]; + } else { + let wrappedHandlerInfo = + this._mimeSvc.getFromTypeAndExtension(mimeType.type, null); + handlerInfoWrapper = new HandlerInfoWrapper(mimeType.type, wrappedHandlerInfo); + handlerInfoWrapper.handledOnlyByPlugin = true; + this._handledTypes[mimeType.type] = handlerInfoWrapper; } + handlerInfoWrapper.pluginName = mimeType.enabledPlugin.name; } }, -- cgit v1.2.3 From 8cc9e93d8d9fe9f8a45f251d5144c23cf1aba581 Mon Sep 17 00:00:00 2001 From: SpockMan02 Date: Fri, 3 Aug 2018 17:36:03 -0700 Subject: Restore Mac bookmark doorhanger styling --- application/palemoon/themes/osx/browser.css | 259 ++++++++++++++++++++- application/palemoon/themes/osx/jar.mn | 5 + .../palemoon/themes/osx/panel-expander-closed.png | Bin 0 -> 155 bytes .../themes/osx/panel-expander-closed@2x.png | Bin 0 -> 362 bytes .../palemoon/themes/osx/panel-expander-open.png | Bin 0 -> 155 bytes .../palemoon/themes/osx/panel-expander-open@2x.png | Bin 0 -> 356 bytes .../palemoon/themes/osx/panel-plus-sign.png | Bin 0 -> 212 bytes 7 files changed, 256 insertions(+), 8 deletions(-) create mode 100644 application/palemoon/themes/osx/panel-expander-closed.png create mode 100644 application/palemoon/themes/osx/panel-expander-closed@2x.png create mode 100644 application/palemoon/themes/osx/panel-expander-open.png create mode 100644 application/palemoon/themes/osx/panel-expander-open@2x.png create mode 100644 application/palemoon/themes/osx/panel-plus-sign.png (limited to 'application') diff --git a/application/palemoon/themes/osx/browser.css b/application/palemoon/themes/osx/browser.css index 400ace3f8..97073b161 100644 --- a/application/palemoon/themes/osx/browser.css +++ b/application/palemoon/themes/osx/browser.css @@ -817,14 +817,6 @@ toolbar[brighttext] #bookmarks-menu-button.bookmark-item { } %endif -/* ::::: fullscreen window controls ::::: */ - -#minimize-button, -#close-button, -#fullscreen-button ~ #window-controls > #restore-button { - display: none; -} - /* ::::: Location Bar ::::: */ #urlbar, @@ -1348,6 +1340,257 @@ richlistitem[type~="action"][actiontype="switchtab"][selected="true"] > .ac-url- min-width: 27em; } +/* BOOKMARKING PANEL */ +#editBookmarkPanelStarIcon { + list-style-image: url("chrome://browser/skin/places/starred48.png"); + width: 48px; + height: 48px; +} + +#editBookmarkPanelStarIcon[unstarred] { + list-style-image: url("chrome://browser/skin/places/unstarred48.png"); +} + +#editBookmarkPanelTitle { + font-size: 130%; + font-weight: bold; +} + +#editBMPanel_rows > row { + margin-bottom: 8px; +} + +#editBMPanel_rows > row:last-of-type { + margin-bottom: 0; +} + +/**** Input elements ****/ + +#editBMPanel_rows > row > textbox, +#editBMPanel_rows > row > hbox > textbox { + -moz-appearance: none; + background: linear-gradient(#fafafa, #fff); + background-clip: padding-box; + border-radius: 3px; + border: 1px solid rgba(0,0,0,.3) !important; + box-shadow: inset 0 1px 1px 1px rgba(0,0,0,.05), + 0 1px rgba(255,255,255,.3); + margin: 0; + padding: 3px 6px; +} + +#editBMPanel_rows > row > textbox[focused="true"], +#editBMPanel_rows > row > hbox > textbox[focused="true"] { + border-color: -moz-mac-focusring !important; + box-shadow: @focusRingShadow@; +} + +/**** HUD style buttons ****/ + +.editBookmarkPanelHeaderButton, +.editBookmarkPanelBottomButton { + @hudButton@ + margin: 0; + min-width: 82px; + min-height: 22px; +} + +.editBookmarkPanelHeaderButton:hover:active, +.editBookmarkPanelBottomButton:hover:active { + @hudButtonPressed@ +} + +.editBookmarkPanelHeaderButton:-moz-focusring, +.editBookmarkPanelBottomButton:-moz-focusring { + @hudButtonFocused@ +} + +.editBookmarkPanelBottomButton[default="true"] { + background-color: #666; +} + +#editBookmarkPanelHeader { + margin-bottom: 6px; +} + +.editBookmarkPanelBottomButton:last-child { + -moz-margin-start: 8px; +} + +/* The following elements come from editBookmarkOverlay.xul. Styling that's + specific to the editBookmarkPanel should be in browser.css. Styling that + should be shared by all editBookmarkOverlay.xul consumers should be in + editBookmarkOverlay.css. */ + +#editBMPanel_newFolderBox { + background: linear-gradient(#fff, #f2f2f2); + background-origin: padding-box; + background-clip: padding-box; + border-radius: 0 0 3px 3px; + border: 1px solid #a5a5a5; + box-shadow: inset 0 1px rgba(255,255,255,.8), + inset 0 0 1px rgba(255,255, 255,.25), + 0 1px rgba(255,255,255,.3); + margin: 0; + padding: 0; + height: 20px; +} + +#editBMPanel_newFolderButton { + -moz-appearance: none; + border: 0 solid #a5a5a5; + -moz-border-end-width: 1px; + padding: 0 9px; + margin: 0; + min-width: 21px; + min-height: 20px; + height: 20px; + color: #fff; + list-style-image: url("chrome://browser/skin/panel-plus-sign.png"); + position: relative; +} + +#editBMPanel_newFolderButton:hover:active { + background: linear-gradient(rgba(40,40,40,.9), rgba(70,70,70,.9)); + box-shadow: inset 0 0 3px rgba(0,0,0,.2), inset 0 1px 7px rgba(0,0,0,.4); +} + +#editBMPanel_newFolderButton:-moz-focusring { + @hudButtonFocused@ +} + +#editBMPanel_newFolderButton .button-text { + display: none; +} + +#editBMPanel_folderMenuList { + @hudButton@ + background-clip: padding-box; + margin: 0; + min-height: 22px; + padding-top: 2px; + padding-bottom: 1px; + -moz-padding-start: 8px; + -moz-padding-end: 4px; +} + +#editBMPanel_folderMenuList:-moz-focusring { + @hudButtonFocused@ +} + +#editBMPanel_folderMenuList[open="true"], +#editBMPanel_folderMenuList:hover:active { + @hudButtonPressed@ +} + +#editBMPanel_folderMenuList > .menulist-dropmarker { + -moz-appearance: none; + display: -moz-box; + background-color: transparent; + border: 0; + margin: 0; + padding: 0; + -moz-padding-end: 4px; + width: 7px; +} + +#editBMPanel_folderMenuList > .menulist-dropmarker > .dropmarker-icon { + list-style-image: url("chrome://global/skin/icons/panel-dropmarker.png"); +} + +/**** folder tree and tag selector ****/ + +#editBMPanel_folderTree, +#editBMPanel_tagsSelector { + -moz-appearance: none; + background: linear-gradient(#fafafa, #fff); + background-clip: padding-box; + border-radius: 3px; + border: 1px solid rgba(0,0,0,.3); + box-shadow: inset 0 1px 1px 1px rgba(0,0,0,.05), + 0 1px rgba(255,255,255,.3); + margin: 0; +} + +#editBMPanel_folderTree:-moz-focusring, +#editBMPanel_tagsSelector:-moz-focusring { + border-color: -moz-mac-focusring; + box-shadow: @focusRingShadow@; +} + +#editBMPanel_folderTree { + border-bottom: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + /* Implements editBookmarkPanel resizing on folderTree un-collapse. */ + margin: 0 !important; + min-width: 27em; + position: relative; +} + +/**** expanders ****/ + +#editBookmarkPanel .expander-up, +#editBookmarkPanel .expander-down { + @hudButton@ + margin: 0; + -moz-margin-start: 4px; + min-width: 27px; + min-height: 22px; +} + +#editBookmarkPanel .expander-up:-moz-focusring, +#editBookmarkPanel .expander-down:-moz-focusring { + @hudButtonFocused@ +} + +#editBookmarkPanel .expander-up:hover:active, +#editBookmarkPanel .expander-down:hover:active { + @hudButtonPressed@ +} + +#editBookmarkPanel .expander-up { + list-style-image: url("chrome://browser/skin/panel-expander-open.png"); +} + +#editBookmarkPanel .expander-down { + list-style-image: url("chrome://browser/skin/panel-expander-closed.png"); +} + +#editBookmarkPanel .expander-up > .button-box > .button-icon, +#editBookmarkPanel .expander-down > .button-box > .button-icon { + margin: 1px 0 0; +} + +#editBookmarkPanel .expander-up > .button-box > .button-text, +#editBookmarkPanel .expander-down > .button-box > .button-text { + display: none; +} + +@media (min-resolution: 2dppx) { + #editBookmarkPanel .expander-up { + list-style-image: url("chrome://browser/skin/panel-expander-open@2x.png"); + } + + #editBookmarkPanel .expander-down { + list-style-image: url("chrome://browser/skin/panel-expander-closed@2x.png"); + } + + #editBookmarkPanel .expander-up > .button-box > .button-icon, + #editBookmarkPanel .expander-down > .button-box > .button-icon { + width: 9px; + } +} + +#editBMPanel_tagsField > .autocomplete-textbox-container > .textbox-input-box > html|*.textbox-input::-moz-placeholder { + opacity: 1.0; + color: #bbb; +} + +.editBMPanel_rowLabel { + text-align: end; +} + /* ::::: content area ::::: */ #sidebar { diff --git a/application/palemoon/themes/osx/jar.mn b/application/palemoon/themes/osx/jar.mn index 8f1ed0341..3df9496e8 100644 --- a/application/palemoon/themes/osx/jar.mn +++ b/application/palemoon/themes/osx/jar.mn @@ -41,6 +41,11 @@ browser.jar: skin/classic/browser/mixed-content-blocked-64.png skin/classic/browser/monitor.png skin/classic/browser/monitor_16-10.png + skin/classic/browser/panel-expander-closed.png + skin/classic/browser/panel-expander-closed@2x.png + skin/classic/browser/panel-expander-open.png + skin/classic/browser/panel-expander-open@2x.png + skin/classic/browser/panel-plus-sign.png skin/classic/browser/pageInfo.css skin/classic/browser/pageInfo.png skin/classic/browser/page-livemarks.png diff --git a/application/palemoon/themes/osx/panel-expander-closed.png b/application/palemoon/themes/osx/panel-expander-closed.png new file mode 100644 index 000000000..f0e97b22e Binary files /dev/null and b/application/palemoon/themes/osx/panel-expander-closed.png differ diff --git a/application/palemoon/themes/osx/panel-expander-closed@2x.png b/application/palemoon/themes/osx/panel-expander-closed@2x.png new file mode 100644 index 000000000..0e7ded50f Binary files /dev/null and b/application/palemoon/themes/osx/panel-expander-closed@2x.png differ diff --git a/application/palemoon/themes/osx/panel-expander-open.png b/application/palemoon/themes/osx/panel-expander-open.png new file mode 100644 index 000000000..e3febf4ff Binary files /dev/null and b/application/palemoon/themes/osx/panel-expander-open.png differ diff --git a/application/palemoon/themes/osx/panel-expander-open@2x.png b/application/palemoon/themes/osx/panel-expander-open@2x.png new file mode 100644 index 000000000..391337030 Binary files /dev/null and b/application/palemoon/themes/osx/panel-expander-open@2x.png differ diff --git a/application/palemoon/themes/osx/panel-plus-sign.png b/application/palemoon/themes/osx/panel-plus-sign.png new file mode 100644 index 000000000..375601e68 Binary files /dev/null and b/application/palemoon/themes/osx/panel-plus-sign.png differ -- cgit v1.2.3 From ee7eeac73c4af430f6916db1291e8b56a6b4ccb1 Mon Sep 17 00:00:00 2001 From: SpockMan02 Date: Sun, 5 Aug 2018 05:32:46 -0700 Subject: Revert osx editBookmarkOverlay.css to osx version --- .../themes/osx/places/editBookmarkOverlay.css | 62 +++++++++++++++------- 1 file changed, 44 insertions(+), 18 deletions(-) (limited to 'application') diff --git a/application/palemoon/themes/osx/places/editBookmarkOverlay.css b/application/palemoon/themes/osx/places/editBookmarkOverlay.css index 3becb5069..cc749c115 100644 --- a/application/palemoon/themes/osx/places/editBookmarkOverlay.css +++ b/application/palemoon/themes/osx/places/editBookmarkOverlay.css @@ -2,8 +2,12 @@ * 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/. */ +@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); +@namespace html url("http://www.w3.org/1999/xhtml"); + /**** folder menulist ****/ -.folder-icon > .menulist-label-box > .menulist-icon { +.folder-icon > .menulist-label-box > .menulist-icon, +.folder-icon > .menu-iconic-left > .menu-iconic-icon { width: 16px; height: 16px; } @@ -16,27 +20,41 @@ list-style-image: url("chrome://global/skin/tree/folder.png") !important; } +@media (min-resolution: 2dppx) { + .folder-icon { + list-style-image: url("chrome://global/skin/tree/folder@2x.png") !important; + } +} + +.menulist-icon { + margin: 0 !important; +} /**** expanders ****/ .expander-up, .expander-down { - min-width: 0; + -moz-appearance: none; margin: 0; - -moz-margin-end: 4px; -} - -.expander-up > .button-box, -.expander-down > .button-box { + margin-left: 8px; padding: 0; + min-width: 0; } .expander-up { - list-style-image: url("chrome://global/skin/icons/collapse.png"); + list-style-image: url("chrome://browser/skin/places/expander-open.png"); } .expander-down { - list-style-image: url("chrome://global/skin/icons/expand.png"); + list-style-image: url("chrome://browser/skin/places/expander-closed.png"); +} + +.expander-down:hover:active { + list-style-image: url("chrome://browser/skin/places/expander-closed-active.png"); +} + +.expander-up:hover:active { + list-style-image: url("chrome://browser/skin/places/expander-open-active.png"); } #editBookmarkPanelContent { @@ -44,8 +62,7 @@ } #editBMPanel_folderTree { - margin-top: 2px; - margin-bottom: 2px; + margin: 6px 4px 0 4px; } /* Hide the value column of the tag autocomplete popup @@ -58,22 +75,31 @@ } -/* ::::: bookmark panel dropdown icons ::::: */ +/* ----- BOOKMARK PANEL DROPDOWN MENU ITEMS ----- */ #editBMPanel_folderMenuList[selectedIndex="0"], #editBMPanel_toolbarFolderItem { - list-style-image: url("chrome://browser/skin/places/bookmarksToolbar.png") !important; - -moz-image-region: auto !important; + list-style-image: url("chrome://browser/skin/places/bookmarksToolbar.png") !important; } #editBMPanel_folderMenuList[selectedIndex="1"], #editBMPanel_bmRootItem { - list-style-image: url("chrome://browser/skin/places/bookmarksMenu.png") !important; - -moz-image-region: auto !important; + list-style-image: url("chrome://browser/skin/places/bookmarksMenu.png") !important; } #editBMPanel_folderMenuList[selectedIndex="2"], #editBMPanel_unfiledRootItem { - list-style-image: url("chrome://browser/skin/places/unsortedBookmarks.png") !important; - -moz-image-region: auto !important; + list-style-image: url("chrome://browser/skin/places/unfiledBookmarks.png") !important; +} + +@media (min-resolution: 2dppx) { + #editBMPanel_folderMenuList[selectedIndex="0"], + #editBMPanel_toolbarFolderItem { + list-style-image: url("chrome://browser/skin/places/bookmarksToolbar@2x.png") !important; + } + + #editBMPanel_folderMenuList[selectedIndex="2"], + #editBMPanel_unfiledRootItem { + list-style-image: url("chrome://browser/skin/places/unfiledBookmarks@2x.png") !important; + } } -- cgit v1.2.3 From 1ed5ef0ccba46b0c4e373becf6c58a1f9b2c250b Mon Sep 17 00:00:00 2001 From: SpockMan02 Date: Sun, 5 Aug 2018 06:15:12 -0700 Subject: Restore some osx icons --- application/palemoon/themes/osx/jar.mn | 4 ++++ .../themes/osx/places/expander-closed-active.png | Bin 0 -> 1329 bytes .../palemoon/themes/osx/places/expander-open-active.png | Bin 0 -> 1329 bytes .../palemoon/themes/osx/places/unfiledBookmarks.png | Bin 0 -> 586 bytes .../palemoon/themes/osx/places/unfiledBookmarks@2x.png | Bin 0 -> 1289 bytes 5 files changed, 4 insertions(+) create mode 100644 application/palemoon/themes/osx/places/expander-closed-active.png create mode 100644 application/palemoon/themes/osx/places/expander-open-active.png create mode 100644 application/palemoon/themes/osx/places/unfiledBookmarks.png create mode 100644 application/palemoon/themes/osx/places/unfiledBookmarks@2x.png (limited to 'application') diff --git a/application/palemoon/themes/osx/jar.mn b/application/palemoon/themes/osx/jar.mn index 3df9496e8..a66563989 100644 --- a/application/palemoon/themes/osx/jar.mn +++ b/application/palemoon/themes/osx/jar.mn @@ -121,6 +121,8 @@ browser.jar: skin/classic/browser/places/libraryToolbar.png (places/libraryToolbar.png) skin/classic/browser/places/starred48.png (places/starred48.png) skin/classic/browser/places/unstarred48.png (places/unstarred48.png) + skin/classic/browser/places/unfiledBookmarks.png (places/unfiledBookmarks.png) + skin/classic/browser/places/unfiledBookmarks@2x.png (places/unfiledBookmarks@2x.png) skin/classic/browser/places/tag.png (places/tag.png) skin/classic/browser/places/tag@2x.png (places/tag@2x.png) skin/classic/browser/places/history.png (places/history.png) @@ -128,6 +130,8 @@ browser.jar: skin/classic/browser/places/allBookmarks.png (places/allBookmarks.png) skin/classic/browser/places/unsortedBookmarks.png (places/unsortedBookmarks.png) skin/classic/browser/places/downloads.png (places/downloads.png) + skin/classic/browser/places/expander-closed-active.png (places/expander-closed-active.png) + skin/classic/browser/places/expander-open-active.png (places/expander-open-active.png) skin/classic/browser/places/livemark-item.png (places/livemark-item.png) skin/classic/browser/places/expander-closed.png (places/expander-closed.png) skin/classic/browser/places/expander-open.png (places/expander-open.png) diff --git a/application/palemoon/themes/osx/places/expander-closed-active.png b/application/palemoon/themes/osx/places/expander-closed-active.png new file mode 100644 index 000000000..7ef5f04f9 Binary files /dev/null and b/application/palemoon/themes/osx/places/expander-closed-active.png differ diff --git a/application/palemoon/themes/osx/places/expander-open-active.png b/application/palemoon/themes/osx/places/expander-open-active.png new file mode 100644 index 000000000..673ead568 Binary files /dev/null and b/application/palemoon/themes/osx/places/expander-open-active.png differ diff --git a/application/palemoon/themes/osx/places/unfiledBookmarks.png b/application/palemoon/themes/osx/places/unfiledBookmarks.png new file mode 100644 index 000000000..69495dac0 Binary files /dev/null and b/application/palemoon/themes/osx/places/unfiledBookmarks.png differ diff --git a/application/palemoon/themes/osx/places/unfiledBookmarks@2x.png b/application/palemoon/themes/osx/places/unfiledBookmarks@2x.png new file mode 100644 index 000000000..44efd6aba Binary files /dev/null and b/application/palemoon/themes/osx/places/unfiledBookmarks@2x.png differ -- cgit v1.2.3 From f44e99950fc25d16a3cdaffe26dadf7b58a9d38c Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Mon, 13 Aug 2018 19:00:08 +0200 Subject: Set version for normal unstable channel use. --- application/palemoon/config/version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'application') diff --git a/application/palemoon/config/version.txt b/application/palemoon/config/version.txt index 4f88287f0..466c71dc8 100644 --- a/application/palemoon/config/version.txt +++ b/application/palemoon/config/version.txt @@ -1 +1 @@ -28.0.0b5 \ No newline at end of file +28.1.0a1 \ No newline at end of file -- cgit v1.2.3 From 8c21e8ab96950fc8cb706ebfda174ba4aabbed05 Mon Sep 17 00:00:00 2001 From: wicknix <39230578+wicknix@users.noreply.github.com> Date: Tue, 14 Aug 2018 18:47:32 -0500 Subject: Update Info.plist.in fix exe name and min osx version --- application/basilisk/app/macbuild/Contents/Info.plist.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'application') diff --git a/application/basilisk/app/macbuild/Contents/Info.plist.in b/application/basilisk/app/macbuild/Contents/Info.plist.in index d6902fffd..3f9380606 100644 --- a/application/basilisk/app/macbuild/Contents/Info.plist.in +++ b/application/basilisk/app/macbuild/Contents/Info.plist.in @@ -143,7 +143,7 @@ CFBundleExecutable - firefox + basilisk CFBundleGetInfoString %MAC_APP_NAME% %APP_VERSION% CFBundleIconFile @@ -213,7 +213,7 @@ LSFileQuarantineEnabled LSMinimumSystemVersion - 10.9.0 + 10.7.0 NSSupportsAutomaticGraphicsSwitching NSPrincipalClass -- cgit v1.2.3 From f24786477d41d847ac1d9958fadfb70e637ab9e0 Mon Sep 17 00:00:00 2001 From: wicknix <39230578+wicknix@users.noreply.github.com> Date: Tue, 14 Aug 2018 18:59:58 -0500 Subject: Add files via upload remove old mac firefox icns files and replace with basilisk icns files --- application/basilisk/branding/official/disk.icns | Bin 459117 -> 41448 bytes .../basilisk/branding/official/document.icns | Bin 660004 -> 39113 bytes .../basilisk/branding/official/firefox.icns | Bin 801511 -> 39138 bytes 3 files changed, 0 insertions(+), 0 deletions(-) (limited to 'application') diff --git a/application/basilisk/branding/official/disk.icns b/application/basilisk/branding/official/disk.icns index 82fdccff8..bb3fdd5e4 100644 Binary files a/application/basilisk/branding/official/disk.icns and b/application/basilisk/branding/official/disk.icns differ diff --git a/application/basilisk/branding/official/document.icns b/application/basilisk/branding/official/document.icns index 5f03305d7..388296713 100644 Binary files a/application/basilisk/branding/official/document.icns and b/application/basilisk/branding/official/document.icns differ diff --git a/application/basilisk/branding/official/firefox.icns b/application/basilisk/branding/official/firefox.icns index 4d2ad5a04..8b9232cba 100644 Binary files a/application/basilisk/branding/official/firefox.icns and b/application/basilisk/branding/official/firefox.icns differ -- cgit v1.2.3 From 7dd67ceb0ac117932c05a6c37cc1e64766c3b877 Mon Sep 17 00:00:00 2001 From: JustOff Date: Fri, 17 Aug 2018 16:04:48 +0300 Subject: [PALEMOON] Align viewPartialSource with the UXP codebase --- application/palemoon/base/content/nsContextMenu.js | 26 ++-------------------- 1 file changed, 2 insertions(+), 24 deletions(-) (limited to 'application') diff --git a/application/palemoon/base/content/nsContextMenu.js b/application/palemoon/base/content/nsContextMenu.js index 19b2fac77..1d4f88816 100644 --- a/application/palemoon/base/content/nsContextMenu.js +++ b/application/palemoon/base/content/nsContextMenu.js @@ -838,30 +838,8 @@ nsContextMenu.prototype = { // View Partial Source viewPartialSource: function(aContext) { - var focusedWindow = document.commandDispatcher.focusedWindow; - if (focusedWindow == window) - focusedWindow = content; - - var docCharset = null; - if (focusedWindow) - docCharset = "charset=" + focusedWindow.document.characterSet; - - // "View Selection Source" and others such as "View MathML Source" - // are mutually exclusive, with the precedence given to the selection - // when there is one - var reference = null; - if (aContext == "selection") - reference = focusedWindow.getSelection(); - else if (aContext == "mathml") - reference = this.target; - else - throw "not reached"; - - // unused (and play nice for fragments generated via XSLT too) - var docUrl = null; - window.openDialog("chrome://global/content/viewPartialSource.xul", - "_blank", "scrollbars,resizable,chrome,dialog=no", - docUrl, docCharset, reference, aContext); + let target = aContext == "mathml" ? this.target : null; + top.gViewSourceUtils.viewPartialSourceInBrowser(gBrowser.selectedBrowser, target); }, // Open new "view source" window with the frame's URL. -- cgit v1.2.3 From f3ea4b9d7ac88193b0669e12a31a20685c89691b Mon Sep 17 00:00:00 2001 From: Gaming4JC Date: Sun, 19 Aug 2018 18:18:36 -0400 Subject: Basilisk: Remove TelemetryStopwatch --- .../content/browser-fullScreenAndPointerLock.js | 3 -- .../base/content/browser-gestureSupport.js | 10 +--- application/basilisk/base/content/browser.js | 23 --------- application/basilisk/base/content/browser.xul | 3 +- application/basilisk/base/content/sanitize.js | 55 ++-------------------- application/basilisk/base/content/tabbrowser.xml | 50 -------------------- .../basilisk/components/migration/AutoMigrate.jsm | 18 ------- .../components/migration/MigrationUtils.jsm | 16 ------- .../components/places/content/history-panel.js | 7 --- .../basilisk/components/places/content/places.js | 3 -- .../components/sessionstore/SessionFile.jsm | 2 - .../components/sessionstore/SessionSaver.jsm | 16 ------- .../components/sessionstore/SessionStore.jsm | 13 ----- .../components/sessionstore/nsSessionStartup.js | 1 - 14 files changed, 8 insertions(+), 212 deletions(-) (limited to 'application') diff --git a/application/basilisk/base/content/browser-fullScreenAndPointerLock.js b/application/basilisk/base/content/browser-fullScreenAndPointerLock.js index dbc9478c1..ebe55377f 100644 --- a/application/basilisk/base/content/browser-fullScreenAndPointerLock.js +++ b/application/basilisk/base/content/browser-fullScreenAndPointerLock.js @@ -379,12 +379,10 @@ var FullScreen = { let topWin = event.target.ownerGlobal.top; browser = gBrowser.getBrowserForContentWindow(topWin); } - TelemetryStopwatch.start("FULLSCREEN_CHANGE_MS"); this.enterDomFullscreen(browser); break; } case "MozDOMFullscreen:Exited": - TelemetryStopwatch.start("FULLSCREEN_CHANGE_MS"); this.cleanupDomFullscreen(); break; } @@ -410,7 +408,6 @@ var FullScreen = { } case "DOMFullscreen:Painted": { Services.obs.notifyObservers(window, "fullscreen-painted", ""); - TelemetryStopwatch.finish("FULLSCREEN_CHANGE_MS"); break; } } diff --git a/application/basilisk/base/content/browser-gestureSupport.js b/application/basilisk/base/content/browser-gestureSupport.js index f472e5c9a..6c21a6ad5 100644 --- a/application/basilisk/base/content/browser-gestureSupport.js +++ b/application/basilisk/base/content/browser-gestureSupport.js @@ -1001,13 +1001,10 @@ var gHistorySwipeAnimation = { ctx.DRAWWINDOW_ASYNC_DECODE_IMAGES | ctx.DRAWWINDOW_USE_WIDGET_LAYERS); - TelemetryStopwatch.start("FX_GESTURE_INSTALL_SNAPSHOT_OF_PAGE"); try { this._installCurrentPageSnapshot(canvas); this._assignSnapshotToCurrentBrowser(canvas); - } finally { - TelemetryStopwatch.finish("FX_GESTURE_INSTALL_SNAPSHOT_OF_PAGE"); - } + } catch (e) {} }, /** @@ -1058,7 +1055,6 @@ var gHistorySwipeAnimation = { return; } - TelemetryStopwatch.start("FX_GESTURE_COMPRESS_SNAPSHOT_OF_PAGE"); try { let browser = gBrowser.selectedBrowser; let snapshots = browser.snapshots; @@ -1072,9 +1068,7 @@ var gHistorySwipeAnimation = { } }, "image/png" ); - } finally { - TelemetryStopwatch.finish("FX_GESTURE_COMPRESS_SNAPSHOT_OF_PAGE"); - } + } catch (e) {} }, /** diff --git a/application/basilisk/base/content/browser.js b/application/basilisk/base/content/browser.js index 031144dfd..4f4ebb08f 100644 --- a/application/basilisk/base/content/browser.js +++ b/application/basilisk/base/content/browser.js @@ -45,7 +45,6 @@ Cu.import("resource://gre/modules/NotificationDB.jsm"); ["SitePermissions", "resource:///modules/SitePermissions.jsm"], ["TabCrashHandler", "resource:///modules/ContentCrashHandlers.jsm"], ["Task", "resource://gre/modules/Task.jsm"], - ["TelemetryStopwatch", "resource://gre/modules/TelemetryStopwatch.jsm"], ["Translation", "resource:///modules/translation/Translation.jsm"], ["UpdateUtils", "resource://gre/modules/UpdateUtils.jsm"], ["Weave", "resource://services-sync/main.js"], @@ -3818,8 +3817,6 @@ function toOpenWindowByType(inType, uri, features) function OpenBrowserWindow(options) { - var telemetryObj = {}; - TelemetryStopwatch.start("FX_NEW_WINDOW_MS", telemetryObj); function newDocumentShown(doc, topic, data) { if (topic == "document-shown" && @@ -3827,7 +3824,6 @@ function OpenBrowserWindow(options) doc.defaultView == win) { Services.obs.removeObserver(newDocumentShown, "document-shown"); Services.obs.removeObserver(windowClosed, "domwindowclosed"); - TelemetryStopwatch.finish("FX_NEW_WINDOW_MS", telemetryObj); } } @@ -4623,25 +4619,6 @@ var TabsProgressListener = { _startedLoadTimer: new WeakSet(), onStateChange: function (aBrowser, aWebProgress, aRequest, aStateFlags, aStatus) { - // Collect telemetry data about tab load times. - if (aWebProgress.isTopLevel && (!aRequest.originalURI || aRequest.originalURI.spec.scheme != "about")) { - if (aStateFlags & Ci.nsIWebProgressListener.STATE_IS_WINDOW) { - if (aStateFlags & Ci.nsIWebProgressListener.STATE_START) { - this._startedLoadTimer.add(aBrowser); - TelemetryStopwatch.start("FX_PAGE_LOAD_MS", aBrowser); - Services.telemetry.getHistogramById("FX_TOTAL_TOP_VISITS").add(true); - } else if (aStateFlags & Ci.nsIWebProgressListener.STATE_STOP && - this._startedLoadTimer.has(aBrowser)) { - this._startedLoadTimer.delete(aBrowser); - TelemetryStopwatch.finish("FX_PAGE_LOAD_MS", aBrowser); - } - } else if (aStateFlags & Ci.nsIWebProgressListener.STATE_STOP && - aStatus == Cr.NS_BINDING_ABORTED && - this._startedLoadTimer.has(aBrowser)) { - this._startedLoadTimer.delete(aBrowser); - TelemetryStopwatch.cancel("FX_PAGE_LOAD_MS", aBrowser); - } - } // We used to listen for clicks in the browser here, but when that // became unnecessary, removing the code below caused focus issues. diff --git a/application/basilisk/base/content/browser.xul b/application/basilisk/base/content/browser.xul index 982edfcd9..74a90f5e0 100644 --- a/application/basilisk/base/content/browser.xul +++ b/application/basilisk/base/content/browser.xul @@ -521,8 +521,7 @@ tabbrowser="content" flex="1" setfocus="false" - tooltip="tabbrowser-tab-tooltip" - stopwatchid="FX_TAB_CLICK_MS"> + tooltip="tabbrowser-tab-tooltip"> diff --git a/application/basilisk/base/content/sanitize.js b/application/basilisk/base/content/sanitize.js index 841376580..0a00defa4 100644 --- a/application/basilisk/base/content/sanitize.js +++ b/application/basilisk/base/content/sanitize.js @@ -19,8 +19,6 @@ XPCOMUtils.defineLazyModuleGetter(this, "Task", "resource://gre/modules/Task.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "DownloadsCommon", "resource:///modules/DownloadsCommon.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch", - "resource://gre/modules/TelemetryStopwatch.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "console", "resource://gre/modules/Console.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "Preferences", @@ -154,8 +152,6 @@ Sanitizer.prototype = { // we catch and store them, but continue to sanitize as much as possible. // Callers should check returned errors and give user feedback // about items that could not be sanitized - let refObj = {}; - TelemetryStopwatch.start("FX_SANITIZE_TOTAL", refObj); let annotateError = (name, ex) => { progress[name] = "failed"; @@ -188,7 +184,7 @@ Sanitizer.prototype = { } // Sanitization is complete. - TelemetryStopwatch.finish("FX_SANITIZE_TOTAL", refObj); + // Reset the inProgress preference since we were not killed during // sanitization. Preferences.reset(Sanitizer.PREF_SANITIZE_IN_PROGRESS); @@ -210,8 +206,6 @@ Sanitizer.prototype = { cache: { clear: Task.async(function* (range) { let seenException; - let refObj = {}; - TelemetryStopwatch.start("FX_SANITIZE_CACHE", refObj); try { // Cache doesn't consult timespan, nor does it have the @@ -232,7 +226,6 @@ Sanitizer.prototype = { seenException = ex; } - TelemetryStopwatch.finish("FX_SANITIZE_CACHE", refObj); if (seenException) { throw seenException; } @@ -243,10 +236,8 @@ Sanitizer.prototype = { clear: Task.async(function* (range) { let seenException; let yieldCounter = 0; - let refObj = {}; // Clear cookies. - TelemetryStopwatch.start("FX_SANITIZE_COOKIES_2", refObj); try { let cookieMgr = Components.classes["@mozilla.org/cookiemanager;1"] .getService(Ci.nsICookieManager); @@ -274,8 +265,6 @@ Sanitizer.prototype = { } } catch (ex) { seenException = ex; - } finally { - TelemetryStopwatch.finish("FX_SANITIZE_COOKIES_2", refObj); } // Clear deviceIds. Done asynchronously (returns before complete). @@ -332,13 +321,6 @@ Sanitizer.prototype = { if (!range || age >= 0) { let tags = ph.getPluginTags(); for (let tag of tags) { - let refObj = {}; - let probe = ""; - if (/\bFlash\b/.test(tag.name)) { - probe = tag.loaded ? "FX_SANITIZE_LOADED_FLASH" - : "FX_SANITIZE_UNLOADED_FLASH"; - TelemetryStopwatch.start(probe, refObj); - } try { let rv = yield new Promise(resolve => ph.clearSiteData(tag, null, FLAG_CLEAR_ALL, age, resolve) @@ -349,14 +331,8 @@ Sanitizer.prototype = { ph.clearSiteData(tag, null, FLAG_CLEAR_ALL, -1, resolve) ); } - if (probe) { - TelemetryStopwatch.finish(probe, refObj); - } } catch (ex) { // Ignore errors from plug-ins - if (probe) { - TelemetryStopwatch.cancel(probe, refObj); - } } } } @@ -413,8 +389,6 @@ Sanitizer.prototype = { history: { clear: Task.async(function* (range) { let seenException; - let refObj = {}; - TelemetryStopwatch.start("FX_SANITIZE_HISTORY", refObj); try { if (range) { yield PlacesUtils.history.removeVisitsByFilter({ @@ -427,8 +401,6 @@ Sanitizer.prototype = { } } catch (ex) { seenException = ex; - } finally { - TelemetryStopwatch.finish("FX_SANITIZE_HISTORY", refObj); } try { @@ -455,8 +427,6 @@ Sanitizer.prototype = { formdata: { clear: Task.async(function* (range) { let seenException; - let refObj = {}; - TelemetryStopwatch.start("FX_SANITIZE_FORMDATA", refObj); try { // Clear undo history of all searchBars let windows = Services.wm.getEnumerator("navigator:browser"); @@ -504,7 +474,6 @@ Sanitizer.prototype = { seenException = ex; } - TelemetryStopwatch.finish("FX_SANITIZE_FORMDATA", refObj); if (seenException) { throw seenException; } @@ -513,8 +482,6 @@ Sanitizer.prototype = { downloads: { clear: Task.async(function* (range) { - let refObj = {}; - TelemetryStopwatch.start("FX_SANITIZE_DOWNLOADS", refObj); try { let filterByTime = null; if (range) { @@ -528,16 +495,13 @@ Sanitizer.prototype = { // Clear all completed/cancelled downloads let list = yield Downloads.getList(Downloads.ALL); list.removeFinished(filterByTime); - } finally { - TelemetryStopwatch.finish("FX_SANITIZE_DOWNLOADS", refObj); - } + } catch (ex) { + } }) }, sessions: { clear: Task.async(function* (range) { - let refObj = {}; - TelemetryStopwatch.start("FX_SANITIZE_SESSIONS", refObj); try { // clear all auth tokens @@ -547,17 +511,14 @@ Sanitizer.prototype = { // clear FTP and plain HTTP auth sessions Services.obs.notifyObservers(null, "net:clear-active-logins", null); - } finally { - TelemetryStopwatch.finish("FX_SANITIZE_SESSIONS", refObj); - } + } catch (ex) { + } }) }, siteSettings: { clear: Task.async(function* (range) { let seenException; - let refObj = {}; - TelemetryStopwatch.start("FX_SANITIZE_SITESETTINGS", refObj); let startDateMS = range ? range[0] / 1000 : null; @@ -615,7 +576,6 @@ Sanitizer.prototype = { seenException = ex; } - TelemetryStopwatch.finish("FX_SANITIZE_SITESETTINGS", refObj); if (seenException) { throw seenException; } @@ -672,9 +632,6 @@ Sanitizer.prototype = { // If/once we get here, we should actually be able to close all windows. - let refObj = {}; - TelemetryStopwatch.start("FX_SANITIZE_OPENWINDOWS", refObj); - // First create a new window. We do this first so that on non-mac, we don't // accidentally close the app by closing all the windows. let handler = Cc["@mozilla.org/browser/clh;1"].getService(Ci.nsIBrowserHandler); @@ -719,7 +676,6 @@ Sanitizer.prototype = { newWindowOpened = true; // If we're the last thing to happen, invoke callback. if (numWindowsClosing == 0) { - TelemetryStopwatch.finish("FX_SANITIZE_OPENWINDOWS", refObj); resolve(); } } @@ -731,7 +687,6 @@ Sanitizer.prototype = { Services.obs.removeObserver(onWindowClosed, "xul-window-destroyed"); // If we're the last thing to happen, invoke callback. if (newWindowOpened) { - TelemetryStopwatch.finish("FX_SANITIZE_OPENWINDOWS", refObj); resolve(); } } diff --git a/application/basilisk/base/content/tabbrowser.xml b/application/basilisk/base/content/tabbrowser.xml index f8dbcf364..76ea5d167 100644 --- a/application/basilisk/base/content/tabbrowser.xml +++ b/application/basilisk/base/content/tabbrowser.xml @@ -1042,11 +1042,6 @@ - - null - @@ -1055,33 +1050,6 @@ if (this.mCurrentBrowser == newBrowser && !aForceUpdate) return; - if (!aForceUpdate) { - TelemetryStopwatch.start("FX_TAB_SWITCH_UPDATE_MS"); - if (!gMultiProcessBrowser) { - // old way of measuring tab paint which is not valid with e10s. - // Waiting until the next MozAfterPaint ensures that we capture - // the time it takes to paint, upload the textures to the compositor, - // and then composite. - if (this._tabSwitchID) { - TelemetryStopwatch.cancel("FX_TAB_SWITCH_TOTAL_MS"); - } - - let tabSwitchID = Symbol(); - - TelemetryStopwatch.start("FX_TAB_SWITCH_TOTAL_MS"); - this._tabSwitchID = tabSwitchID; - - let onMozAfterPaint = () => { - if (this._tabSwitchID === tabSwitchID) { - TelemetryStopwatch.finish("FX_TAB_SWITCH_TOTAL_MS"); - this._tabSwitchID = null; - } - window.removeEventListener("MozAfterPaint", onMozAfterPaint); - } - window.addEventListener("MozAfterPaint", onMozAfterPaint); - } - } - var oldTab = this.mCurrentTab; // Preview mode should not reset the owner @@ -1274,9 +1242,6 @@ }); this.dispatchEvent(event); } - - if (!aForceUpdate) - TelemetryStopwatch.finish("FX_TAB_SWITCH_UPDATE_MS"); ]]> @@ -4145,8 +4110,6 @@ */ startTabSwitch: function () { - TelemetryStopwatch.cancel("FX_TAB_SWITCH_TOTAL_E10S_MS", window); - TelemetryStopwatch.start("FX_TAB_SWITCH_TOTAL_E10S_MS", window); this.addMarker("AsyncTabSwitch:Start"); this.switchInProgress = true; }, @@ -4162,31 +4125,18 @@ this.getTabState(this.requestedTab) == this.STATE_LOADED) { // After this point the tab has switched from the content thread's point of view. // The changes will be visible after the next refresh driver tick + composite. - let time = TelemetryStopwatch.timeElapsed("FX_TAB_SWITCH_TOTAL_E10S_MS", window); - if (time != -1) { - TelemetryStopwatch.finish("FX_TAB_SWITCH_TOTAL_E10S_MS", window); - this.log("DEBUG: tab switch time = " + time); this.addMarker("AsyncTabSwitch:Finish"); - } this.switchInProgress = false; } }, spinnerDisplayed: function () { this.assert(!this.spinnerTab); - TelemetryStopwatch.start("FX_TAB_SWITCH_SPINNER_VISIBLE_MS", window); - // We have a second, similar probe for capturing recordings of - // when the spinner is displayed for very long periods. - TelemetryStopwatch.start("FX_TAB_SWITCH_SPINNER_VISIBLE_LONG_MS", window); this.addMarker("AsyncTabSwitch:SpinnerShown"); }, spinnerHidden: function () { this.assert(this.spinnerTab); - this.log("DEBUG: spinner time = " + - TelemetryStopwatch.timeElapsed("FX_TAB_SWITCH_SPINNER_VISIBLE_MS", window)); - TelemetryStopwatch.finish("FX_TAB_SWITCH_SPINNER_VISIBLE_MS", window); - TelemetryStopwatch.finish("FX_TAB_SWITCH_SPINNER_VISIBLE_LONG_MS", window); this.addMarker("AsyncTabSwitch:SpinnerHidden"); // we do not get a onPaint after displaying the spinner this.maybeFinishTabSwitch(); diff --git a/application/basilisk/components/migration/AutoMigrate.jsm b/application/basilisk/components/migration/AutoMigrate.jsm index b38747825..003f70d70 100644 --- a/application/basilisk/components/migration/AutoMigrate.jsm +++ b/application/basilisk/components/migration/AutoMigrate.jsm @@ -37,8 +37,6 @@ XPCOMUtils.defineLazyModuleGetter(this, "OS", "resource://gre/modules/osfile.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "PlacesUtils", "resource://gre/modules/PlacesUtils.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch", - "resource://gre/modules/TelemetryStopwatch.jsm"); XPCOMUtils.defineLazyGetter(this, "gBrandBundle", function() { const kBrandBundle = "chrome://branding/locale/brand.properties"; @@ -211,7 +209,6 @@ const AutoMigrate = { undo: Task.async(function* () { let browserId = Preferences.get(kAutoMigrateBrowserPref, "unknown"); - TelemetryStopwatch.startKeyed("FX_STARTUP_MIGRATION_UNDO_TOTAL_MS", browserId); let histogram = Services.telemetry.getHistogramById("FX_STARTUP_MIGRATION_AUTOMATED_IMPORT_UNDO"); histogram.add(0); if (!(yield this.canUndo())) { @@ -236,38 +233,24 @@ const AutoMigrate = { Services.telemetry.getKeyedHistogramById(histogramId).add(browserId, this._errorMap[type]); }; - let startTelemetryStopwatch = resourceType => { - let histogramId = `FX_STARTUP_MIGRATION_UNDO_${resourceType.toUpperCase()}_MS`; - TelemetryStopwatch.startKeyed(histogramId, browserId); - }; - let stopTelemetryStopwatch = resourceType => { - let histogramId = `FX_STARTUP_MIGRATION_UNDO_${resourceType.toUpperCase()}_MS`; - TelemetryStopwatch.finishKeyed(histogramId, browserId); - }; - startTelemetryStopwatch("bookmarks"); yield this._removeUnchangedBookmarks(stateData.get("bookmarks")).catch(ex => { Cu.reportError("Uncaught exception when removing unchanged bookmarks!"); Cu.reportError(ex); }); - stopTelemetryStopwatch("bookmarks"); reportErrorTelemetry("bookmarks"); histogram.add(15); - startTelemetryStopwatch("visits"); yield this._removeSomeVisits(stateData.get("visits")).catch(ex => { Cu.reportError("Uncaught exception when removing history visits!"); Cu.reportError(ex); }); - stopTelemetryStopwatch("visits"); reportErrorTelemetry("visits"); histogram.add(20); - startTelemetryStopwatch("logins"); yield this._removeUnchangedLogins(stateData.get("logins")).catch(ex => { Cu.reportError("Uncaught exception when removing unchanged logins!"); Cu.reportError(ex); }); - stopTelemetryStopwatch("logins"); reportErrorTelemetry("logins"); histogram.add(25); @@ -278,7 +261,6 @@ const AutoMigrate = { this._purgeUndoState(this.UNDO_REMOVED_REASON_UNDO_USED); histogram.add(30); - TelemetryStopwatch.finishKeyed("FX_STARTUP_MIGRATION_UNDO_TOTAL_MS", browserId); }), _removeNotificationBars() { diff --git a/application/basilisk/components/migration/MigrationUtils.jsm b/application/basilisk/components/migration/MigrationUtils.jsm index e133ec520..ccae006fe 100644 --- a/application/basilisk/components/migration/MigrationUtils.jsm +++ b/application/basilisk/components/migration/MigrationUtils.jsm @@ -32,8 +32,6 @@ XPCOMUtils.defineLazyModuleGetter(this, "ResponsivenessMonitor", "resource://gre/modules/ResponsivenessMonitor.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "Sqlite", "resource://gre/modules/Sqlite.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch", - "resource://gre/modules/TelemetryStopwatch.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "WindowsRegistry", "resource://gre/modules/WindowsRegistry.jsm"); @@ -254,14 +252,6 @@ this.MigratorPrototype = { let browserKey = this.getBrowserKey(); - let maybeStartTelemetryStopwatch = resourceType => { - let histogramId = getHistogramIdForResourceType(resourceType, "FX_MIGRATION_*_IMPORT_MS"); - if (histogramId) { - TelemetryStopwatch.startKeyed(histogramId, browserKey); - } - return histogramId; - }; - let maybeStartResponsivenessMonitor = resourceType => { let responsivenessMonitor; let responsivenessHistogramId = @@ -323,8 +313,6 @@ this.MigratorPrototype = { for (let [migrationType, itemResources] of resourcesGroupedByItems) { notify("Migration:ItemBeforeMigrate", migrationType); - let stopwatchHistogramId = maybeStartTelemetryStopwatch(migrationType); - let {responsivenessMonitor, responsivenessHistogramId} = maybeStartResponsivenessMonitor(migrationType); @@ -340,10 +328,6 @@ this.MigratorPrototype = { migrationType); resourcesGroupedByItems.delete(migrationType); - if (stopwatchHistogramId) { - TelemetryStopwatch.finishKeyed(stopwatchHistogramId, browserKey); - } - maybeFinishResponsivenessMonitor(responsivenessMonitor, responsivenessHistogramId); if (resourcesGroupedByItems.size == 0) { diff --git a/application/basilisk/components/places/content/history-panel.js b/application/basilisk/components/places/content/history-panel.js index 20dbbb5bd..65f00e93b 100644 --- a/application/basilisk/components/places/content/history-panel.js +++ b/application/basilisk/components/places/content/history-panel.js @@ -3,8 +3,6 @@ * 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/. */ -Components.utils.import("resource://gre/modules/TelemetryStopwatch.jsm"); - var gHistoryTree; var gSearchBox; var gHistoryGrouping = ""; @@ -81,16 +79,11 @@ function searchHistory(aInput) options.resultType = resultType; options.includeHidden = !!aInput; - if (gHistoryGrouping == "lastvisited") - this.TelemetryStopwatch.start("HISTORY_LASTVISITED_TREE_QUERY_TIME_MS"); - // call load() on the tree manually // instead of setting the place attribute in history-panel.xul // otherwise, we will end up calling load() twice gHistoryTree.load([query], options); - if (gHistoryGrouping == "lastvisited") - this.TelemetryStopwatch.finish("HISTORY_LASTVISITED_TREE_QUERY_TIME_MS"); } window.addEventListener("SidebarFocused", diff --git a/application/basilisk/components/places/content/places.js b/application/basilisk/components/places/content/places.js index aa43b20e6..375c3de17 100644 --- a/application/basilisk/components/places/content/places.js +++ b/application/basilisk/components/places/content/places.js @@ -5,7 +5,6 @@ Components.utils.import("resource://gre/modules/AppConstants.jsm"); Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); -Components.utils.import("resource://gre/modules/TelemetryStopwatch.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "MigrationUtils", "resource:///modules/MigrationUtils.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "Task", @@ -810,9 +809,7 @@ var PlacesSearchBox = { currentView.load([query], options); } else { - TelemetryStopwatch.start(HISTORY_LIBRARY_SEARCH_TELEMETRY); currentView.applyFilter(filterString, null, true); - TelemetryStopwatch.finish(HISTORY_LIBRARY_SEARCH_TELEMETRY); } break; case "downloads": diff --git a/application/basilisk/components/sessionstore/SessionFile.jsm b/application/basilisk/components/sessionstore/SessionFile.jsm index 80c4e7790..3c55101e4 100644 --- a/application/basilisk/components/sessionstore/SessionFile.jsm +++ b/application/basilisk/components/sessionstore/SessionFile.jsm @@ -43,8 +43,6 @@ XPCOMUtils.defineLazyModuleGetter(this, "PromiseUtils", "resource://gre/modules/PromiseUtils.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "RunState", "resource:///modules/sessionstore/RunState.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch", - "resource://gre/modules/TelemetryStopwatch.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "Task", "resource://gre/modules/Task.jsm"); XPCOMUtils.defineLazyServiceGetter(this, "Telemetry", diff --git a/application/basilisk/components/sessionstore/SessionSaver.jsm b/application/basilisk/components/sessionstore/SessionSaver.jsm index d672f8877..fa3a67512 100644 --- a/application/basilisk/components/sessionstore/SessionSaver.jsm +++ b/application/basilisk/components/sessionstore/SessionSaver.jsm @@ -13,7 +13,6 @@ const Ci = Components.interfaces; Cu.import("resource://gre/modules/Timer.jsm", this); Cu.import("resource://gre/modules/Services.jsm", this); Cu.import("resource://gre/modules/XPCOMUtils.jsm", this); -Cu.import("resource://gre/modules/TelemetryStopwatch.jsm", this); XPCOMUtils.defineLazyModuleGetter(this, "AppConstants", "resource://gre/modules/AppConstants.jsm"); @@ -52,19 +51,6 @@ function notify(subject, topic) { Services.obs.notifyObservers(subject, topic, ""); } -// TelemetryStopwatch helper functions. -function stopWatch(method) { - return function (...histograms) { - for (let hist of histograms) { - TelemetryStopwatch[method]("FX_SESSION_RESTORE_" + hist); - } - }; -} - -var stopWatchStart = stopWatch("start"); -var stopWatchCancel = stopWatch("cancel"); -var stopWatchFinish = stopWatch("finish"); - /** * The external API implemented by the SessionSaver module. */ @@ -182,7 +168,6 @@ var SessionSaverInternal = { return Promise.resolve(); } - stopWatchStart("COLLECT_DATA_MS", "COLLECT_DATA_LONGEST_OP_MS"); let state = SessionStore.getCurrentState(forceUpdateAllWindows); PrivacyFilter.filterPrivateWindowsAndTabs(state); @@ -226,7 +211,6 @@ var SessionSaverInternal = { } } - stopWatchFinish("COLLECT_DATA_MS", "COLLECT_DATA_LONGEST_OP_MS"); return this._writeState(state); }, diff --git a/application/basilisk/components/sessionstore/SessionStore.jsm b/application/basilisk/components/sessionstore/SessionStore.jsm index 6b30943f3..e23b205fc 100644 --- a/application/basilisk/components/sessionstore/SessionStore.jsm +++ b/application/basilisk/components/sessionstore/SessionStore.jsm @@ -135,7 +135,6 @@ Cu.import("resource://gre/modules/PrivateBrowsingUtils.jsm", this); Cu.import("resource://gre/modules/Promise.jsm", this); Cu.import("resource://gre/modules/Services.jsm", this); Cu.import("resource://gre/modules/Task.jsm", this); -Cu.import("resource://gre/modules/TelemetryStopwatch.jsm", this); Cu.import("resource://gre/modules/TelemetryTimestamps.jsm", this); Cu.import("resource://gre/modules/Timer.jsm", this); Cu.import("resource://gre/modules/XPCOMUtils.jsm", this); @@ -564,7 +563,6 @@ var SessionStoreInternal = { * Initialize the session using the state provided by SessionStartup */ initSession: function () { - TelemetryStopwatch.start("FX_SESSION_RESTORE_STARTUP_INIT_SESSION_MS"); let state; let ss = gSessionStartup; @@ -640,7 +638,6 @@ var SessionStoreInternal = { this._prefBranch.getBoolPref("sessionstore.resume_session_once")) this._prefBranch.setBoolPref("sessionstore.resume_session_once", false); - TelemetryStopwatch.finish("FX_SESSION_RESTORE_STARTUP_INIT_SESSION_MS"); return state; }, @@ -1247,9 +1244,7 @@ var SessionStoreInternal = { if (initialState) { Services.obs.notifyObservers(null, NOTIFY_RESTORING_ON_STARTUP, ""); } - TelemetryStopwatch.start("FX_SESSION_RESTORE_STARTUP_ONLOAD_INITIAL_WINDOW_MS"); this.initializeWindow(aWindow, initialState); - TelemetryStopwatch.finish("FX_SESSION_RESTORE_STARTUP_ONLOAD_INITIAL_WINDOW_MS"); // Let everyone know we're done. this._deferredInitialized.resolve(); @@ -2857,7 +2852,6 @@ var SessionStoreInternal = { var activeWindow = this._getMostRecentBrowserWindow(); - TelemetryStopwatch.start("FX_SESSION_RESTORE_COLLECT_ALL_WINDOWS_DATA_MS"); if (RunState.isRunning) { // update the data for all windows with activities since the last save operation this._forEachBrowserWindow(function(aWindow) { @@ -2872,7 +2866,6 @@ var SessionStoreInternal = { }); DirtyWindows.clear(); } - TelemetryStopwatch.finish("FX_SESSION_RESTORE_COLLECT_ALL_WINDOWS_DATA_MS"); // An array that at the end will hold all current window data. var total = []; @@ -2892,9 +2885,7 @@ var SessionStoreInternal = { nonPopupCount++; } - TelemetryStopwatch.start("FX_SESSION_RESTORE_COLLECT_COOKIES_MS"); SessionCookies.update(total); - TelemetryStopwatch.finish("FX_SESSION_RESTORE_COLLECT_COOKIES_MS"); // collect the data for all windows yet to be restored for (ix in this._statesToRestore) { @@ -3063,8 +3054,6 @@ var SessionStoreInternal = { if (aWindow && (!aWindow.__SSi || !this._windows[aWindow.__SSi])) this.onLoad(aWindow); - TelemetryStopwatch.start("FX_SESSION_RESTORE_RESTORE_WINDOW_MS"); - // We're not returning from this before we end up calling restoreTabs // for this window, so make sure we send the SSWindowStateBusy event. this._setWindowStateBusy(aWindow); @@ -3235,8 +3224,6 @@ var SessionStoreInternal = { // set smoothScroll back to the original value tabstrip.smoothScroll = smoothScroll; - TelemetryStopwatch.finish("FX_SESSION_RESTORE_RESTORE_WINDOW_MS"); - this._setWindowStateReady(aWindow); this._sendWindowRestoredNotification(aWindow); diff --git a/application/basilisk/components/sessionstore/nsSessionStartup.js b/application/basilisk/components/sessionstore/nsSessionStartup.js index 7593c48ec..9cda1552e 100644 --- a/application/basilisk/components/sessionstore/nsSessionStartup.js +++ b/application/basilisk/components/sessionstore/nsSessionStartup.js @@ -37,7 +37,6 @@ const Cr = Components.results; const Cu = Components.utils; Cu.import("resource://gre/modules/XPCOMUtils.jsm"); Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://gre/modules/TelemetryStopwatch.jsm"); Cu.import("resource://gre/modules/PrivateBrowsingUtils.jsm"); Cu.import("resource://gre/modules/Promise.jsm"); -- cgit v1.2.3 From 7231eca3c132907c095a66aa8b135a822aeffc7b Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Tue, 21 Aug 2018 10:30:35 +0200 Subject: Pale Moon blocklist update --- application/palemoon/app/blocklist.xml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'application') diff --git a/application/palemoon/app/blocklist.xml b/application/palemoon/app/blocklist.xml index 296b8ad24..d55784169 100644 --- a/application/palemoon/app/blocklist.xml +++ b/application/palemoon/app/blocklist.xml @@ -1,5 +1,5 @@ - @@ -2513,7 +2513,17 @@ xmlns="http://www.mozilla.org/2006/addons-blocklist"> - + + + + + + + + + + + -- cgit v1.2.3 From 432e26d594e599fe128e6c9b69a056e306936503 Mon Sep 17 00:00:00 2001 From: Gaming4JC Date: Tue, 21 Aug 2018 20:59:46 -0400 Subject: Basilisk: Fix locale error on migration.xul on Linux --- application/basilisk/components/migration/content/migration.xul | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'application') diff --git a/application/basilisk/components/migration/content/migration.xul b/application/basilisk/components/migration/content/migration.xul index e85091002..62c97c107 100644 --- a/application/basilisk/components/migration/content/migration.xul +++ b/application/basilisk/components/migration/content/migration.xul @@ -24,11 +24,9 @@ -#ifdef XP_WIN + &importFrom.label; -#else - &importFromUnix.label; -#endif + -- cgit v1.2.3 From 11c17e69a9ce07777644d8c638341dea3d0b0368 Mon Sep 17 00:00:00 2001 From: JustOff Date: Thu, 23 Aug 2018 23:29:38 +0300 Subject: [PALEMOON] Fix document navigation using F6 --- application/palemoon/base/content/browser-sets.inc | 3 --- application/palemoon/base/content/browser.js | 8 -------- application/palemoon/base/content/browser.xul | 1 + .../palemoon/components/downloads/content/downloadsOverlay.xul | 2 +- 4 files changed, 2 insertions(+), 12 deletions(-) (limited to 'application') diff --git a/application/palemoon/base/content/browser-sets.inc b/application/palemoon/base/content/browser-sets.inc index 64228678e..25794a65c 100644 --- a/application/palemoon/base/content/browser-sets.inc +++ b/application/palemoon/base/content/browser-sets.inc @@ -79,7 +79,6 @@ - @@ -251,8 +250,6 @@ #ifndef XP_MACOSX - - #else diff --git a/application/palemoon/base/content/browser.js b/application/palemoon/base/content/browser.js index 7421fc5c3..c7a2633d4 100644 --- a/application/palemoon/base/content/browser.js +++ b/application/palemoon/base/content/browser.js @@ -7222,14 +7222,6 @@ var MousePosTracker = { } }; -function focusNextFrame(event) { - let fm = Services.focus; - let dir = event.shiftKey ? fm.MOVEFOCUS_BACKWARDDOC : fm.MOVEFOCUS_FORWARDDOC; - let element = fm.moveFocus(window, null, dir, fm.FLAG_BYKEY); - if (element.ownerDocument == document) - focusAndSelectUrlBar(); -} - var BrowserChromeTest = { _cb: null, _ready: false, diff --git a/application/palemoon/base/content/browser.xul b/application/palemoon/base/content/browser.xul index 90899bb88..07ca54722 100644 --- a/application/palemoon/base/content/browser.xul +++ b/application/palemoon/base/content/browser.xul @@ -59,6 +59,7 @@ macanimationtype="document" screenX="4" screenY="4" fullscreenbutton="true" + retargetdocumentfocus="urlbar" persist="screenX screenY width height sizemode"> # All JS files which are not content (only) dependent that browser.xul diff --git a/application/palemoon/components/downloads/content/downloadsOverlay.xul b/application/palemoon/components/downloads/content/downloadsOverlay.xul index 2a4fe9099..ca35ee3cf 100644 --- a/application/palemoon/components/downloads/content/downloadsOverlay.xul +++ b/application/palemoon/components/downloads/content/downloadsOverlay.xul @@ -35,7 +35,7 @@ oncommand="goDoCommand('downloadsCmd_clearList')"/> - +