зеркало из https://github.com/mozilla/pjs.git
Bug 566194 - safe mode / security & compatibility check status are not exposed in new addon manager UI. r=dtownsend, a=blocking-beta6
This commit is contained in:
Родитель
bb9eb60571
Коммит
edf74f7438
|
@ -13,6 +13,15 @@
|
|||
<!ENTITY cmd.back.tooltip "Go back one page">
|
||||
<!ENTITY cmd.forward.tooltip "Go forward one page">
|
||||
|
||||
<!-- global warnings -->
|
||||
<!ENTITY warning.safemode.label "All add-ons have been disabled by safe mode.">
|
||||
<!ENTITY warning.checkcompatibility.label "Add-on compatibility checking is disabled. You may have incompatible add-ons.">
|
||||
<!ENTITY warning.checkcompatibility.enable.label "Enable">
|
||||
<!ENTITY warning.checkcompatibility.enable.tooltip "Enable add-on compatibility checking">
|
||||
<!ENTITY warning.updatesecurity.label "Add-on update security checking is disabled. You may be compromised by updates.">
|
||||
<!ENTITY warning.updatesecurity.enable.label "Enable">
|
||||
<!ENTITY warning.updatesecurity.enable.tooltip "Enable add-on update security checking">
|
||||
|
||||
<!-- categories / views -->
|
||||
<!ENTITY view.search.label "Search">
|
||||
<!ENTITY view.discover.label "Get Add-ons">
|
||||
|
|
|
@ -123,3 +123,10 @@ xhtml|link {
|
|||
.view-pane:not(#updates-view) .addon .relnotes-toggle {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#addons-page:not([warning]) .global-warning,
|
||||
#addons-page:not([warning="safemode"]) .global-warning-safemode,
|
||||
#addons-page:not([warning="checkcompatibility"]) .global-warning-checkcompatibility,
|
||||
#addons-page:not([warning="updatesecurity"]) .global-warning-updatesecurity {
|
||||
display: none;
|
||||
}
|
||||
|
|
|
@ -51,6 +51,10 @@ Cu.import("resource://gre/modules/AddonRepository.jsm");
|
|||
const PREF_DISCOVERURL = "extensions.webservice.discoverURL";
|
||||
const PREF_MAXRESULTS = "extensions.getAddons.maxResults";
|
||||
const PREF_BACKGROUND_UPDATE = "extensions.update.enabled";
|
||||
const PREF_CHECK_COMPATIBILITY = "extensions.checkCompatibility";
|
||||
const PREF_CHECK_UPDATE_SECURITY = "extensions.checkUpdateSecurity";
|
||||
|
||||
const BRANCH_REGEXP = /^([^\.]+\.[0-9]+[a-z]*).*/gi;
|
||||
|
||||
const LOADING_MSG_DELAY = 100;
|
||||
|
||||
|
@ -142,6 +146,7 @@ function loadView(aViewId) {
|
|||
var gEventManager = {
|
||||
_listeners: {},
|
||||
_installListeners: [],
|
||||
checkCompatibilityPref: "",
|
||||
|
||||
initialize: function() {
|
||||
var self = this;
|
||||
|
@ -164,9 +169,20 @@ var gEventManager = {
|
|||
});
|
||||
AddonManager.addInstallListener(this);
|
||||
AddonManager.addAddonListener(this);
|
||||
|
||||
var version = Services.appinfo.version.replace(BRANCH_REGEXP, "$1");
|
||||
this.checkCompatibilityPref = PREF_CHECK_COMPATIBILITY + "." + version;
|
||||
|
||||
Services.prefs.addObserver(this.checkCompatibilityPref, this, false);
|
||||
Services.prefs.addObserver(PREF_CHECK_UPDATE_SECURITY, this, false);
|
||||
|
||||
this.refreshGlobalWarning();
|
||||
},
|
||||
|
||||
shutdown: function() {
|
||||
Services.prefs.removeObserver(this.checkCompatibilityPref, this);
|
||||
Services.prefs.removeObserver(PREF_CHECK_UPDATE_SECURITY, this);
|
||||
|
||||
AddonManager.removeInstallListener(this);
|
||||
AddonManager.removeAddonListener(this);
|
||||
},
|
||||
|
@ -244,6 +260,49 @@ var gEventManager = {
|
|||
Cu.reportError(e);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
refreshGlobalWarning: function() {
|
||||
var page = document.getElementById("addons-page");
|
||||
|
||||
if (Services.appinfo.inSafeMode) {
|
||||
page.setAttribute("warning", "safemode");
|
||||
return;
|
||||
}
|
||||
|
||||
var checkUpdateSecurity = true;
|
||||
var checkUpdateSecurityDefault = true;
|
||||
try {
|
||||
checkUpdateSecurity = Services.prefs.getBoolPref(PREF_CHECK_UPDATE_SECURITY);
|
||||
} catch(e) { }
|
||||
try {
|
||||
var defaultBranch = Services.prefs.getDefaultBranch("");
|
||||
checkUpdateSecurityDefault = defaultBranch.getBoolPref(PREF_CHECK_UPDATE_SECURITY);
|
||||
} catch(e) { }
|
||||
if (checkUpdateSecurityDefault && !checkUpdateSecurity) {
|
||||
page.setAttribute("warning", "updatesecurity");
|
||||
return;
|
||||
}
|
||||
|
||||
var checkCompatibility = true;
|
||||
try {
|
||||
checkCompatibility = Services.prefs.getBoolPref(this.checkCompatibilityPref);
|
||||
} catch(e) { }
|
||||
if (!checkCompatibility) {
|
||||
page.setAttribute("warning", "checkcompatibility");
|
||||
return;
|
||||
}
|
||||
|
||||
page.removeAttribute("warning");
|
||||
},
|
||||
|
||||
observe: function(aSubject, aTopic, aData) {
|
||||
switch (aData) {
|
||||
case this.checkCompatibilityPref:
|
||||
case PREF_CHECK_UPDATE_SECURITY:
|
||||
this.refreshGlobalWarning();
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -440,6 +499,20 @@ var gViewController = {
|
|||
}
|
||||
},
|
||||
|
||||
cmd_enableCheckCompatibility: {
|
||||
isEnabled: function() true,
|
||||
doCommand: function() {
|
||||
Services.prefs.clearUserPref(gEventManager.checkCompatibilityPref);
|
||||
}
|
||||
},
|
||||
|
||||
cmd_enableUpdateSecurity: {
|
||||
isEnabled: function() true,
|
||||
doCommand: function() {
|
||||
Services.prefs.clearUserPref(PREF_CHECK_UPDATE_SECURITY);
|
||||
}
|
||||
},
|
||||
|
||||
cmd_goToDiscoverPane: {
|
||||
isEnabled: function() {
|
||||
return gDiscoverView.enabled;
|
||||
|
|
|
@ -98,6 +98,8 @@
|
|||
<command id="cmd_installFromFile"/>
|
||||
<command id="cmd_back"/>
|
||||
<command id="cmd_forward"/>
|
||||
<command id="cmd_enableCheckCompatibility"/>
|
||||
<command id="cmd_enableUpdateSecurity"/>
|
||||
</commandset>
|
||||
|
||||
<!-- view commands - these act on the selected addon -->
|
||||
|
@ -234,7 +236,26 @@
|
|||
tooltiptext="&search.filter2.available.tooltip;"/>
|
||||
</radiogroup>
|
||||
</hbox>
|
||||
<hbox class="view-header" pack="end">
|
||||
<hbox class="view-header global-warning-container">
|
||||
<!-- global warnings -->
|
||||
<hbox class="global-warning">
|
||||
<image class="warning-icon"/>
|
||||
<label class="global-warning-safemode"
|
||||
value="&warning.safemode.label;"/>
|
||||
<label class="global-warning-checkcompatibility"
|
||||
value="&warning.checkcompatibility.label;"/>
|
||||
<button class="button-link global-warning-checkcompatibility"
|
||||
label="&warning.checkcompatibility.enable.label;"
|
||||
tooltiptext="&warning.checkcompatibility.enable.tooltip;"
|
||||
command="cmd_enableCheckCompatibility"/>
|
||||
<label class="global-warning-updatesecurity"
|
||||
value="&warning.updatesecurity.label;"/>
|
||||
<button class="button-link global-warning-updatesecurity"
|
||||
label="&warning.updatesecurity.enable.label;"
|
||||
tooltiptext="&warning.updatesecurity.enable.tooltip;"
|
||||
command="cmd_enableUpdateSecurity"/>
|
||||
</hbox>
|
||||
<spacer flex="1"/>
|
||||
<hbox id="search-sorters" class="sort-controls"
|
||||
showrelevance="true" sortby="relevancescore" ascending="false"/>
|
||||
</hbox>
|
||||
|
@ -255,7 +276,26 @@
|
|||
|
||||
<!-- list view -->
|
||||
<vbox id="list-view" flex="1" class="view-pane">
|
||||
<hbox class="view-header" pack="end">
|
||||
<hbox class="view-header global-warning-container">
|
||||
<!-- global warnings -->
|
||||
<hbox class="global-warning">
|
||||
<image class="warning-icon"/>
|
||||
<label class="global-warning-safemode"
|
||||
value="&warning.safemode.label;"/>
|
||||
<label class="global-warning-checkcompatibility"
|
||||
value="&warning.checkcompatibility.label;"/>
|
||||
<button class="button-link global-warning-checkcompatibility"
|
||||
label="&warning.checkcompatibility.enable.label;"
|
||||
tooltiptext="&warning.checkcompatibility.enable.tooltip;"
|
||||
command="cmd_enableCheckCompatibility"/>
|
||||
<label class="global-warning-updatesecurity"
|
||||
value="&warning.updatesecurity.label;"/>
|
||||
<button class="button-link global-warning-updatesecurity"
|
||||
label="&warning.updatesecurity.enable.label;"
|
||||
tooltiptext="&warning.updatesecurity.enable.tooltip;"
|
||||
command="cmd_enableUpdateSecurity"/>
|
||||
</hbox>
|
||||
<spacer flex="1"/>
|
||||
<hbox id="list-sorters" class="sort-controls" sortby="name"
|
||||
ascending="true"/>
|
||||
</hbox>
|
||||
|
@ -272,7 +312,26 @@
|
|||
|
||||
<!-- updates view -->
|
||||
<vbox id="updates-view" flex="1" class="view-pane">
|
||||
<hbox class="view-header" pack="end">
|
||||
<hbox class="view-header global-warning-container">
|
||||
<!-- global warnings -->
|
||||
<hbox class="global-warning">
|
||||
<image class="warning-icon"/>
|
||||
<label class="global-warning-safemode"
|
||||
value="&warning.safemode.label;"/>
|
||||
<label class="global-warning-checkcompatibility"
|
||||
value="&warning.checkcompatibility.label;"/>
|
||||
<button class="button-link global-warning-checkcompatibility"
|
||||
label="&warning.checkcompatibility.enable.label;"
|
||||
tooltiptext="&warning.checkcompatibility.enable.tooltip;"
|
||||
command="cmd_enableCheckCompatibility"/>
|
||||
<label class="global-warning-updatesecurity"
|
||||
value="&warning.updatesecurity.label;"/>
|
||||
<button class="button-link global-warning-updatesecurity"
|
||||
label="&warning.updatesecurity.enable.label;"
|
||||
tooltiptext="&warning.updatesecurity.enable.tooltip;"
|
||||
command="cmd_enableUpdateSecurity"/>
|
||||
</hbox>
|
||||
<spacer flex="1"/>
|
||||
<hbox id="updates-sorters" class="sort-controls" sortby="dateUpdated"
|
||||
ascending="false"/>
|
||||
</hbox>
|
||||
|
@ -292,151 +351,171 @@
|
|||
</vbox>
|
||||
|
||||
<!-- detail view -->
|
||||
<scrollbox id="detail-view" flex="1" class="view-pane addon-view" orient="horizontal" pack="stretch" align="start">
|
||||
<spacer flex="1"/>
|
||||
<!-- "loading" splash screen -->
|
||||
<hbox class="loading" flex="1">
|
||||
<image/>
|
||||
<label value="&loading.label;"/>
|
||||
<vbox id="detail-view" flex="1" class="view-pane">
|
||||
<!-- global warnings -->
|
||||
<hbox class="global-warning-container global-warning" pack="start">
|
||||
<image class="warning-icon"/>
|
||||
<label class="global-warning-safemode"
|
||||
value="&warning.safemode.label;"/>
|
||||
<label class="global-warning-checkcompatibility"
|
||||
value="&warning.checkcompatibility.label;"/>
|
||||
<button class="button-link global-warning-checkcompatibility"
|
||||
label="&warning.checkcompatibility.enable.label;"
|
||||
tooltiptext="&warning.checkcompatibility.enable.tooltip;"
|
||||
command="cmd_enableCheckCompatibility"/>
|
||||
<label class="global-warning-updatesecurity"
|
||||
value="&warning.updatesecurity.label;"/>
|
||||
<button class="button-link global-warning-updatesecurity"
|
||||
label="&warning.updatesecurity.enable.label;"
|
||||
tooltiptext="&warning.updatesecurity.enable.tooltip;"
|
||||
command="cmd_enableUpdateSecurity"/>
|
||||
</hbox>
|
||||
<!-- actual detail view -->
|
||||
<vbox class="detail-view-container" flex="3">
|
||||
<vbox id="detail-notifications">
|
||||
<hbox id="warning-container" align="center" class="warning">
|
||||
<image class="warning-icon"/>
|
||||
<label id="detail-warning" flex="1"/>
|
||||
<label id="detail-warning-link" class="text-link"/>
|
||||
<spacer flex="5000"/> <!-- Necessary to allow the message to wrap -->
|
||||
</hbox>
|
||||
<hbox id="error-container" align="center" class="error">
|
||||
<image class="error-icon"/>
|
||||
<label id="detail-error" flex="1"/>
|
||||
<label id="detail-error-link" class="text-link"/>
|
||||
<spacer flex="5000"/> <!-- Necessary to allow the message to wrap -->
|
||||
</hbox>
|
||||
<hbox id="pending-container" align="center" class="pending">
|
||||
<image class="pending-icon"/>
|
||||
<label id="detail-pending" flex="1"/>
|
||||
<button class="button-link"
|
||||
label="&addon.restartNow.label;"
|
||||
command="cmd_restartApp"/>
|
||||
<button id="detail-undo" class="button-link"
|
||||
label="&addon.undoAction.label;"
|
||||
tooltipText="&addon.undoAction.tooltip;"
|
||||
command="cmd_cancelOperation"/>
|
||||
<spacer flex="5000"/> <!-- Necessary to allow the message to wrap -->
|
||||
</hbox>
|
||||
</vbox>
|
||||
<hbox align="start">
|
||||
<image id="detail-icon" class="icon"/>
|
||||
<vbox flex="1">
|
||||
<vbox id="detail-summary">
|
||||
<hbox id="detail-name-container">
|
||||
<label id="detail-name"/>
|
||||
<label id="detail-version"/>
|
||||
<label class="disabled-postfix" value="&addon.disabled.postfix;"/>
|
||||
<label class="update-postfix" value="&addon.update.postfix;"/>
|
||||
</hbox>
|
||||
<label id="detail-creator" class="creator"/>
|
||||
</vbox>
|
||||
<hbox id="detail-desc-container" align="end">
|
||||
<image id="detail-screenshot" hidden="true"/>
|
||||
<description id="detail-desc" flex="1"/>
|
||||
<scrollbox flex="1" class="addon-view" orient="horizontal" pack="stretch" align="start">
|
||||
<spacer flex="1"/>
|
||||
<!-- "loading" splash screen -->
|
||||
<hbox class="loading" flex="1">
|
||||
<image/>
|
||||
<label value="&loading.label;"/>
|
||||
</hbox>
|
||||
<!-- actual detail view -->
|
||||
<vbox class="detail-view-container" flex="3">
|
||||
<vbox id="detail-notifications">
|
||||
<hbox id="warning-container" align="center" class="warning">
|
||||
<image class="warning-icon"/>
|
||||
<label id="detail-warning" flex="1"/>
|
||||
<label id="detail-warning-link" class="text-link"/>
|
||||
<spacer flex="5000"/> <!-- Necessary to allow the message to wrap -->
|
||||
</hbox>
|
||||
<vbox id="detail-contributions">
|
||||
<description id="detail-contrib-description">
|
||||
&detail.contributions.description;
|
||||
</description>
|
||||
<hbox align="center">
|
||||
<label id="detail-contrib-suggested"/>
|
||||
<spacer flex="1"/>
|
||||
<button id="detail-contrib-button" class="addon-control"
|
||||
label="&cmd.contribute.label;"
|
||||
accesskey="&cmd.contribute.accesskey;"
|
||||
tooltiptext="&cmd.contribute.tooltip;"
|
||||
command="cmd_contribute"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
<grid id="detail-grid">
|
||||
<columns>
|
||||
<column flex="1"/>
|
||||
<column flex="2"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row class="detail-row" id="detail-dateUpdated" label="&detail.lastupdated.label;"/>
|
||||
<row class="detail-row-complex" id="detail-updates-row">
|
||||
<label class="detail-row-label" value="&detail.updateType;"/>
|
||||
<hbox align="center">
|
||||
<radiogroup id="detail-autoUpdate" orient="horizontal">
|
||||
<radio label="&detail.updateAutomatic.label;"
|
||||
tooltiptext="&detail.updateAutomatic.tooltip;"
|
||||
value="true"/>
|
||||
<radio label="&detail.updateManual.label;"
|
||||
tooltiptext="&detail.updateAutomatic.tooltip;"
|
||||
value="false"/>
|
||||
</radiogroup>
|
||||
<button id="detail-findUpdates" class="button-link"
|
||||
label="&detail.checkForUpdates.label;"
|
||||
accesskey="&detail.checkForUpdates.accesskey;"
|
||||
tooltiptext="&detail.checkForUpdates.tooltip;"
|
||||
command="cmd_findItemUpdates"/>
|
||||
</hbox>
|
||||
</row>
|
||||
<row class="detail-row-complex" id="detail-homepage-row" label="&detail.home;">
|
||||
<label class="detail-row-label" value="&detail.home;"/>
|
||||
<label id="detail-homepage" class="detail-row-value text-link"/>
|
||||
</row>
|
||||
<row class="detail-row-complex" id="detail-repository-row" label="&detail.repository;">
|
||||
<label class="detail-row-label" value="&detail.repository;"/>
|
||||
<label id="detail-repository" class="detail-row-value text-link"/>
|
||||
</row>
|
||||
<row class="detail-row" id="detail-size" label="&detail.size;"/>
|
||||
<row class="detail-row-complex" id="detail-rating-row">
|
||||
<label class="detail-row-label" value="&rating.label;"/>
|
||||
<hbox>
|
||||
<label id="detail-rating" class="meta-value meta-rating"
|
||||
showrating="average"/>
|
||||
<label id="detail-reviews" class="text-link"/>
|
||||
</hbox>
|
||||
</row>
|
||||
<row class="detail-row" id="detail-downloads" label="&detail.numberOfDownloads.label;"/>
|
||||
</rows>
|
||||
</grid>
|
||||
<hbox id="detail-controls">
|
||||
<button id="detail-prefs" class="addon-control"
|
||||
#ifdef XP_WIN
|
||||
label="&detail.showPreferencesWin.label;"
|
||||
accesskey="&detail.showPreferencesWin.accesskey;"
|
||||
tooltiptext="&detail.showPreferencesWin.tooltip;"
|
||||
#else
|
||||
label="&detail.showPreferencesUnix.label;"
|
||||
accesskey="&detail.showPreferencesUnix.accesskey;"
|
||||
tooltiptext="&detail.showPreferencesUnix.tooltip;"
|
||||
#endif
|
||||
command="cmd_showItemPreferences"/>
|
||||
<spacer flex="1"/>
|
||||
<button id="detail-uninstall" class="addon-control remove"
|
||||
label="&cmd.uninstallAddon.label;"
|
||||
accesskey="&cmd.uninstallAddon.accesskey;"
|
||||
command="cmd_uninstallItem"/>
|
||||
<button id="detail-enable" class="addon-control enable"
|
||||
label="&cmd.enableAddon.label;"
|
||||
accesskey="&cmd.enableAddon.accesskey;"
|
||||
command="cmd_enableItem"/>
|
||||
<button id="detail-disable" class="addon-control disable"
|
||||
label="&cmd.disableAddon.label;"
|
||||
accesskey="&cmd.disableAddon.accesskey;"
|
||||
command="cmd_disableItem"/>
|
||||
<button id="detail-install" class="addon-control install"
|
||||
label="&cmd.installAddon.label;"
|
||||
accesskey="&cmd.installAddon.accesskey;"
|
||||
command="cmd_installItem"/>
|
||||
<hbox id="error-container" align="center" class="error">
|
||||
<image class="error-icon"/>
|
||||
<label id="detail-error" flex="1"/>
|
||||
<label id="detail-error-link" class="text-link"/>
|
||||
<spacer flex="5000"/> <!-- Necessary to allow the message to wrap -->
|
||||
</hbox>
|
||||
<hbox id="pending-container" align="center" class="pending">
|
||||
<image class="pending-icon"/>
|
||||
<label id="detail-pending" flex="1"/>
|
||||
<button class="button-link"
|
||||
label="&addon.restartNow.label;"
|
||||
command="cmd_restartApp"/>
|
||||
<button id="detail-undo" class="button-link"
|
||||
label="&addon.undoAction.label;"
|
||||
tooltipText="&addon.undoAction.tooltip;"
|
||||
command="cmd_cancelOperation"/>
|
||||
<spacer flex="5000"/> <!-- Necessary to allow the message to wrap -->
|
||||
</hbox>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</vbox>
|
||||
<spacer flex="1"/>
|
||||
</scrollbox>
|
||||
<hbox align="start">
|
||||
<image id="detail-icon" class="icon"/>
|
||||
<vbox flex="1">
|
||||
<vbox id="detail-summary">
|
||||
<hbox id="detail-name-container">
|
||||
<label id="detail-name"/>
|
||||
<label id="detail-version"/>
|
||||
<label class="disabled-postfix" value="&addon.disabled.postfix;"/>
|
||||
<label class="update-postfix" value="&addon.update.postfix;"/>
|
||||
</hbox>
|
||||
<label id="detail-creator" class="creator"/>
|
||||
</vbox>
|
||||
<hbox id="detail-desc-container" align="end">
|
||||
<image id="detail-screenshot" hidden="true"/>
|
||||
<description id="detail-desc" flex="1"/>
|
||||
</hbox>
|
||||
<vbox id="detail-contributions">
|
||||
<description id="detail-contrib-description">
|
||||
&detail.contributions.description;
|
||||
</description>
|
||||
<hbox align="center">
|
||||
<label id="detail-contrib-suggested"/>
|
||||
<spacer flex="1"/>
|
||||
<button id="detail-contrib-button" class="addon-control"
|
||||
label="&cmd.contribute.label;"
|
||||
accesskey="&cmd.contribute.accesskey;"
|
||||
tooltiptext="&cmd.contribute.tooltip;"
|
||||
command="cmd_contribute"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
<grid id="detail-grid">
|
||||
<columns>
|
||||
<column flex="1"/>
|
||||
<column flex="2"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row class="detail-row" id="detail-dateUpdated" label="&detail.lastupdated.label;"/>
|
||||
<row class="detail-row-complex" id="detail-updates-row">
|
||||
<label class="detail-row-label" value="&detail.updateType;"/>
|
||||
<hbox align="center">
|
||||
<radiogroup id="detail-autoUpdate" orient="horizontal">
|
||||
<radio label="&detail.updateAutomatic.label;"
|
||||
tooltiptext="&detail.updateAutomatic.tooltip;"
|
||||
value="true"/>
|
||||
<radio label="&detail.updateManual.label;"
|
||||
tooltiptext="&detail.updateAutomatic.tooltip;"
|
||||
value="false"/>
|
||||
</radiogroup>
|
||||
<button id="detail-findUpdates" class="button-link"
|
||||
label="&detail.checkForUpdates.label;"
|
||||
accesskey="&detail.checkForUpdates.accesskey;"
|
||||
tooltiptext="&detail.checkForUpdates.tooltip;"
|
||||
command="cmd_findItemUpdates"/>
|
||||
</hbox>
|
||||
</row>
|
||||
<row class="detail-row-complex" id="detail-homepage-row" label="&detail.home;">
|
||||
<label class="detail-row-label" value="&detail.home;"/>
|
||||
<label id="detail-homepage" class="detail-row-value text-link"/>
|
||||
</row>
|
||||
<row class="detail-row-complex" id="detail-repository-row" label="&detail.repository;">
|
||||
<label class="detail-row-label" value="&detail.repository;"/>
|
||||
<label id="detail-repository" class="detail-row-value text-link"/>
|
||||
</row>
|
||||
<row class="detail-row" id="detail-size" label="&detail.size;"/>
|
||||
<row class="detail-row-complex" id="detail-rating-row">
|
||||
<label class="detail-row-label" value="&rating.label;"/>
|
||||
<hbox>
|
||||
<label id="detail-rating" class="meta-value meta-rating"
|
||||
showrating="average"/>
|
||||
<label id="detail-reviews" class="text-link"/>
|
||||
</hbox>
|
||||
</row>
|
||||
<row class="detail-row" id="detail-downloads" label="&detail.numberOfDownloads.label;"/>
|
||||
</rows>
|
||||
</grid>
|
||||
<hbox id="detail-controls">
|
||||
<button id="detail-prefs" class="addon-control"
|
||||
#ifdef XP_WIN
|
||||
label="&detail.showPreferencesWin.label;"
|
||||
accesskey="&detail.showPreferencesWin.accesskey;"
|
||||
tooltiptext="&detail.showPreferencesWin.tooltip;"
|
||||
#else
|
||||
label="&detail.showPreferencesUnix.label;"
|
||||
accesskey="&detail.showPreferencesUnix.accesskey;"
|
||||
tooltiptext="&detail.showPreferencesUnix.tooltip;"
|
||||
#endif
|
||||
command="cmd_showItemPreferences"/>
|
||||
<spacer flex="1"/>
|
||||
<button id="detail-uninstall" class="addon-control remove"
|
||||
label="&cmd.uninstallAddon.label;"
|
||||
accesskey="&cmd.uninstallAddon.accesskey;"
|
||||
command="cmd_uninstallItem"/>
|
||||
<button id="detail-enable" class="addon-control enable"
|
||||
label="&cmd.enableAddon.label;"
|
||||
accesskey="&cmd.enableAddon.accesskey;"
|
||||
command="cmd_enableItem"/>
|
||||
<button id="detail-disable" class="addon-control disable"
|
||||
label="&cmd.disableAddon.label;"
|
||||
accesskey="&cmd.disableAddon.accesskey;"
|
||||
command="cmd_disableItem"/>
|
||||
<button id="detail-install" class="addon-control install"
|
||||
label="&cmd.installAddon.label;"
|
||||
accesskey="&cmd.installAddon.accesskey;"
|
||||
command="cmd_installItem"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</vbox>
|
||||
<spacer flex="1"/>
|
||||
</scrollbox>
|
||||
</vbox>
|
||||
|
||||
</deck>
|
||||
|
||||
|
|
|
@ -75,6 +75,7 @@ _TEST_FILES = \
|
|||
browser_backgroundupdate_menuitem.js \
|
||||
browser_recentupdates.js \
|
||||
browser_manualupdates.js \
|
||||
browser_globalwarnings.js \
|
||||
redirect.sjs \
|
||||
releaseNotes.xhtml \
|
||||
$(NULL)
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
|
||||
// Bug 566194 - safe mode / security & compatibility check status are not exposed in new addon manager UI
|
||||
|
||||
function test() {
|
||||
waitForExplicitFinish();
|
||||
run_next_test();
|
||||
}
|
||||
|
||||
function end_test() {
|
||||
finish();
|
||||
}
|
||||
|
||||
add_test(function() {
|
||||
info("Testing compatibility checking warning");
|
||||
|
||||
var version = Services.appinfo.version.replace(/^([^\.]+\.[0-9]+[a-z]*).*/gi, "$1");
|
||||
var pref = "extensions.checkCompatibility." + version;
|
||||
info("Setting " + pref + " pref to false")
|
||||
Services.prefs.setBoolPref(pref, false);
|
||||
|
||||
open_manager(null, function(aWindow) {
|
||||
var label = aWindow.document.querySelector("#list-view label.global-warning-checkcompatibility");
|
||||
is_element_visible(label, "Check Compatibility warning label should be visible");
|
||||
var button = aWindow.document.querySelector("#list-view button.global-warning-checkcompatibility");
|
||||
is_element_visible(button, "Check Compatibility warning button should be visible");
|
||||
|
||||
info("Clicking 'Enable' button");
|
||||
EventUtils.synthesizeMouse(button, 2, 2, { }, aWindow);
|
||||
is(Services.prefs.prefHasUserValue(pref), false, "Check Compatability pref should be cleared");
|
||||
is_element_hidden(label, "Check Compatibility warning label should be hidden");
|
||||
is_element_hidden(button, "Check Compatibility warning button should be hidden");
|
||||
|
||||
close_manager(aWindow, function() {
|
||||
run_next_test();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
add_test(function() {
|
||||
info("Testing update security checking warning");
|
||||
|
||||
var pref = "extensions.checkUpdateSecurity";
|
||||
info("Setting " + pref + " pref to false")
|
||||
Services.prefs.setBoolPref(pref, false);
|
||||
|
||||
open_manager(null, function(aWindow) {
|
||||
var label = aWindow.document.querySelector("#list-view label.global-warning-updatesecurity");
|
||||
is_element_visible(label, "Check Update Security warning label should be visible");
|
||||
var button = aWindow.document.querySelector("#list-view button.global-warning-updatesecurity");
|
||||
is_element_visible(button, "Check Update Security warning button should be visible");
|
||||
|
||||
info("Clicking 'Enable' button");
|
||||
EventUtils.synthesizeMouse(button, 2, 2, { }, aWindow);
|
||||
is(Services.prefs.prefHasUserValue(pref), false, "Check Update Security pref should be cleared");
|
||||
is_element_hidden(label, "Check Update Security warning label should be hidden");
|
||||
is_element_hidden(button, "Check Update Security warning button should be hidden");
|
||||
|
||||
close_manager(aWindow, function() {
|
||||
run_next_test();
|
||||
});
|
||||
});
|
||||
});
|
|
@ -83,6 +83,46 @@
|
|||
list-style-image: url("moz-icon://stock/gtk-go-forward-rtl?size=toolbar&state=disabled");
|
||||
}
|
||||
|
||||
/*** global warnings ***/
|
||||
|
||||
.global-warning {
|
||||
-moz-box-align: center;
|
||||
margin: 0 8px;
|
||||
color: #916D15;
|
||||
text-shadow: #FFFFFF 1px 1px 1px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#addons-page[warning] .global-warning-container {
|
||||
background-color: rgba(255, 255, 0, 0.1);
|
||||
background-image: url("chrome://mozapps/skin/extensions/warning-stripes.png");
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
|
||||
/*** notification icons ***/
|
||||
|
||||
.warning-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/warning-16.png");
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
.error-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/error-16.png");
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
.pending-icon,
|
||||
.info-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/information-16.png");
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
/*** category selector ***/
|
||||
|
||||
#categories {
|
||||
|
@ -379,28 +419,6 @@
|
|||
color: #4F7939;
|
||||
}
|
||||
|
||||
.warning-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/warning-16.png");
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
.error-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/error-16.png");
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
.pending-icon,
|
||||
.info-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/information-16.png");
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
.addon-view[notification="warning"] {
|
||||
background-image: -moz-linear-gradient(rgba(255, 255, 0, 0.2), rgba(255, 255, 0, 0.1));
|
||||
}
|
||||
|
@ -518,15 +536,15 @@
|
|||
opacity: 0.6;
|
||||
}
|
||||
|
||||
#detail-view > .loading {
|
||||
#detail-view .loading {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
#detail-view:not([loading]) > .loading {
|
||||
#detail-view:not([loading]) .loading {
|
||||
visibility: collapse;
|
||||
}
|
||||
|
||||
#detail-view[loading-extended] > .loading {
|
||||
#detail-view[loading-extended] .loading {
|
||||
-moz-box-align: center;
|
||||
-moz-box-pack: center;
|
||||
opacity: 1;
|
||||
|
@ -534,7 +552,7 @@
|
|||
-moz-transition-duration: 1s;
|
||||
}
|
||||
|
||||
#detail-view > .loading > image {
|
||||
#detail-view .loading > image {
|
||||
list-style-image: url("chrome://global/skin/icons/loading_16.png");
|
||||
}
|
||||
|
||||
|
|
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 2.1 KiB |
|
@ -25,6 +25,7 @@ toolkit.jar:
|
|||
+ skin/classic/mozapps/extensions/pause.png (extensions/pause.png)
|
||||
+ skin/classic/mozapps/extensions/utilities.png (extensions/utilities.png)
|
||||
+ skin/classic/mozapps/extensions/heart.png (extensions/heart.png)
|
||||
+ skin/classic/mozapps/extensions/warning-stripes.png (extensions/warning-stripes.png)
|
||||
+ skin/classic/mozapps/passwordmgr/key.png (passwordmgr/key.png)
|
||||
+ skin/classic/mozapps/plugins/notifyPluginBlocked.png (plugins/pluginBlocked-16.png)
|
||||
+ skin/classic/mozapps/plugins/notifyPluginCrashed.png (plugins/pluginGeneric-16.png)
|
||||
|
|
|
@ -96,6 +96,46 @@
|
|||
background-image: @toolbarbuttonInactiveBackgroundImage@;
|
||||
}
|
||||
|
||||
/*** global warnings ***/
|
||||
|
||||
.global-warning {
|
||||
-moz-box-align: center;
|
||||
margin: 0 8px;
|
||||
color: #916D15;
|
||||
text-shadow: #FFFFFF 1px 1px 1px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#addons-page[warning] .global-warning-container {
|
||||
background-color: rgba(255, 255, 0, 0.1);
|
||||
background-image: url("chrome://mozapps/skin/extensions/warning-stripes.png");
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
|
||||
/*** notification icons ***/
|
||||
|
||||
.warning-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/warning-16.png");
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
.error-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/error-16.png");
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
.pending-icon,
|
||||
.info-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/information-16.png");
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
/*** category selector ***/
|
||||
|
||||
#categories {
|
||||
|
@ -392,28 +432,6 @@
|
|||
color: #4F7939;
|
||||
}
|
||||
|
||||
.warning-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/warning-16.png");
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
.error-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/error-16.png");
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
.pending-icon,
|
||||
.info-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/information-16.png");
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
.addon-view[notification="warning"] {
|
||||
background-image: -moz-linear-gradient(rgba(255, 255, 0, 0.2), rgba(255, 255, 0, 0.1));
|
||||
}
|
||||
|
@ -542,15 +560,15 @@
|
|||
opacity: 0.6;
|
||||
}
|
||||
|
||||
#detail-view > .loading {
|
||||
#detail-view .loading {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
#detail-view:not([loading]) > .loading {
|
||||
#detail-view:not([loading]) .loading {
|
||||
visibility: collapse;
|
||||
}
|
||||
|
||||
#detail-view[loading-extended] > .loading {
|
||||
#detail-view[loading-extended] .loading {
|
||||
-moz-box-align: center;
|
||||
-moz-box-pack: center;
|
||||
opacity: 1;
|
||||
|
@ -558,7 +576,7 @@
|
|||
-moz-transition-duration: 1s;
|
||||
}
|
||||
|
||||
#detail-view > .loading > image {
|
||||
#detail-view .loading > image {
|
||||
list-style-image: url("chrome://global/skin/icons/loading_16.png");
|
||||
}
|
||||
|
||||
|
|
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 2.1 KiB |
|
@ -28,6 +28,7 @@ toolkit.jar:
|
|||
skin/classic/mozapps/extensions/utilities.png (extensions/utilities.png)
|
||||
skin/classic/mozapps/extensions/heart.png (extensions/heart.png)
|
||||
skin/classic/mozapps/extensions/navigation.png (extensions/navigation.png)
|
||||
skin/classic/mozapps/extensions/warning-stripes.png (extensions/warning-stripes.png)
|
||||
skin/classic/mozapps/extensions/about.css (extensions/about.css)
|
||||
* skin/classic/mozapps/extensions/extensions.css (extensions/extensions.css)
|
||||
skin/classic/mozapps/extensions/update.css (extensions/update.css)
|
||||
|
|
|
@ -63,6 +63,55 @@
|
|||
-moz-image-region: rect(0, 36px, 18px, 18px);
|
||||
}
|
||||
|
||||
/*** global warnings ***/
|
||||
|
||||
.global-warning {
|
||||
-moz-box-align: center;
|
||||
padding: 0 8px;
|
||||
color: #916D15;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.global-warning,
|
||||
.global-warning .button-link {
|
||||
text-shadow: #FFFFFF 1px 1px 1px;
|
||||
}
|
||||
|
||||
#addons-page[warning] .global-warning-container {
|
||||
background-color: rgba(255, 255, 0, 0.1);
|
||||
background-image: url("chrome://mozapps/skin/extensions/warning-stripes.png");
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
|
||||
#detail-view .global-warning {
|
||||
padding: 4px 12px;
|
||||
border-bottom: 1px solid #A8A8A8;
|
||||
}
|
||||
|
||||
/*** notification icons ***/
|
||||
|
||||
.warning-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/warning-16.png");
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
.error-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/error-16.png");
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
.pending-icon,
|
||||
.info-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/information-16.png");
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
/*** category selector ***/
|
||||
|
||||
#categories {
|
||||
|
@ -359,28 +408,6 @@
|
|||
color: #4F7939;
|
||||
}
|
||||
|
||||
.warning-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/warning-16.png");
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
.error-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/error-16.png");
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
.pending-icon,
|
||||
.info-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/information-16.png");
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
.addon-view[notification="warning"] {
|
||||
background-image: -moz-linear-gradient(rgba(255, 255, 0, 0.2), rgba(255, 255, 0, 0.1));
|
||||
}
|
||||
|
@ -509,15 +536,15 @@
|
|||
opacity: 0.6;
|
||||
}
|
||||
|
||||
#detail-view > .loading {
|
||||
#detail-view .loading {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
#detail-view:not([loading]) > .loading {
|
||||
#detail-view:not([loading]) .loading {
|
||||
visibility: collapse;
|
||||
}
|
||||
|
||||
#detail-view[loading-extended] > .loading {
|
||||
#detail-view[loading-extended] .loading {
|
||||
-moz-box-align: center;
|
||||
-moz-box-pack: center;
|
||||
opacity: 1;
|
||||
|
@ -525,7 +552,7 @@
|
|||
-moz-transition-duration: 1s;
|
||||
}
|
||||
|
||||
#detail-view > .loading > image {
|
||||
#detail-view .loading > image {
|
||||
list-style-image: url("chrome://global/skin/icons/loading_16.png");
|
||||
}
|
||||
|
||||
|
|
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 2.1 KiB |
|
@ -34,6 +34,7 @@ toolkit.jar:
|
|||
skin/classic/mozapps/extensions/utilities.png (extensions/utilities.png)
|
||||
skin/classic/mozapps/extensions/heart.png (extensions/heart.png)
|
||||
skin/classic/mozapps/extensions/navigation.png (extensions/navigation.png)
|
||||
skin/classic/mozapps/extensions/warning-stripes.png (extensions/warning-stripes.png)
|
||||
skin/classic/mozapps/extensions/eula.css (extensions/eula.css)
|
||||
skin/classic/mozapps/handling/handling.css (handling/handling.css)
|
||||
skin/classic/mozapps/passwordmgr/key.png (passwordmgr/key.png)
|
||||
|
@ -99,6 +100,7 @@ toolkit.jar:
|
|||
skin/classic/aero/mozapps/extensions/utilities.png (extensions/utilities.png)
|
||||
skin/classic/aero/mozapps/extensions/heart.png (extensions/heart.png)
|
||||
skin/classic/aero/mozapps/extensions/navigation.png (extensions/navigation.png)
|
||||
skin/classic/aero/mozapps/extensions/warning-stripes.png (extensions/warning-stripes.png)
|
||||
skin/classic/aero/mozapps/extensions/eula.css (extensions/eula.css)
|
||||
skin/classic/aero/mozapps/handling/handling.css (handling/handling.css)
|
||||
skin/classic/aero/mozapps/passwordmgr/key.png (passwordmgr/key-aero.png)
|
||||
|
|
Загрузка…
Ссылка в новой задаче