зеркало из https://github.com/mozilla/gecko-dev.git
Коммит
3e6e4cfe95
|
@ -1429,33 +1429,8 @@ pref("devtools.debugger.ui.variables-sorting-enabled", true);
|
|||
pref("devtools.debugger.ui.variables-only-enum-visible", false);
|
||||
pref("devtools.debugger.ui.variables-searchbox-visible", false);
|
||||
|
||||
// Enable the Profiler
|
||||
pref("devtools.profiler.enabled", true);
|
||||
|
||||
// Timeline panel settings
|
||||
#ifdef NIGHTLY_BUILD
|
||||
pref("devtools.timeline.enabled", true);
|
||||
#else
|
||||
pref("devtools.timeline.enabled", false);
|
||||
#endif
|
||||
|
||||
// TODO remove `devtools.timeline.hiddenMarkers.` branches when performance
|
||||
// tool lands (bug 1075567)
|
||||
pref("devtools.timeline.hiddenMarkers", "[]");
|
||||
|
||||
// Enable perftools via build command
|
||||
#ifdef MOZ_DEVTOOLS_PERFTOOLS
|
||||
pref("devtools.performance_dev.enabled", true);
|
||||
#else
|
||||
pref("devtools.performance_dev.enabled", false);
|
||||
#endif
|
||||
|
||||
// The default Profiler UI settings
|
||||
// TODO remove `devtools.profiler.ui.` branches when performance
|
||||
// tool lands (bug 1075567)
|
||||
pref("devtools.profiler.ui.flatten-tree-recursion", true);
|
||||
pref("devtools.profiler.ui.show-platform-data", false);
|
||||
pref("devtools.profiler.ui.show-idle-blocks", true);
|
||||
// Enable the Performance tools
|
||||
pref("devtools.performance.enabled", true);
|
||||
|
||||
// The default Performance UI settings
|
||||
pref("devtools.performance.memory.sample-probability", "0.05");
|
||||
|
|
|
@ -434,10 +434,10 @@ var PlacesCommandHook = {
|
|||
*/
|
||||
addLiveBookmark: function PCH_addLiveBookmark(url, feedTitle, feedSubtitle) {
|
||||
var feedURI = makeURI(url);
|
||||
|
||||
var doc = gBrowser.contentDocument;
|
||||
|
||||
var doc = gBrowser.contentDocumentAsCPOW;
|
||||
var title = (arguments.length > 1) ? feedTitle : doc.title;
|
||||
|
||||
|
||||
var description;
|
||||
if (arguments.length > 2)
|
||||
description = feedSubtitle;
|
||||
|
|
|
@ -3546,6 +3546,10 @@
|
|||
readonly="true"
|
||||
onget="return this.mCurrentBrowser.contentWindow"/>
|
||||
|
||||
<property name="contentWindowAsCPOW"
|
||||
readonly="true"
|
||||
onget="return this.mCurrentBrowser.contentWindowAsCPOW"/>
|
||||
|
||||
<property name="sessionHistory"
|
||||
onget="return this.mCurrentBrowser.sessionHistory;"
|
||||
readonly="true"/>
|
||||
|
@ -3566,6 +3570,10 @@
|
|||
onget="return this.mCurrentBrowser.contentDocument;"
|
||||
readonly="true"/>
|
||||
|
||||
<property name="contentDocumentAsCPOW"
|
||||
onget="return this.mCurrentBrowser.contentDocumentAsCPOW;"
|
||||
readonly="true"/>
|
||||
|
||||
<property name="contentTitle"
|
||||
onget="return this.mCurrentBrowser.contentTitle;"
|
||||
readonly="true"/>
|
||||
|
|
|
@ -181,14 +181,12 @@ function test_open_from_chrome() {
|
|||
title: "test_open_from_chrome",
|
||||
param: "",
|
||||
},
|
||||
finalizeFn: function () {},
|
||||
timeout: 10000,
|
||||
finalizeFn: function () {}
|
||||
});
|
||||
}
|
||||
|
||||
function waitForTabOpen(aOptions) {
|
||||
let start = Date.now();
|
||||
let timeout = aOptions.timeout || 5000;
|
||||
let message = aOptions.message;
|
||||
|
||||
if (!message.title) {
|
||||
|
@ -207,7 +205,6 @@ function waitForTabOpen(aOptions) {
|
|||
tab.linkedBrowser.addEventListener("load", function onLoad(ev){
|
||||
let browser = ev.currentTarget;
|
||||
browser.removeEventListener("load", onLoad, true, true);
|
||||
clearTimeout(onTimeout);
|
||||
|
||||
is(browser.contentWindow.document.title, message.title,
|
||||
"Opened Tab is expected: " + message.title);
|
||||
|
@ -228,14 +225,6 @@ function waitForTabOpen(aOptions) {
|
|||
runNextTest();
|
||||
};
|
||||
|
||||
let onTimeout = setTimeout(function(){
|
||||
gBrowser.tabContainer.removeEventListener("TabOpen", onTabOpen, true);
|
||||
|
||||
ok(false, "Timeout: '"+message.title + "'.");
|
||||
finalize();
|
||||
}, timeout);
|
||||
|
||||
|
||||
const URI = "data:text/html;charset=utf-8,<!DOCTYPE html><html><head><title>"+
|
||||
message.title +
|
||||
"<%2Ftitle><%2Fhead><body><%2Fbody><%2Fhtml>";
|
||||
|
@ -250,7 +239,6 @@ function waitForTabOpen(aOptions) {
|
|||
|
||||
function waitForWindowOpen(aOptions) {
|
||||
let start = Date.now();
|
||||
let timeout = aOptions.timeout || 10000;
|
||||
let message = aOptions.message;
|
||||
let url = aOptions.url || getBrowserURL();
|
||||
|
||||
|
@ -270,16 +258,8 @@ function waitForWindowOpen(aOptions) {
|
|||
runNextTest();
|
||||
};
|
||||
|
||||
let onTimeout = setTimeout(function(){
|
||||
Services.wm.removeListener(listener);
|
||||
ok(false, "Fail: '"+message.title + "'.");
|
||||
|
||||
onFinalize();
|
||||
}, timeout);
|
||||
|
||||
let listener = new WindowListener(message.title, url, {
|
||||
onSuccess: aOptions.successFn,
|
||||
onTimeout: onTimeout,
|
||||
onFinalize: onFinalize,
|
||||
});
|
||||
Services.wm.addListener(listener);
|
||||
|
@ -303,7 +283,6 @@ function executeWindowOpenInContent(aParam) {
|
|||
|
||||
function waitForWindowOpenFromChrome(aOptions) {
|
||||
let start = Date.now();
|
||||
let timeout = aOptions.timeout || 10000;
|
||||
let message = aOptions.message;
|
||||
let url = aOptions.url || getBrowserURL();
|
||||
|
||||
|
@ -323,17 +302,8 @@ function waitForWindowOpenFromChrome(aOptions) {
|
|||
runNextTest();
|
||||
};
|
||||
|
||||
let onTimeout = setTimeout(function(){
|
||||
Services.wm.removeListener(listener);
|
||||
ok(false, "Fail: '"+message.title + "'.");
|
||||
|
||||
testWindow.close();
|
||||
onFinalize();
|
||||
}, timeout);
|
||||
|
||||
let listener = new WindowListener(message.title, url, {
|
||||
onSuccess: aOptions.successFn,
|
||||
onTimeout: onTimeout,
|
||||
onFinalize: onFinalize,
|
||||
});
|
||||
Services.wm.addListener(listener);
|
||||
|
@ -348,7 +318,6 @@ function WindowListener(aTitle, aUrl, aCallBackObj) {
|
|||
this.test_title = aTitle;
|
||||
this.test_url = aUrl;
|
||||
this.callback_onSuccess = aCallBackObj.onSuccess;
|
||||
this.callBack_onTimeout = aCallBackObj.onTimeout;
|
||||
this.callBack_onFinalize = aCallBackObj.onFinalize;
|
||||
}
|
||||
WindowListener.prototype = {
|
||||
|
@ -356,7 +325,6 @@ WindowListener.prototype = {
|
|||
test_title: null,
|
||||
test_url: null,
|
||||
callback_onSuccess: null,
|
||||
callBack_onTimeout: null,
|
||||
callBack_onFinalize: null,
|
||||
|
||||
onOpenWindow: function(aXULWindow) {
|
||||
|
@ -372,7 +340,6 @@ WindowListener.prototype = {
|
|||
}
|
||||
|
||||
domwindow.removeEventListener("load", onLoad, true);
|
||||
clearTimeout(this.callBack_onTimeout);
|
||||
|
||||
// wait for trasition to fullscreen on OSX Lion later
|
||||
if (isOSX) {
|
||||
|
|
|
@ -131,10 +131,12 @@ CustomizeMode.prototype = {
|
|||
|
||||
swatchForTheme: function(aDocument) {
|
||||
let lwthemeButton = aDocument.getElementById("customization-lwtheme-button");
|
||||
let lwthemeIcon = aDocument.getAnonymousElementByAttribute(lwthemeButton,
|
||||
"class", "button-icon");
|
||||
let imageURL = LightweightThemeManager.currentTheme === null ?
|
||||
"chrome://browser/skin/theme-switcher-icon.png" :
|
||||
LightweightThemeManager.currentTheme.iconURL;
|
||||
lwthemeButton.setAttribute("image", imageURL);
|
||||
lwthemeIcon.style.backgroundImage = "url(" + imageURL + ")";
|
||||
},
|
||||
|
||||
enter: function() {
|
||||
|
|
|
@ -421,7 +421,7 @@ ReadingListImpl.prototype = {
|
|||
* @return {Promise} Promise that is fullfilled with the added item.
|
||||
*/
|
||||
addItemFromBrowser: Task.async(function* (browser, url) {
|
||||
let metadata = yield getMetadataFromBrowser(browser);
|
||||
let metadata = yield this.getMetadataFromBrowser(browser);
|
||||
let record = {
|
||||
url: url,
|
||||
title: metadata.title,
|
||||
|
@ -436,6 +436,25 @@ ReadingListImpl.prototype = {
|
|||
return (yield this.addItem(record));
|
||||
}),
|
||||
|
||||
/**
|
||||
* Get page metadata from the content document in a given <xul:browser>.
|
||||
* @see PageMetadata.jsm
|
||||
*
|
||||
* @param {<xul:browser>} browser - Browser element for the document.
|
||||
* @returns {Promise} Promise that is fulfilled with an object describing the metadata.
|
||||
*/
|
||||
getMetadataFromBrowser(browser) {
|
||||
let mm = browser.messageManager;
|
||||
return new Promise(resolve => {
|
||||
function handleResult(msg) {
|
||||
mm.removeMessageListener("PageMetadata:PageDataResult", handleResult);
|
||||
resolve(msg.json);
|
||||
}
|
||||
mm.addMessageListener("PageMetadata:PageDataResult", handleResult);
|
||||
mm.sendAsyncMessage("PageMetadata:GetPageData");
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds a listener that will be notified when the list changes. Listeners
|
||||
* are objects with the following optional methods:
|
||||
|
@ -1043,25 +1062,6 @@ function clone(obj) {
|
|||
return Cu.cloneInto(obj, {}, { cloneFunctions: false });
|
||||
}
|
||||
|
||||
/**
|
||||
* Get page metadata from the content document in a given <xul:browser>.
|
||||
* @see PageMetadata.jsm
|
||||
*
|
||||
* @param {<xul:browser>} browser - Browser element for the document.
|
||||
* @returns {Promise} Promise that is fulfilled with an object describing the metadata.
|
||||
*/
|
||||
function getMetadataFromBrowser(browser) {
|
||||
let mm = browser.messageManager;
|
||||
return new Promise(resolve => {
|
||||
function handleResult(msg) {
|
||||
mm.removeMessageListener("PageMetadata:PageDataResult", handleResult);
|
||||
resolve(msg.json);
|
||||
}
|
||||
mm.addMessageListener("PageMetadata:PageDataResult", handleResult);
|
||||
mm.sendAsyncMessage("PageMetadata:GetPageData");
|
||||
});
|
||||
}
|
||||
|
||||
Object.defineProperty(this, "ReadingList", {
|
||||
get() {
|
||||
if (!this._singleton) {
|
||||
|
|
|
@ -103,6 +103,11 @@ let RLSidebar = {
|
|||
this.itemsById.set(item.id, item);
|
||||
|
||||
this.emptyListInfo.hidden = true;
|
||||
window.requestAnimationFrame(() => {
|
||||
window.requestAnimationFrame(() => {
|
||||
itemNode.classList.add('visible');
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -113,13 +118,20 @@ let RLSidebar = {
|
|||
log.trace(`onItemDeleted: ${item}`);
|
||||
|
||||
let itemNode = this.itemNodesById.get(item.id);
|
||||
itemNode.remove();
|
||||
this.itemNodesById.delete(item.id);
|
||||
this.itemsById.delete(item.id);
|
||||
// TODO: ensureListItems doesn't yet cope with needing to add one item.
|
||||
//this.ensureListItems();
|
||||
itemNode.addEventListener('transitionend', (event) => {
|
||||
if (event.propertyName == "max-height") {
|
||||
this.itemNodesById.delete(item.id);
|
||||
this.itemsById.delete(item.id);
|
||||
itemNode.remove();
|
||||
|
||||
this.emptyListInfo.hidden = (this.numItems > 0);
|
||||
// TODO: ensureListItems doesn't yet cope with needing to add one item.
|
||||
//this.ensureListItems();
|
||||
|
||||
this.emptyListInfo.hidden = (this.numItems > 0);
|
||||
}
|
||||
}, false);
|
||||
|
||||
itemNode.classList.remove('visible');
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
|
@ -835,7 +835,7 @@ let SessionStoreInternal = {
|
|||
|
||||
let overwrite = this._isCmdLineEmpty(aWindow, aInitialState);
|
||||
let options = {firstWindow: true, overwriteTabs: overwrite};
|
||||
this.restoreWindow(aWindow, aInitialState, options);
|
||||
this.restoreWindows(aWindow, aInitialState, options);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -850,7 +850,7 @@ let SessionStoreInternal = {
|
|||
else if (!this._isWindowLoaded(aWindow)) {
|
||||
let state = this._statesToRestore[aWindow.__SS_restoreID];
|
||||
let options = {overwriteTabs: true, isFollowUp: state.windows.length == 1};
|
||||
this.restoreWindow(aWindow, state, options);
|
||||
this.restoreWindow(aWindow, state.windows[0], options);
|
||||
}
|
||||
// The user opened another, non-private window after starting up with
|
||||
// a single private one. Let's restore the session we actually wanted to
|
||||
|
@ -864,7 +864,7 @@ let SessionStoreInternal = {
|
|||
|
||||
this._restoreCount = this._deferredInitialState.windows ?
|
||||
this._deferredInitialState.windows.length : 0;
|
||||
this.restoreWindow(aWindow, this._deferredInitialState, {firstWindow: true});
|
||||
this.restoreWindows(aWindow, this._deferredInitialState, {firstWindow: true});
|
||||
this._deferredInitialState = null;
|
||||
}
|
||||
else if (this._restoreLastWindow && aWindow.toolbar.visible &&
|
||||
|
@ -923,7 +923,7 @@ let SessionStoreInternal = {
|
|||
this._restoreCount = 1;
|
||||
let state = { windows: [newWindowState] };
|
||||
let options = {overwriteTabs: this._isCmdLineEmpty(aWindow, state)};
|
||||
this.restoreWindow(aWindow, state, options);
|
||||
this.restoreWindow(aWindow, newWindowState, options);
|
||||
}
|
||||
}
|
||||
// we actually restored the session just now.
|
||||
|
@ -1569,7 +1569,7 @@ let SessionStoreInternal = {
|
|||
this._globalState.setFromState(state);
|
||||
|
||||
// restore to the given state
|
||||
this.restoreWindow(window, state, {overwriteTabs: true});
|
||||
this.restoreWindows(window, state, {overwriteTabs: true});
|
||||
},
|
||||
|
||||
getWindowState: function ssi_getWindowState(aWindow) {
|
||||
|
@ -1590,7 +1590,7 @@ let SessionStoreInternal = {
|
|||
throw Components.Exception("Window is not tracked", Cr.NS_ERROR_INVALID_ARG);
|
||||
}
|
||||
|
||||
this.restoreWindow(aWindow, aState, {overwriteTabs: aOverwrite});
|
||||
this.restoreWindows(aWindow, aState, {overwriteTabs: aOverwrite});
|
||||
},
|
||||
|
||||
getTabState: function ssi_getTabState(aTab) {
|
||||
|
@ -1961,7 +1961,7 @@ let SessionStoreInternal = {
|
|||
// weirdness but we will still merge other extData.
|
||||
// Bug 588217 should make this go away by merging the group data.
|
||||
let options = {overwriteTabs: canOverwriteTabs, isFollowUp: true};
|
||||
this.restoreWindow(windowToUse, { windows: [winState] }, options);
|
||||
this.restoreWindow(windowToUse, winState, options);
|
||||
}
|
||||
else {
|
||||
this._openWindowWithState({ windows: [winState] });
|
||||
|
@ -2289,9 +2289,9 @@ let SessionStoreInternal = {
|
|||
/**
|
||||
* restore features to a single window
|
||||
* @param aWindow
|
||||
* Window reference
|
||||
* @param aState
|
||||
* JS object or its eval'able source
|
||||
* Window reference to the window to use for restoration
|
||||
* @param winData
|
||||
* JS object
|
||||
* @param aOptions
|
||||
* {overwriteTabs: true} to overwrite existing tabs w/ new ones
|
||||
* {isFollowUp: true} if this is not the restoration of the 1st window
|
||||
|
@ -2299,7 +2299,7 @@ let SessionStoreInternal = {
|
|||
* restoring in this session, that might open an
|
||||
* external link as well
|
||||
*/
|
||||
restoreWindow: function ssi_restoreWindow(aWindow, aState, aOptions = {}) {
|
||||
restoreWindow: function ssi_restoreWindow(aWindow, winData, aOptions = {}) {
|
||||
let overwriteTabs = aOptions && aOptions.overwriteTabs;
|
||||
let isFollowUp = aOptions && aOptions.isFollowUp;
|
||||
let firstWindow = aOptions && aOptions.firstWindow;
|
||||
|
@ -2307,57 +2307,21 @@ let SessionStoreInternal = {
|
|||
if (isFollowUp) {
|
||||
this.windowToFocus = aWindow;
|
||||
}
|
||||
|
||||
// initialize window if necessary
|
||||
if (aWindow && (!aWindow.__SSi || !this._windows[aWindow.__SSi]))
|
||||
this.onLoad(aWindow);
|
||||
|
||||
let root;
|
||||
try {
|
||||
root = (typeof aState == "string") ? JSON.parse(aState) : aState;
|
||||
}
|
||||
catch (ex) { // invalid state object - don't restore anything
|
||||
debug(ex);
|
||||
this._sendRestoreCompletedNotifications();
|
||||
return;
|
||||
}
|
||||
|
||||
// Restore closed windows if any.
|
||||
if (root._closedWindows) {
|
||||
this._closedWindows = root._closedWindows;
|
||||
}
|
||||
|
||||
// We're done here if there are no windows.
|
||||
if (!root.windows || !root.windows.length) {
|
||||
this._sendRestoreCompletedNotifications();
|
||||
return;
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
var winData;
|
||||
if (!root.selectedWindow || root.selectedWindow > root.windows.length) {
|
||||
root.selectedWindow = 0;
|
||||
}
|
||||
|
||||
// open new windows for all further window entries of a multi-window session
|
||||
// (unless they don't contain any tab data)
|
||||
for (var w = 1; w < root.windows.length; w++) {
|
||||
winData = root.windows[w];
|
||||
if (winData && winData.tabs && winData.tabs[0]) {
|
||||
var window = this._openWindowWithState({ windows: [winData] });
|
||||
if (w == root.selectedWindow - 1) {
|
||||
this.windowToFocus = window;
|
||||
}
|
||||
}
|
||||
}
|
||||
winData = root.windows[0];
|
||||
if (!winData.tabs) {
|
||||
winData.tabs = [];
|
||||
}
|
||||
|
||||
// don't restore a single blank tab when we've had an external
|
||||
// URL passed in for loading at startup (cf. bug 357419)
|
||||
else if (firstWindow && !overwriteTabs && winData.tabs.length == 1 &&
|
||||
|
@ -2492,10 +2456,6 @@ let SessionStoreInternal = {
|
|||
(overwriteTabs ? (parseInt(winData.selected || "1")) : 0));
|
||||
}
|
||||
|
||||
if (aState.scratchpads) {
|
||||
ScratchpadManager.restoreSession(aState.scratchpads);
|
||||
}
|
||||
|
||||
// set smoothScroll back to the original value
|
||||
tabstrip.smoothScroll = smoothScroll;
|
||||
|
||||
|
@ -2505,6 +2465,76 @@ let SessionStoreInternal = {
|
|||
this._sendRestoreCompletedNotifications();
|
||||
},
|
||||
|
||||
/**
|
||||
* Restore multiple windows using the provided state.
|
||||
* @param aWindow
|
||||
* Window reference to the first window to use for restoration.
|
||||
* Additionally required windows will be opened.
|
||||
* @param aState
|
||||
* JS object or JSON string
|
||||
* @param aOptions
|
||||
* {overwriteTabs: true} to overwrite existing tabs w/ new ones
|
||||
* {isFollowUp: true} if this is not the restoration of the 1st window
|
||||
* {firstWindow: true} if this is the first non-private window we're
|
||||
* restoring in this session, that might open an
|
||||
* external link as well
|
||||
*/
|
||||
restoreWindows: function ssi_restoreWindows(aWindow, aState, aOptions = {}) {
|
||||
let isFollowUp = aOptions && aOptions.isFollowUp;
|
||||
|
||||
if (isFollowUp) {
|
||||
this.windowToFocus = aWindow;
|
||||
}
|
||||
|
||||
// initialize window if necessary
|
||||
if (aWindow && (!aWindow.__SSi || !this._windows[aWindow.__SSi]))
|
||||
this.onLoad(aWindow);
|
||||
|
||||
let root;
|
||||
try {
|
||||
root = (typeof aState == "string") ? JSON.parse(aState) : aState;
|
||||
}
|
||||
catch (ex) { // invalid state object - don't restore anything
|
||||
debug(ex);
|
||||
this._sendRestoreCompletedNotifications();
|
||||
return;
|
||||
}
|
||||
|
||||
// Restore closed windows if any.
|
||||
if (root._closedWindows) {
|
||||
this._closedWindows = root._closedWindows;
|
||||
}
|
||||
|
||||
// We're done here if there are no windows.
|
||||
if (!root.windows || !root.windows.length) {
|
||||
this._sendRestoreCompletedNotifications();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!root.selectedWindow || root.selectedWindow > root.windows.length) {
|
||||
root.selectedWindow = 0;
|
||||
}
|
||||
|
||||
// open new windows for all further window entries of a multi-window session
|
||||
// (unless they don't contain any tab data)
|
||||
let winData;
|
||||
for (var w = 1; w < root.windows.length; w++) {
|
||||
winData = root.windows[w];
|
||||
if (winData && winData.tabs && winData.tabs[0]) {
|
||||
var window = this._openWindowWithState({ windows: [winData] });
|
||||
if (w == root.selectedWindow - 1) {
|
||||
this.windowToFocus = window;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.restoreWindow(aWindow, root.windows[0], aOptions);
|
||||
|
||||
if (aState.scratchpads) {
|
||||
ScratchpadManager.restoreSession(aState.scratchpads);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Manage history restoration for a window
|
||||
* @param aWindow
|
||||
|
|
|
@ -94,6 +94,8 @@ SourcesView.prototype = Heritage.extend(WidgetMethods, {
|
|||
}
|
||||
return (a in KNOWN_SOURCE_GROUPS) ? 1 : -1;
|
||||
};
|
||||
|
||||
this._addCommands();
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -112,6 +114,22 @@ SourcesView.prototype = Heritage.extend(WidgetMethods, {
|
|||
this._cbTextbox.removeEventListener("keypress", this._onConditionalTextboxKeyPress, false);
|
||||
},
|
||||
|
||||
/**
|
||||
* Add commands that XUL can fire.
|
||||
*/
|
||||
_addCommands: function() {
|
||||
utils.addCommands(this._commandset, {
|
||||
addBreakpointCommand: e => this._onCmdAddBreakpoint(e),
|
||||
addConditionalBreakpointCommand: e => this._onCmdAddConditionalBreakpoint(e),
|
||||
blackBoxCommand: () => this.toggleBlackBoxing(),
|
||||
unBlackBoxButton: () => this._onStopBlackBoxing(),
|
||||
prettyPrintCommand: () => this.togglePrettyPrint(),
|
||||
toggleBreakpointsCommand: () =>this.toggleBreakpoints(),
|
||||
nextSourceCommand: () => this.selectNextItem(),
|
||||
prevSourceCommand: () => this.selectPrevItem()
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Sets the preferred location to be selected in this sources container.
|
||||
* @param string aUrl
|
||||
|
@ -1279,6 +1297,8 @@ TracerView.prototype = Heritage.extend(WidgetMethods, {
|
|||
|
||||
this._traceButton.setAttribute("tooltiptext", this._startTooltip);
|
||||
this.emptyText = this._tracingNotStartedString;
|
||||
|
||||
this._addCommands();
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -1297,6 +1317,17 @@ TracerView.prototype = Heritage.extend(WidgetMethods, {
|
|||
this._search.removeEventListener("input", this._onSearch, false);
|
||||
},
|
||||
|
||||
/**
|
||||
* Add commands that XUL can fire.
|
||||
*/
|
||||
_addCommands: function() {
|
||||
utils.addCommands(document.getElementById('debuggerCommands'), {
|
||||
toggleTracing: () => this._onToggleTracing(),
|
||||
startTracing: () => this._onStartTracing(),
|
||||
clearTraces: () => this._onClear()
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Function invoked by the "toggleTracing" command to switch the tracer state.
|
||||
*/
|
||||
|
@ -2205,6 +2236,7 @@ WatchExpressionsView.prototype = Heritage.extend(WidgetMethods, {
|
|||
this.widget.addEventListener("click", this._onClick, false);
|
||||
|
||||
this.headerText = L10N.getStr("addWatchExpressionText");
|
||||
this._addCommands();
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -2216,6 +2248,16 @@ WatchExpressionsView.prototype = Heritage.extend(WidgetMethods, {
|
|||
this.widget.removeEventListener("click", this._onClick, false);
|
||||
},
|
||||
|
||||
/**
|
||||
* Add commands that XUL can fire.
|
||||
*/
|
||||
_addCommands: function() {
|
||||
utils.addCommands(document.getElementById('debuggerCommands'), {
|
||||
addWatchExpressionCommand: () => this._onCmdAddExpression(),
|
||||
removeAllWatchExpressionsCommand: () => this._onCmdRemoveAllExpressions()
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds a watch expression in this container.
|
||||
*
|
||||
|
|
|
@ -57,6 +57,7 @@ ToolbarView.prototype = {
|
|||
this._stepOverButton.setAttribute("tooltiptext", this._stepOverTooltip);
|
||||
this._stepInButton.setAttribute("tooltiptext", this._stepInTooltip);
|
||||
this._stepOutButton.setAttribute("tooltiptext", this._stepOutTooltip);
|
||||
this._addCommands();
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -72,6 +73,18 @@ ToolbarView.prototype = {
|
|||
this._stepOutButton.removeEventListener("mousedown", this._onStepOutPressed, false);
|
||||
},
|
||||
|
||||
/**
|
||||
* Add commands that XUL can fire.
|
||||
*/
|
||||
_addCommands: function() {
|
||||
utils.addCommands(document.getElementById('debuggerCommands'), {
|
||||
resumeCommand: () => this._onResumePressed(),
|
||||
stepOverCommand: () => this._onStepOverPressed(),
|
||||
stepInCommand: () => this._onStepInPressed(),
|
||||
stepOutCommand: () => this._onStepOutPressed()
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Display a warning when trying to resume a debuggee while another is paused.
|
||||
* Debuggees must be unpaused in a Last-In-First-Out order.
|
||||
|
@ -225,8 +238,9 @@ OptionsView.prototype = {
|
|||
this._showVariablesFilterBoxItem.setAttribute("checked", Prefs.variablesSearchboxVisible);
|
||||
this._showOriginalSourceItem.setAttribute("checked", Prefs.sourceMapsEnabled);
|
||||
this._autoBlackBoxItem.setAttribute("checked", Prefs.autoBlackBox);
|
||||
},
|
||||
|
||||
this._addCommands();
|
||||
},
|
||||
|
||||
/**
|
||||
* Destruction function, called when the debugger is closed.
|
||||
|
@ -236,6 +250,22 @@ OptionsView.prototype = {
|
|||
// Nothing to do here yet.
|
||||
},
|
||||
|
||||
/**
|
||||
* Add commands that XUL can fire.
|
||||
*/
|
||||
_addCommands: function() {
|
||||
utils.addCommands(document.getElementById('debuggerCommands'), {
|
||||
toggleAutoPrettyPrint: () => this._toggleAutoPrettyPrint(),
|
||||
togglePauseOnExceptions: () => this._togglePauseOnExceptions(),
|
||||
toggleIgnoreCaughtExceptions: () => this._toggleIgnoreCaughtExceptions(),
|
||||
toggleShowPanesOnStartup: () => this._toggleShowPanesOnStartup(),
|
||||
toggleShowOnlyEnum: () => this._toggleShowVariablesOnlyEnum(),
|
||||
toggleShowVariablesFilterBox: () => this._toggleShowVariablesFilterBox(),
|
||||
toggleShowOriginalSource: () => this._toggleShowOriginalSource(),
|
||||
toggleAutoBlackBox: () => this._toggleAutoBlackBox()
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Listener handling the 'gear menu' popup showing event.
|
||||
*/
|
||||
|
@ -784,6 +814,8 @@ FilterView.prototype = {
|
|||
L10N.getFormatStr("searchPanelGoToLine", this._lineSearchKey));
|
||||
this._variableOperatorLabel.setAttribute("value",
|
||||
L10N.getFormatStr("searchPanelVariable", this._variableSearchKey));
|
||||
|
||||
this._addCommands();
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -799,6 +831,21 @@ FilterView.prototype = {
|
|||
this._searchbox.removeEventListener("blur", this._onBlur, false);
|
||||
},
|
||||
|
||||
/**
|
||||
* Add commands that XUL can fire.
|
||||
*/
|
||||
_addCommands: function() {
|
||||
utils.addCommands(document.getElementById('debuggerCommands'), {
|
||||
fileSearchCommand: () => this._doFileSearch(),
|
||||
globalSearchCommand: () => this._doGlobalSearch(),
|
||||
functionSearchCommand: () => this._doFunctionSearch(),
|
||||
tokenSearchCommand: () => this._doTokenSearch(),
|
||||
lineSearchCommand: () => this._doLineSearch(),
|
||||
variableSearchCommand: () => this._doVariableSearch(),
|
||||
variablesFocusCommand: () => this._doVariablesFocus()
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Gets the entered operator and arguments in the searchbox.
|
||||
* @return array
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
<script type="application/javascript;version=1.8"
|
||||
src="chrome://browser/content/devtools/theme-switching.js"/>
|
||||
<script type="text/javascript" src="chrome://global/content/globalOverlay.js"/>
|
||||
<script type="text/javascript" src="debugger/utils.js"/>
|
||||
<script type="text/javascript" src="debugger-controller.js"/>
|
||||
<script type="text/javascript" src="debugger-view.js"/>
|
||||
<script type="text/javascript" src="debugger-toolbar.js"/>
|
||||
|
@ -32,72 +33,7 @@
|
|||
|
||||
<commandset id="editMenuCommands"/>
|
||||
|
||||
<commandset id="debuggerCommands">
|
||||
<command id="blackBoxCommand"
|
||||
oncommand="DebuggerView.Sources.toggleBlackBoxing()"/>
|
||||
<command id="unBlackBoxButton"
|
||||
oncommand="DebuggerView.Sources._onStopBlackBoxing()"/>
|
||||
<command id="prettyPrintCommand"
|
||||
oncommand="DebuggerView.Sources.togglePrettyPrint()"/>
|
||||
<command id="toggleBreakpointsCommand"
|
||||
oncommand="DebuggerView.Sources.toggleBreakpoints()"/>
|
||||
<command id="nextSourceCommand"
|
||||
oncommand="DebuggerView.Sources.selectNextItem()"/>
|
||||
<command id="prevSourceCommand"
|
||||
oncommand="DebuggerView.Sources.selectPrevItem()"/>
|
||||
<command id="resumeCommand"
|
||||
oncommand="DebuggerView.Toolbar._onResumePressed()"/>
|
||||
<command id="stepOverCommand"
|
||||
oncommand="DebuggerView.Toolbar._onStepOverPressed()"/>
|
||||
<command id="stepInCommand"
|
||||
oncommand="DebuggerView.Toolbar._onStepInPressed()"/>
|
||||
<command id="stepOutCommand"
|
||||
oncommand="DebuggerView.Toolbar._onStepOutPressed()"/>
|
||||
<command id="fileSearchCommand"
|
||||
oncommand="DebuggerView.Filtering._doFileSearch()"/>
|
||||
<command id="globalSearchCommand"
|
||||
oncommand="DebuggerView.Filtering._doGlobalSearch()"/>
|
||||
<command id="functionSearchCommand"
|
||||
oncommand="DebuggerView.Filtering._doFunctionSearch()"/>
|
||||
<command id="tokenSearchCommand"
|
||||
oncommand="DebuggerView.Filtering._doTokenSearch()"/>
|
||||
<command id="lineSearchCommand"
|
||||
oncommand="DebuggerView.Filtering._doLineSearch()"/>
|
||||
<command id="variableSearchCommand"
|
||||
oncommand="DebuggerView.Filtering._doVariableSearch()"/>
|
||||
<command id="variablesFocusCommand"
|
||||
oncommand="DebuggerView.Filtering._doVariablesFocus()"/>
|
||||
<command id="addBreakpointCommand"
|
||||
oncommand="DebuggerView.Sources._onCmdAddBreakpoint(event)"/>
|
||||
<command id="addConditionalBreakpointCommand"
|
||||
oncommand="DebuggerView.Sources._onCmdAddConditionalBreakpoint(event)"/>
|
||||
<command id="addWatchExpressionCommand"
|
||||
oncommand="DebuggerView.WatchExpressions._onCmdAddExpression()"/>
|
||||
<command id="removeAllWatchExpressionsCommand"
|
||||
oncommand="DebuggerView.WatchExpressions._onCmdRemoveAllExpressions()"/>
|
||||
<command id="toggleAutoPrettyPrint"
|
||||
oncommand="DebuggerView.Options._toggleAutoPrettyPrint()"/>
|
||||
<command id="togglePauseOnExceptions"
|
||||
oncommand="DebuggerView.Options._togglePauseOnExceptions()"/>
|
||||
<command id="toggleIgnoreCaughtExceptions"
|
||||
oncommand="DebuggerView.Options._toggleIgnoreCaughtExceptions()"/>
|
||||
<command id="toggleShowPanesOnStartup"
|
||||
oncommand="DebuggerView.Options._toggleShowPanesOnStartup()"/>
|
||||
<command id="toggleShowOnlyEnum"
|
||||
oncommand="DebuggerView.Options._toggleShowVariablesOnlyEnum()"/>
|
||||
<command id="toggleShowVariablesFilterBox"
|
||||
oncommand="DebuggerView.Options._toggleShowVariablesFilterBox()"/>
|
||||
<command id="toggleShowOriginalSource"
|
||||
oncommand="DebuggerView.Options._toggleShowOriginalSource()"/>
|
||||
<command id="toggleAutoBlackBox"
|
||||
oncommand="DebuggerView.Options._toggleAutoBlackBox()"/>
|
||||
<command id="toggleTracing"
|
||||
oncommand="DebuggerView.Tracer._onToggleTracing()"/>
|
||||
<command id="startTracing"
|
||||
oncommand="DebuggerView.Tracer._onStartTracing()"/>
|
||||
<command id="clearTraces"
|
||||
oncommand="DebuggerView.Tracer._onClear()"/>
|
||||
</commandset>
|
||||
<commandset id="debuggerCommands"></commandset>
|
||||
|
||||
<popupset id="debuggerPopupset">
|
||||
<menupopup id="sourceEditorContextMenu"
|
||||
|
|
|
@ -10,7 +10,7 @@ let gAddon, gClient, gThreadClient, gDebugger, gSources;
|
|||
let PREFS = [
|
||||
"devtools.canvasdebugger.enabled",
|
||||
"devtools.shadereditor.enabled",
|
||||
"devtools.profiler.enabled",
|
||||
"devtools.performance.enabled",
|
||||
"devtools.netmonitor.enabled"
|
||||
];
|
||||
function test() {
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
"use strict";
|
||||
|
||||
const utils = {
|
||||
/**
|
||||
* Create <command> elements within `commandset` with event handlers
|
||||
* bound to the `command` event
|
||||
*
|
||||
* @param commandset HTML Element
|
||||
* A <commandset> element
|
||||
* @param commands Object
|
||||
* An object where keys specify <command> ids and values
|
||||
* specify event handlers to be bound on the `command` event
|
||||
*/
|
||||
addCommands: function(commandset, commands) {
|
||||
Object.keys(commands).forEach(name => {
|
||||
let node = document.createElement('command');
|
||||
node.id = name;
|
||||
// XXX bug 371900: the command element must have an oncommand
|
||||
// attribute as a string set by `setAttribute` for keys to use it
|
||||
node.setAttribute('oncommand', ' ');
|
||||
node.addEventListener('command', commands[name]);
|
||||
commandset.appendChild(node);
|
||||
});
|
||||
}
|
||||
};
|
|
@ -1217,8 +1217,8 @@ let gDevToolsBrowser = {
|
|||
* necessary because of the WebConsole's `profile` and `profileEnd` methods.
|
||||
*/
|
||||
_connectToProfiler: function DT_connectToProfiler(event, toolbox) {
|
||||
let SharedProfilerUtils = devtools.require("devtools/profiler/shared");
|
||||
let connection = SharedProfilerUtils.getProfilerConnection(toolbox);
|
||||
let SharedPerformanceUtils = devtools.require("devtools/performance/front");
|
||||
let connection = SharedPerformanceUtils.getPerformanceActorsConnection(toolbox.target);
|
||||
connection.open();
|
||||
},
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@
|
|||
<vbox id="profiler-options" class="options-groupbox">
|
||||
<checkbox label="&options.showPlatformData.label;"
|
||||
tooltiptext="&options.showPlatformData.tooltip;"
|
||||
data-pref="devtools.profiler.ui.show-platform-data"/>
|
||||
data-pref="devtools.performance.ui.show-platform-data"/>
|
||||
</vbox>
|
||||
</vbox>
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ let connect = Task.async(function*() {
|
|||
// Certain options should be toggled since we can assume chrome debugging here
|
||||
function setPrefDefaults() {
|
||||
Services.prefs.setBoolPref("devtools.inspector.showUserAgentStyles", true);
|
||||
Services.prefs.setBoolPref("devtools.profiler.ui.show-platform-data", true);
|
||||
Services.prefs.setBoolPref("devtools.performance.ui.show-platform-data", true);
|
||||
Services.prefs.setBoolPref("browser.devedition.theme.showCustomizeButton", false);
|
||||
Services.prefs.setBoolPref("devtools.inspector.showAllAnonymousContent", true);
|
||||
Services.prefs.setBoolPref("browser.dom.window.dump.enabled", true);
|
||||
|
|
|
@ -72,6 +72,7 @@ browser.jar:
|
|||
content/browser/devtools/debugger-view.js (debugger/debugger-view.js)
|
||||
content/browser/devtools/debugger-toolbar.js (debugger/debugger-toolbar.js)
|
||||
content/browser/devtools/debugger-panes.js (debugger/debugger-panes.js)
|
||||
content/browser/devtools/debugger/utils.js (debugger/utils.js)
|
||||
content/browser/devtools/shadereditor.xul (shadereditor/shadereditor.xul)
|
||||
content/browser/devtools/shadereditor.js (shadereditor/shadereditor.js)
|
||||
content/browser/devtools/canvasdebugger.xul (canvasdebugger/canvasdebugger.xul)
|
||||
|
@ -89,11 +90,6 @@ browser.jar:
|
|||
content/browser/devtools/webaudioeditor/views/inspector.js (webaudioeditor/views/inspector.js)
|
||||
content/browser/devtools/webaudioeditor/views/properties.js (webaudioeditor/views/properties.js)
|
||||
content/browser/devtools/webaudioeditor/views/automation.js (webaudioeditor/views/automation.js)
|
||||
content/browser/devtools/profiler.xul (profiler/profiler.xul)
|
||||
content/browser/devtools/profiler.js (profiler/profiler.js)
|
||||
content/browser/devtools/ui-recordings.js (profiler/ui-recordings.js)
|
||||
content/browser/devtools/ui-profile.js (profiler/ui-profile.js)
|
||||
#ifdef MOZ_DEVTOOLS_PERFTOOLS
|
||||
content/browser/devtools/performance.xul (performance/performance.xul)
|
||||
content/browser/devtools/performance/performance-controller.js (performance/performance-controller.js)
|
||||
content/browser/devtools/performance/performance-view.js (performance/performance-view.js)
|
||||
|
@ -107,7 +103,6 @@ browser.jar:
|
|||
content/browser/devtools/performance/views/details-memory-call-tree.js (performance/views/details-memory-call-tree.js)
|
||||
content/browser/devtools/performance/views/details-memory-flamegraph.js (performance/views/details-memory-flamegraph.js)
|
||||
content/browser/devtools/performance/views/recordings.js (performance/views/recordings.js)
|
||||
#endif
|
||||
content/browser/devtools/responsivedesign/resize-commands.js (responsivedesign/resize-commands.js)
|
||||
content/browser/devtools/commandline.css (commandline/commandline.css)
|
||||
content/browser/devtools/commandlineoutput.xhtml (commandline/commandlineoutput.xhtml)
|
||||
|
@ -148,5 +143,3 @@ browser.jar:
|
|||
content/browser/devtools/eyedropper.xul (eyedropper/eyedropper.xul)
|
||||
content/browser/devtools/eyedropper/crosshairs.css (eyedropper/crosshairs.css)
|
||||
content/browser/devtools/eyedropper/nocursor.css (eyedropper/nocursor.css)
|
||||
content/browser/devtools/timeline/timeline.xul (timeline/timeline.xul)
|
||||
content/browser/devtools/timeline/timeline.js (timeline/timeline.js)
|
||||
|
|
|
@ -30,9 +30,7 @@ loader.lazyGetter(this, "StyleEditorPanel", () => require("devtools/styleeditor/
|
|||
loader.lazyGetter(this, "ShaderEditorPanel", () => require("devtools/shadereditor/panel").ShaderEditorPanel);
|
||||
loader.lazyGetter(this, "CanvasDebuggerPanel", () => require("devtools/canvasdebugger/panel").CanvasDebuggerPanel);
|
||||
loader.lazyGetter(this, "WebAudioEditorPanel", () => require("devtools/webaudioeditor/panel").WebAudioEditorPanel);
|
||||
loader.lazyGetter(this, "ProfilerPanel", () => require("devtools/profiler/panel").ProfilerPanel);
|
||||
loader.lazyGetter(this, "PerformancePanel", () => require("devtools/performance/panel").PerformancePanel);
|
||||
loader.lazyGetter(this, "TimelinePanel", () => require("devtools/timeline/panel").TimelinePanel);
|
||||
loader.lazyGetter(this, "NetMonitorPanel", () => require("devtools/netmonitor/panel").NetMonitorPanel);
|
||||
loader.lazyGetter(this, "StoragePanel", () => require("devtools/storage/panel").StoragePanel);
|
||||
loader.lazyGetter(this, "ScratchpadPanel", () => require("devtools/scratchpad/scratchpad-panel").ScratchpadPanel);
|
||||
|
@ -47,7 +45,6 @@ const shaderEditorProps = "chrome://browser/locale/devtools/shadereditor.propert
|
|||
const canvasDebuggerProps = "chrome://browser/locale/devtools/canvasdebugger.properties";
|
||||
const webAudioEditorProps = "chrome://browser/locale/devtools/webaudioeditor.properties";
|
||||
const profilerProps = "chrome://browser/locale/devtools/profiler.properties";
|
||||
const timelineProps = "chrome://browser/locale/devtools/timeline.properties";
|
||||
const netMonitorProps = "chrome://browser/locale/devtools/netmonitor.properties";
|
||||
const storageProps = "chrome://browser/locale/devtools/storage.properties";
|
||||
const scratchpadProps = "chrome://browser/locale/devtools/scratchpad.properties";
|
||||
|
@ -61,7 +58,6 @@ loader.lazyGetter(this, "shaderEditorStrings", () => Services.strings.createBund
|
|||
loader.lazyGetter(this, "canvasDebuggerStrings", () => Services.strings.createBundle(canvasDebuggerProps));
|
||||
loader.lazyGetter(this, "webAudioEditorStrings", () => Services.strings.createBundle(webAudioEditorProps));
|
||||
loader.lazyGetter(this, "inspectorStrings", () => Services.strings.createBundle(inspectorProps));
|
||||
loader.lazyGetter(this, "timelineStrings", () => Services.strings.createBundle(timelineProps));
|
||||
loader.lazyGetter(this, "netMonitorStrings", () => Services.strings.createBundle(netMonitorProps));
|
||||
loader.lazyGetter(this, "storageStrings", () => Services.strings.createBundle(storageProps));
|
||||
loader.lazyGetter(this, "scratchpadStrings", () => Services.strings.createBundle(scratchpadProps));
|
||||
|
@ -249,41 +245,15 @@ Tools.canvasDebugger = {
|
|||
}
|
||||
};
|
||||
|
||||
Tools.jsprofiler = {
|
||||
id: "jsprofiler",
|
||||
accesskey: l10n("profiler.accesskey", profilerStrings),
|
||||
key: l10n("profiler.commandkey2", profilerStrings),
|
||||
ordinal: 7,
|
||||
modifiers: "shift",
|
||||
visibilityswitch: "devtools.profiler.enabled",
|
||||
icon: "chrome://browser/skin/devtools/tool-profiler.svg",
|
||||
invertIconForLightTheme: true,
|
||||
url: "chrome://browser/content/devtools/profiler.xul",
|
||||
label: l10n("profiler.label2", profilerStrings),
|
||||
panelLabel: l10n("profiler.panelLabel2", profilerStrings),
|
||||
tooltip: l10n("profiler.tooltip2", profilerStrings),
|
||||
inMenu: true,
|
||||
|
||||
isTargetSupported: function (target) {
|
||||
// Hide the profiler when debugging devices pre bug 1046394,
|
||||
// that don't expose profiler actor in content processes.
|
||||
return target.hasActor("profiler");
|
||||
},
|
||||
|
||||
build: function (frame, target) {
|
||||
return new ProfilerPanel(frame, target);
|
||||
}
|
||||
};
|
||||
|
||||
Tools.performance = {
|
||||
id: "performance",
|
||||
ordinal: 19,
|
||||
ordinal: 7,
|
||||
icon: "chrome://browser/skin/devtools/tool-profiler.svg",
|
||||
invertIconForLightTheme: true,
|
||||
url: "chrome://browser/content/devtools/performance.xul",
|
||||
// TODO bug 1082695 audit the Performance tools labels
|
||||
label: "Performance++", //l10n("profiler.label2", profilerStrings),
|
||||
panelLabel: "Performance++", //l10n("profiler.panelLabel2", profilerStrings),
|
||||
visibilityswitch: "devtools.performance.enabled",
|
||||
label: l10n("profiler.label2", profilerStrings),
|
||||
panelLabel: l10n("profiler.panelLabel2", profilerStrings),
|
||||
tooltip: l10n("profiler.tooltip2", profilerStrings),
|
||||
accesskey: l10n("profiler.accesskey", profilerStrings),
|
||||
key: l10n("profiler.commandkey2", profilerStrings),
|
||||
|
@ -299,27 +269,6 @@ Tools.performance = {
|
|||
}
|
||||
};
|
||||
|
||||
Tools.timeline = {
|
||||
id: "timeline",
|
||||
ordinal: 8,
|
||||
visibilityswitch: "devtools.timeline.enabled",
|
||||
icon: "chrome://browser/skin/devtools/tool-network.svg",
|
||||
invertIconForLightTheme: true,
|
||||
url: "chrome://browser/content/devtools/timeline/timeline.xul",
|
||||
label: l10n("timeline.label", timelineStrings),
|
||||
panelLabel: l10n("timeline.panelLabel", timelineStrings),
|
||||
tooltip: l10n("timeline.tooltip", timelineStrings),
|
||||
|
||||
isTargetSupported: function(target) {
|
||||
return target.hasActor("timeline");
|
||||
},
|
||||
|
||||
build: function (iframeWindow, toolbox) {
|
||||
let panel = new TimelinePanel(iframeWindow, toolbox);
|
||||
return panel.open();
|
||||
}
|
||||
};
|
||||
|
||||
Tools.netMonitor = {
|
||||
id: "netmonitor",
|
||||
accesskey: l10n("netmonitor.accesskey", netMonitorStrings),
|
||||
|
@ -422,23 +371,12 @@ let defaultTools = [
|
|||
Tools.shaderEditor,
|
||||
Tools.canvasDebugger,
|
||||
Tools.webAudioEditor,
|
||||
Tools.jsprofiler,
|
||||
Tools.timeline,
|
||||
Tools.performance,
|
||||
Tools.netMonitor,
|
||||
Tools.storage,
|
||||
Tools.scratchpad
|
||||
];
|
||||
|
||||
// Only enable in-development performance tools if `--enable-devtools-perf`
|
||||
// used in build, turning on `devtools.performance_dev.enabled`.
|
||||
// Add to normal `defaultTools` when ready for normal release,
|
||||
// pull out MOZ_DEVTOOLS_PERFTOOLS setting in `./configure.in`, and
|
||||
// leave config on in `./browser/app/profile/firefox.js`, and always
|
||||
// build in `./browser/devtools/moz.build`.
|
||||
if (Services.prefs.getBoolPref("devtools.performance_dev.enabled")) {
|
||||
defaultTools.push(Tools.performance);
|
||||
}
|
||||
|
||||
exports.defaultTools = defaultTools;
|
||||
|
||||
for (let definition of defaultTools) {
|
||||
|
|
|
@ -17,7 +17,7 @@ DIRS += [
|
|||
'layoutview',
|
||||
'markupview',
|
||||
'netmonitor',
|
||||
'profiler',
|
||||
'performance',
|
||||
'projecteditor',
|
||||
'responsivedesign',
|
||||
'scratchpad',
|
||||
|
@ -28,15 +28,11 @@ DIRS += [
|
|||
'styleeditor',
|
||||
'styleinspector',
|
||||
'tilt',
|
||||
'timeline',
|
||||
'webaudioeditor',
|
||||
'webconsole',
|
||||
'webide',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_DEVTOOLS_PERFTOOLS']:
|
||||
DIRS += ['performance']
|
||||
|
||||
EXTRA_COMPONENTS += [
|
||||
'devtools-clhandler.js',
|
||||
'devtools-clhandler.manifest',
|
||||
|
|
|
@ -48,17 +48,13 @@ let DEFAULT_PREFS = [
|
|||
"devtools.performance.ui.show-idle-blocks",
|
||||
"devtools.performance.ui.enable-memory",
|
||||
"devtools.performance.ui.enable-framerate",
|
||||
|
||||
// remove after bug 1075567 is resolved.
|
||||
"devtools.performance_dev.enabled"
|
||||
].reduce((prefs, pref) => {
|
||||
prefs[pref] = Services.prefs.getBoolPref(pref);
|
||||
return prefs;
|
||||
}, {});
|
||||
|
||||
// Enable the new performance panel for all tests. Remove this after
|
||||
// bug 1075567 is resolved.
|
||||
Services.prefs.setBoolPref("devtools.performance_dev.enabled", true);
|
||||
// Enable the new performance panel for all tests.
|
||||
Services.prefs.setBoolPref("devtools.performance.enabled", true);
|
||||
// Enable logging for all the tests. Both the debugger server and frontend will
|
||||
// be affected by this pref.
|
||||
Services.prefs.setBoolPref("devtools.debugger.log", false);
|
||||
|
|
|
@ -7,5 +7,3 @@ EXTRA_JS_MODULES.devtools.profiler += [
|
|||
'panel.js',
|
||||
'utils/shared.js'
|
||||
]
|
||||
|
||||
BROWSER_CHROME_MANIFESTS += ['test/browser.ini']
|
||||
|
|
|
@ -410,7 +410,7 @@ DeveloperToolbar.prototype.show = function(focus) {
|
|||
|
||||
return gcli.load().then(() => {
|
||||
this.display = gcli.createDisplay({
|
||||
contentDocument: this._chromeWindow.gBrowser.contentDocument,
|
||||
contentDocument: this._chromeWindow.gBrowser.contentDocumentAsCPOW,
|
||||
chromeDocument: this._doc,
|
||||
chromeWindow: this._chromeWindow,
|
||||
hintElement: this.tooltipPanel.hintElement,
|
||||
|
@ -624,7 +624,7 @@ DeveloperToolbar.prototype.handleEvent = function(ev) {
|
|||
if (ev.type == "TabSelect" || ev.type == "load") {
|
||||
if (this.visible) {
|
||||
this.display.reattach({
|
||||
contentDocument: this._chromeWindow.gBrowser.contentDocument
|
||||
contentDocument: this._chromeWindow.gBrowser.contentDocumentAsCPOW
|
||||
});
|
||||
|
||||
if (ev.type == "TabSelect") {
|
||||
|
|
|
@ -140,7 +140,7 @@ Telemetry.prototype = {
|
|||
userHistogram: "DEVTOOLS_CANVASDEBUGGER_OPENED_PER_USER_FLAG",
|
||||
timerHistogram: "DEVTOOLS_CANVASDEBUGGER_TIME_ACTIVE_SECONDS"
|
||||
},
|
||||
jsprofiler: {
|
||||
performance: {
|
||||
histogram: "DEVTOOLS_JSPROFILER_OPENED_BOOLEAN",
|
||||
userHistogram: "DEVTOOLS_JSPROFILER_OPENED_PER_USER_FLAG",
|
||||
timerHistogram: "DEVTOOLS_JSPROFILER_TIME_ACTIVE_SECONDS"
|
||||
|
|
|
@ -11,7 +11,7 @@ add_task(function*() {
|
|||
yield promiseTab(TEST_URI);
|
||||
let Telemetry = loadTelemetryAndRecordLogs();
|
||||
|
||||
yield openAndCloseToolbox(2, TOOL_DELAY, "jsprofiler");
|
||||
yield openAndCloseToolbox(2, TOOL_DELAY, "performance");
|
||||
checkTelemetryResults(Telemetry);
|
||||
|
||||
stopRecordingTelemetryLogs(Telemetry);
|
||||
|
|
|
@ -6,5 +6,3 @@
|
|||
EXTRA_JS_MODULES.devtools.timeline += [
|
||||
'panel.js',
|
||||
]
|
||||
|
||||
BROWSER_CHROME_MANIFESTS += ['test/browser.ini']
|
||||
|
|
|
@ -53,7 +53,7 @@ function test()
|
|||
yield openAndCheckPanel("jsdebugger");
|
||||
yield openAndCheckPanel("inspector");
|
||||
yield openAndCheckPanel("styleeditor");
|
||||
yield openAndCheckPanel("jsprofiler");
|
||||
yield openAndCheckPanel("performance");
|
||||
yield openAndCheckPanel("netmonitor");
|
||||
|
||||
yield checkWebconsolePanelOpened();
|
||||
|
|
|
@ -45,11 +45,17 @@ let ReaderParent = {
|
|||
switch (message.name) {
|
||||
case "Reader:AddToList":
|
||||
let article = message.data.article;
|
||||
ReadingList.addItem({
|
||||
url: article.url,
|
||||
title: article.title,
|
||||
excerpt: article.excerpt,
|
||||
status: article.status
|
||||
ReadingList.getMetadataFromBrowser(message.target).then(function(metadata) {
|
||||
if (metadata.previews.length > 0) {
|
||||
article.preview = metadata.previews[0];
|
||||
}
|
||||
|
||||
ReadingList.addItem({
|
||||
url: article.url,
|
||||
title: article.title,
|
||||
excerpt: article.excerpt,
|
||||
preview: article.preview
|
||||
});
|
||||
});
|
||||
break;
|
||||
|
||||
|
|
|
@ -164,6 +164,13 @@
|
|||
-moz-margin-start: 6px !important;
|
||||
}
|
||||
|
||||
#customization-lwtheme-button > .box-inherit > .box-inherit > .button-icon {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 2px;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
#customization-titlebar-visibility-button > .button-box > .button-icon {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
|
|
@ -1,12 +1,16 @@
|
|||
/* Reading List button */
|
||||
|
||||
#urlbar:not([focused]):not(:hover) #readinglist-addremove-button {
|
||||
display: none;
|
||||
opacity: 0;
|
||||
width: 0px;
|
||||
}
|
||||
|
||||
#readinglist-addremove-button {
|
||||
list-style-image: url("chrome://browser/skin/readinglist/icons.svg#addpage");
|
||||
-moz-image-region: rect(0, 14px, 14px, 0);
|
||||
transition: width 150ms ease-in-out, opacity 150ms ease-in-out 150ms;
|
||||
opacity: 1;
|
||||
width: 20px;
|
||||
}
|
||||
|
||||
#readinglist-addremove-button:hover {
|
||||
|
|
|
@ -31,6 +31,9 @@ body {
|
|||
flex-flow: row;
|
||||
cursor: pointer;
|
||||
padding: 6px;
|
||||
opacity: 0;
|
||||
max-height: 0;
|
||||
transition: opacity 150ms ease-in-out, max-height 150ms ease-in-out 150ms;
|
||||
}
|
||||
|
||||
.item.active {
|
||||
|
@ -105,3 +108,8 @@ body {
|
|||
border-width: 0;
|
||||
}
|
||||
|
||||
.item.visible {
|
||||
opacity: 1;
|
||||
max-height: 80px;
|
||||
transition: max-height 250ms ease-in-out, opacity 250ms ease-in-out 250ms;
|
||||
}
|
||||
|
|
13
configure.in
13
configure.in
|
@ -7672,19 +7672,6 @@ if test "$MOZ_CHROME_FILE_FORMAT" != "jar" &&
|
|||
AC_MSG_ERROR([--enable-chrome-format must be set to either jar, flat, or omni])
|
||||
fi
|
||||
|
||||
dnl =========================================================
|
||||
dnl Enable support for revamped devtools Performance Tools
|
||||
dnl =========================================================
|
||||
|
||||
MOZ_ARG_ENABLE_BOOL(devtools-perf,
|
||||
[ --enable-devtools-perf Set compile flags necessary for compiling devtools perftools],
|
||||
MOZ_DEVTOOLS_PERFTOOLS=1,
|
||||
MOZ_DEVTOOLS_PERFTOOLS= )
|
||||
if test -n "$MOZ_DEVTOOLS_PERFTOOLS"; then
|
||||
AC_DEFINE(MOZ_DEVTOOLS_PERFTOOLS)
|
||||
fi
|
||||
AC_SUBST(MOZ_DEVTOOLS_PERFTOOLS)
|
||||
|
||||
dnl =========================================================
|
||||
dnl Omnijar packaging (bug 552121)
|
||||
dnl =========================================================
|
||||
|
|
|
@ -344,6 +344,7 @@ pref("privacy.item.cache", true);
|
|||
pref("privacy.item.cookies", true);
|
||||
pref("privacy.item.offlineApps", true);
|
||||
pref("privacy.item.history", true);
|
||||
pref("privacy.item.searchHistory", true);
|
||||
pref("privacy.item.formdata", true);
|
||||
pref("privacy.item.downloads", true);
|
||||
pref("privacy.item.passwords", true);
|
||||
|
|
|
@ -2707,13 +2707,13 @@ public class BrowserApp extends GeckoApp
|
|||
} else if (info.parent == GECKO_TOOLS_MENU) {
|
||||
// The tools menu only exists in our -v11 resources.
|
||||
if (Versions.feature11Plus) {
|
||||
MenuItem tools = menu.findItem(R.id.tools);
|
||||
final MenuItem tools = menu.findItem(R.id.tools);
|
||||
destination = tools != null ? tools.getSubMenu() : menu;
|
||||
} else {
|
||||
destination = menu;
|
||||
}
|
||||
} else {
|
||||
MenuItem parent = menu.findItem(info.parent);
|
||||
final MenuItem parent = menu.findItem(info.parent);
|
||||
if (parent == null) {
|
||||
return;
|
||||
}
|
||||
|
@ -2731,7 +2731,7 @@ public class BrowserApp extends GeckoApp
|
|||
}
|
||||
}
|
||||
|
||||
MenuItem item = destination.add(Menu.NONE, info.id, Menu.NONE, info.label);
|
||||
final MenuItem item = destination.add(Menu.NONE, info.id, Menu.NONE, info.label);
|
||||
|
||||
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
||||
@Override
|
||||
|
@ -2749,7 +2749,7 @@ public class BrowserApp extends GeckoApp
|
|||
@Override
|
||||
public void onBitmapFound(Drawable d) {
|
||||
// TODO: why do we re-find the item?
|
||||
MenuItem item = destination.findItem(id);
|
||||
final MenuItem item = destination.findItem(id);
|
||||
if (item == null) {
|
||||
return;
|
||||
}
|
||||
|
@ -2800,7 +2800,7 @@ public class BrowserApp extends GeckoApp
|
|||
if (mMenu == null)
|
||||
return;
|
||||
|
||||
MenuItem menuItem = mMenu.findItem(id);
|
||||
final MenuItem menuItem = mMenu.findItem(id);
|
||||
if (menuItem != null)
|
||||
mMenu.removeItem(id);
|
||||
}
|
||||
|
@ -2825,7 +2825,7 @@ public class BrowserApp extends GeckoApp
|
|||
return;
|
||||
}
|
||||
|
||||
MenuItem menuItem = mMenu.findItem(id);
|
||||
final MenuItem menuItem = mMenu.findItem(id);
|
||||
if (menuItem != null) {
|
||||
menuItem.setTitle(options.optString("name", menuItem.getTitle().toString()));
|
||||
menuItem.setCheckable(options.optBoolean("checkable", menuItem.isCheckable()));
|
||||
|
@ -2947,18 +2947,18 @@ public class BrowserApp extends GeckoApp
|
|||
}
|
||||
|
||||
Tab tab = Tabs.getInstance().getSelectedTab();
|
||||
MenuItem bookmark = aMenu.findItem(R.id.bookmark);
|
||||
final MenuItem bookmark = aMenu.findItem(R.id.bookmark);
|
||||
final MenuItem reader = aMenu.findItem(R.id.reading_list);
|
||||
MenuItem back = aMenu.findItem(R.id.back);
|
||||
MenuItem forward = aMenu.findItem(R.id.forward);
|
||||
MenuItem share = aMenu.findItem(R.id.share);
|
||||
final MenuItem back = aMenu.findItem(R.id.back);
|
||||
final MenuItem forward = aMenu.findItem(R.id.forward);
|
||||
final MenuItem share = aMenu.findItem(R.id.share);
|
||||
final MenuItem quickShare = aMenu.findItem(R.id.quickshare);
|
||||
MenuItem saveAsPDF = aMenu.findItem(R.id.save_as_pdf);
|
||||
MenuItem charEncoding = aMenu.findItem(R.id.char_encoding);
|
||||
MenuItem findInPage = aMenu.findItem(R.id.find_in_page);
|
||||
MenuItem desktopMode = aMenu.findItem(R.id.desktop_mode);
|
||||
MenuItem enterGuestMode = aMenu.findItem(R.id.new_guest_session);
|
||||
MenuItem exitGuestMode = aMenu.findItem(R.id.exit_guest_session);
|
||||
final MenuItem saveAsPDF = aMenu.findItem(R.id.save_as_pdf);
|
||||
final MenuItem charEncoding = aMenu.findItem(R.id.char_encoding);
|
||||
final MenuItem findInPage = aMenu.findItem(R.id.find_in_page);
|
||||
final MenuItem desktopMode = aMenu.findItem(R.id.desktop_mode);
|
||||
final MenuItem enterGuestMode = aMenu.findItem(R.id.new_guest_session);
|
||||
final MenuItem exitGuestMode = aMenu.findItem(R.id.exit_guest_session);
|
||||
|
||||
// Only show the "Quit" menu item on pre-ICS, television devices,
|
||||
// or if the user has explicitly enabled the clear on shutdown pref.
|
||||
|
|
|
@ -523,12 +523,12 @@ public abstract class GeckoApp
|
|||
outState.putString(SAVED_STATE_PRIVATE_SESSION, mPrivateBrowsingSession);
|
||||
}
|
||||
|
||||
void handleClearHistory() {
|
||||
void handleClearHistory(final boolean clearSearchHistory) {
|
||||
final BrowserDB db = getProfile().getDB();
|
||||
ThreadUtils.postToBackgroundThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
db.clearHistory(getContentResolver());
|
||||
db.clearHistory(getContentResolver(), clearSearchHistory);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -626,7 +626,7 @@ public abstract class GeckoApp
|
|||
mPrivateBrowsingSession = message.optString("session", null);
|
||||
|
||||
} else if ("Sanitize:ClearHistory".equals(event)) {
|
||||
handleClearHistory();
|
||||
handleClearHistory(message.optBoolean("clearSearchHistory", false));
|
||||
callback.sendSuccess(true);
|
||||
|
||||
} else if ("Session:StatePurged".equals(event)) {
|
||||
|
|
|
@ -101,7 +101,7 @@ public interface BrowserDB {
|
|||
|
||||
public abstract void removeHistoryEntry(ContentResolver cr, String url);
|
||||
|
||||
public abstract void clearHistory(ContentResolver cr);
|
||||
public abstract void clearHistory(ContentResolver cr, boolean clearSearchHistory);
|
||||
|
||||
|
||||
public abstract String getUrlForKeyword(ContentResolver cr, String keyword);
|
||||
|
|
|
@ -720,9 +720,12 @@ public class LocalBrowserDB implements BrowserDB {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void clearHistory(ContentResolver cr) {
|
||||
cr.delete(mHistoryUriWithProfile, null, null);
|
||||
cr.delete(mSearchHistoryUri, null, null);
|
||||
public void clearHistory(ContentResolver cr, boolean clearSearchHistory) {
|
||||
if (clearSearchHistory) {
|
||||
cr.delete(mSearchHistoryUri, null, null);
|
||||
} else {
|
||||
cr.delete(mHistoryUriWithProfile, null, null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -217,7 +217,7 @@ public class StubBrowserDB implements BrowserDB {
|
|||
public void removeHistoryEntry(ContentResolver cr, String url) {
|
||||
}
|
||||
|
||||
public void clearHistory(ContentResolver cr) {
|
||||
public void clearHistory(ContentResolver cr, boolean clearSearchHistory) {
|
||||
}
|
||||
|
||||
@RobocopTarget
|
||||
|
|
|
@ -255,7 +255,8 @@ size. -->
|
|||
<!ENTITY pref_import_android "Import from Android">
|
||||
<!ENTITY pref_import_android_summary "Import bookmarks and history from the native browser">
|
||||
<!ENTITY pref_private_data_history2 "Browsing history">
|
||||
<!ENTITY pref_private_data_formdata "Form & search history">
|
||||
<!ENTITY pref_private_data_searchHistory "Search history">
|
||||
<!ENTITY pref_private_data_formdata2 "Form history">
|
||||
<!ENTITY pref_private_data_cookies2 "Cookies & active logins">
|
||||
<!ENTITY pref_private_data_passwords "Saved passwords">
|
||||
<!ENTITY pref_private_data_cache "Cache">
|
||||
|
|
|
@ -73,8 +73,9 @@
|
|||
</string-array>
|
||||
<string-array name="pref_private_data_entries">
|
||||
<item>@string/pref_private_data_history2</item>
|
||||
<item>@string/pref_private_data_searchHistory</item>
|
||||
<item>@string/pref_private_data_downloadFiles2</item>
|
||||
<item>@string/pref_private_data_formdata</item>
|
||||
<item>@string/pref_private_data_formdata2</item>
|
||||
<item>@string/pref_private_data_cookies2</item>
|
||||
<item>@string/pref_private_data_passwords</item>
|
||||
<item>@string/pref_private_data_cache</item>
|
||||
|
@ -90,9 +91,11 @@
|
|||
<item>true</item>
|
||||
<item>true</item>
|
||||
<item>true</item>
|
||||
<item>true</item>
|
||||
</string-array>
|
||||
<string-array name="pref_private_data_values">
|
||||
<item>private.data.history</item>
|
||||
<item>private.data.searchHistory</item>
|
||||
<item>private.data.downloadFiles</item>
|
||||
<item>private.data.formdata</item>
|
||||
<item>private.data.cookies_sessions</item>
|
||||
|
@ -103,6 +106,7 @@
|
|||
</string-array>
|
||||
<string-array name="pref_private_data_keys">
|
||||
<item>private.data.history</item>
|
||||
<item>private.data.searchHistory</item>
|
||||
<item>private.data.downloadFiles</item>
|
||||
<item>private.data.formdata</item>
|
||||
<item>private.data.cookies_sessions</item>
|
||||
|
@ -120,6 +124,7 @@
|
|||
<item>false</item>
|
||||
<item>false</item>
|
||||
<item>false</item>
|
||||
<item>false</item>
|
||||
</string-array>
|
||||
<string-array name="pref_restore_entries">
|
||||
<item>@string/pref_restore_always</item>
|
||||
|
|
|
@ -823,17 +823,6 @@
|
|||
<item name="android:paddingTop">0dp</item>
|
||||
</style>
|
||||
|
||||
<!-- Make the share overlay activity appear like an overlay. -->
|
||||
<style name="ShareOverlayActivity" parent="Gecko">
|
||||
<item name="android:windowBackground">@android:color/transparent</item>
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
<item name="android:windowIsTranslucent">true</item>
|
||||
<item name="android:backgroundDimEnabled">true</item>
|
||||
|
||||
<!-- We display the overlay on top of other Activities so show their status bar. -->
|
||||
<item name="android:statusBarColor">@android:color/transparent</item>
|
||||
</style>
|
||||
|
||||
<style name="TextAppearance.FirstrunLight"/>
|
||||
<style name="TextAppearance.FirstrunRegular"/>
|
||||
|
||||
|
|
|
@ -106,4 +106,15 @@
|
|||
|
||||
<style name="GeckoStartPane" parent="GeckoBase"/>
|
||||
|
||||
<!-- Make the share overlay activity appear like an overlay. -->
|
||||
<style name="ShareOverlayActivity">
|
||||
<item name="android:windowBackground">@android:color/transparent</item>
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
<item name="android:windowIsTranslucent">true</item>
|
||||
<item name="android:backgroundDimEnabled">true</item>
|
||||
|
||||
<!-- We display the overlay on top of other Activities so show their status bar. -->
|
||||
<item name="android:statusBarColor">@android:color/transparent</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -224,7 +224,8 @@
|
|||
<string name="pref_sync_summary">&pref_sync_summary;</string>
|
||||
<string name="pref_search_suggestions">&pref_search_suggestions;</string>
|
||||
<string name="pref_private_data_history2">&pref_private_data_history2;</string>
|
||||
<string name="pref_private_data_formdata">&pref_private_data_formdata;</string>
|
||||
<string name="pref_private_data_searchHistory">&pref_private_data_searchHistory;</string>
|
||||
<string name="pref_private_data_formdata2">&pref_private_data_formdata2;</string>
|
||||
<string name="pref_private_data_cookies2">&pref_private_data_cookies2;</string>
|
||||
<string name="pref_private_data_passwords">&pref_private_data_passwords;</string>
|
||||
<string name="pref_private_data_cache">&pref_private_data_cache;</string>
|
||||
|
|
|
@ -67,7 +67,7 @@ public class testSettingsMenuItems extends PixelTest {
|
|||
{ StringHelper.REMEMBER_PASSWORDS_LABEL },
|
||||
MANAGE_LOGINS_ARR,
|
||||
{ StringHelper.MASTER_PASSWORD_LABEL },
|
||||
{ StringHelper.CLEAR_PRIVATE_DATA_LABEL, "", "Browsing history", "Downloads", "Form & search history", "Cookies & active logins", "Saved passwords", "Cache", "Offline website data", "Site settings", "Clear data" },
|
||||
{ StringHelper.CLEAR_PRIVATE_DATA_LABEL, "", "Browsing history", "Search history", "Downloads", "Form history", "Cookies & active logins", "Saved passwords", "Cache", "Offline website data", "Site settings", "Clear data" },
|
||||
};
|
||||
|
||||
// Mozilla/vendor menu items.
|
||||
|
|
|
@ -159,6 +159,19 @@ Sanitizer.prototype = {
|
|||
}
|
||||
},
|
||||
|
||||
searchHistory: {
|
||||
clear: function ()
|
||||
{
|
||||
return Messaging.sendRequestForResult({ type: "Sanitize:ClearHistory", clearSearchHistory: true })
|
||||
.catch(e => Cu.reportError("Java-side search history clearing failed: " + e))
|
||||
},
|
||||
|
||||
get canClear()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
},
|
||||
|
||||
formdata: {
|
||||
clear: function ()
|
||||
{
|
||||
|
|
|
@ -459,7 +459,8 @@ body {
|
|||
|
||||
/* desktop-only controls */
|
||||
.close-button,
|
||||
.list-button {
|
||||
.list-button,
|
||||
.footer {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
|
|
@ -68,8 +68,11 @@ let AboutReader = function(mm, win, articlePromise) {
|
|||
|
||||
try {
|
||||
if (Services.prefs.getBoolPref("browser.readinglist.enabled")) {
|
||||
this._setupButton("toggle-button", this._onReaderToggle.bind(this), "aboutReader.toolbar.addToReadingList");
|
||||
this._setupButton("toggle-button", this._onReaderToggle.bind(this, "button"), "aboutReader.toolbar.addToReadingList");
|
||||
this._setupButton("list-button", this._onList.bind(this), "aboutReader.toolbar.openReadingList");
|
||||
this._setupButton("remove-button", this._onReaderToggle.bind(this, "footer"),
|
||||
"aboutReader.footer.deleteThisArticle", "aboutReader.footer.deleteThisArticle");
|
||||
this._doc.getElementById("reader-footer").setAttribute('readinglist-enabled', "true");
|
||||
}
|
||||
} catch (e) {
|
||||
// Pref doesn't exist.
|
||||
|
@ -247,6 +250,7 @@ AboutReader.prototype = {
|
|||
button.classList.remove("on");
|
||||
button.setAttribute("title", gStrings.GetStringFromName("aboutReader.toolbar.addToReadingList"));
|
||||
}
|
||||
this._updateFooter();
|
||||
},
|
||||
|
||||
_requestReadingListStatus: function Reader_requestReadingListStatus() {
|
||||
|
@ -277,16 +281,16 @@ AboutReader.prototype = {
|
|||
this._win.location.href = this._getOriginalUrl();
|
||||
},
|
||||
|
||||
_onReaderToggle: function Reader_onToggle() {
|
||||
_onReaderToggle: function Reader_onToggle(aMethod) {
|
||||
if (!this._article)
|
||||
return;
|
||||
|
||||
if (this._isReadingListItem == 0) {
|
||||
this._mm.sendAsyncMessage("Reader:AddToList", { article: this._article });
|
||||
UITelemetry.addEvent("save.1", "button", null, "reader");
|
||||
UITelemetry.addEvent("save.1", aMethod, null, "reader");
|
||||
} else {
|
||||
this._mm.sendAsyncMessage("Reader:RemoveFromList", { url: this._article.url });
|
||||
UITelemetry.addEvent("unsave.1", "button", null, "reader");
|
||||
UITelemetry.addEvent("unsave.1", aMethod, null, "reader");
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -421,6 +425,16 @@ AboutReader.prototype = {
|
|||
}, true);
|
||||
},
|
||||
|
||||
_updateFooter: function RupdateFooter() {
|
||||
let footer = this._doc.getElementById("reader-footer");
|
||||
if (!this._article || this._isReadingListItem == 0 ||
|
||||
footer.getAttribute("readinglist-enabled") != "true") {
|
||||
footer.style.display = "none";
|
||||
return;
|
||||
}
|
||||
footer.style.display = null;
|
||||
},
|
||||
|
||||
_handleDeviceLight: function Reader_handleDeviceLight(newLux) {
|
||||
// Desired size of the this._luxValues array.
|
||||
let luxValuesSize = 10;
|
||||
|
@ -560,6 +574,7 @@ AboutReader.prototype = {
|
|||
if (!visible) {
|
||||
this._mm.sendAsyncMessage("Reader:ToolbarHidden");
|
||||
}
|
||||
this._updateFooter();
|
||||
},
|
||||
|
||||
_toggleToolbarVisibility: function Reader_toggleToolbarVisibility() {
|
||||
|
@ -821,10 +836,12 @@ AboutReader.prototype = {
|
|||
}
|
||||
},
|
||||
|
||||
_setupButton: function(id, callback, titleEntity) {
|
||||
_setupButton: function(id, callback, titleEntity, textEntity) {
|
||||
this._setButtonTip(id, titleEntity);
|
||||
|
||||
let button = this._doc.getElementById(id);
|
||||
if (textEntity)
|
||||
button.textContent = gStrings.GetStringFromName(textEntity);
|
||||
button.removeAttribute("hidden");
|
||||
button.addEventListener("click", function(aEvent) {
|
||||
if (!aEvent.isTrusted)
|
||||
|
|
|
@ -24,6 +24,10 @@
|
|||
|
||||
<div id="reader-message" class="message">
|
||||
</div>
|
||||
|
||||
<div id="reader-footer" class="footer">
|
||||
<button id="remove-button" class="button remove-button"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul id="reader-toolbar" class="toolbar">
|
||||
|
|
|
@ -11,6 +11,8 @@ const { WebConsoleActor } = require("devtools/server/actors/webconsole");
|
|||
const makeDebugger = require("devtools/server/actors/utils/make-debugger");
|
||||
const { ActorPool } = require("devtools/server/main");
|
||||
const Services = require("Services");
|
||||
const { dbg_assert } = require("devtools/toolkit/DevToolsUtils");
|
||||
const { TabSources } = require("./utils/TabSources");
|
||||
|
||||
function ChildProcessActor(aConnection) {
|
||||
this.conn = aConnection;
|
||||
|
@ -50,6 +52,14 @@ ChildProcessActor.prototype = {
|
|||
return this._consoleScope;
|
||||
},
|
||||
|
||||
get sources() {
|
||||
if (!this._sources) {
|
||||
dbg_assert(this._threadActor, "threadActor should exist when creating sources.");
|
||||
this._sources = new TabSources(this._threadActor);
|
||||
}
|
||||
return this._sources;
|
||||
},
|
||||
|
||||
form: function() {
|
||||
if (!this._consoleActor) {
|
||||
this._consoleActor = new WebConsoleActor(this.conn, this);
|
||||
|
|
|
@ -2046,7 +2046,7 @@ ThreadActor.prototype = {
|
|||
let actor = _actor;
|
||||
|
||||
if (actor.isPending) {
|
||||
promises.push(sourceActor._setBreakpoint(actor));
|
||||
promises.push(actor.originalLocation.originalSourceActor._setBreakpoint(actor));
|
||||
} else {
|
||||
promises.push(this.sources.getGeneratedLocation(actor.originalLocation)
|
||||
.then((generatedLocation) => {
|
||||
|
@ -2751,23 +2751,17 @@ SourceActor.prototype = {
|
|||
location,
|
||||
condition
|
||||
).then((actor) => {
|
||||
if (actor.isPending) {
|
||||
return {
|
||||
error: "noCodeAtLocation",
|
||||
actor: actor.actorID
|
||||
};
|
||||
} else {
|
||||
let response = {
|
||||
actor: actor.actorID
|
||||
};
|
||||
let response = {
|
||||
actor: actor.actorID,
|
||||
isPending: actor.isPending
|
||||
};
|
||||
|
||||
let actualLocation = actor.originalLocation;
|
||||
if (!actualLocation.equals(location)) {
|
||||
response.actualLocation = actualLocation.toJSON();
|
||||
}
|
||||
|
||||
return response;
|
||||
let actualLocation = actor.originalLocation;
|
||||
if (!actualLocation.equals(location)) {
|
||||
response.actualLocation = actualLocation.toJSON();
|
||||
}
|
||||
|
||||
return response;
|
||||
});
|
||||
},
|
||||
|
||||
|
@ -2885,7 +2879,7 @@ SourceActor.prototype = {
|
|||
}
|
||||
++actualLine;
|
||||
}
|
||||
if (actualLine === lineToEntryPointsMap.length) {
|
||||
if (actualLine >= lineToEntryPointsMap.length) {
|
||||
// We went past the last line in the map, so breakpoint sliding
|
||||
// failed. Keep the BreakpointActor in the BreakpointActorMap as a
|
||||
// pending breakpoint, so we can try again whenever a new script is
|
||||
|
|
|
@ -14,9 +14,6 @@ const { Task } = Cu.import("resource://gre/modules/Task.jsm", {});
|
|||
const { promiseInvoke } = devtools.require("devtools/async-utils");
|
||||
|
||||
const Services = devtools.require("Services");
|
||||
// Always log packets when running tests. runxpcshelltests.py will throw
|
||||
// the output away anyway, unless you give it the --verbose flag.
|
||||
Services.prefs.setBoolPref("devtools.debugger.log", true);
|
||||
// Enable remote debugging for the relevant tests.
|
||||
Services.prefs.setBoolPref("devtools.debugger.remote-enabled", true);
|
||||
|
||||
|
@ -24,6 +21,98 @@ const DevToolsUtils = devtools.require("devtools/toolkit/DevToolsUtils.js");
|
|||
const { DebuggerServer } = devtools.require("devtools/server/main");
|
||||
const { DebuggerServer: WorkerDebuggerServer } = worker.require("devtools/server/main");
|
||||
|
||||
let loadSubScript = Cc[
|
||||
'@mozilla.org/moz/jssubscript-loader;1'
|
||||
].getService(Ci.mozIJSSubScriptLoader).loadSubScript;
|
||||
|
||||
function createTestGlobal(name) {
|
||||
let sandbox = Cu.Sandbox(
|
||||
Cc["@mozilla.org/systemprincipal;1"].createInstance(Ci.nsIPrincipal)
|
||||
);
|
||||
sandbox.__name = name;
|
||||
return sandbox;
|
||||
}
|
||||
|
||||
function connect(client) {
|
||||
dump("Connecting client.\n");
|
||||
return new Promise(function (resolve) {
|
||||
client.connect(function () {
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function close(client) {
|
||||
dump("Closing client.\n");
|
||||
return new Promise(function (resolve) {
|
||||
client.close(function () {
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function listTabs(client) {
|
||||
dump("Listing tabs.\n");
|
||||
return rdpRequest(client, client.listTabs);
|
||||
}
|
||||
|
||||
function findTab(tabs, title) {
|
||||
dump("Finding tab with title '" + title + "'.\n");
|
||||
for (let tab of tabs) {
|
||||
if (tab.title === title) {
|
||||
return tab;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function attachTab(client, tab) {
|
||||
dump("Attaching to tab with title '" + tab.title + "'.\n");
|
||||
return rdpRequest(client, client.attachTab, tab.actor);
|
||||
}
|
||||
|
||||
function waitForNewSource(client, url) {
|
||||
dump("Waiting for new source with url '" + url + "'.\n");
|
||||
return waitForEvent(client, "newSource", function (packet) {
|
||||
return packet.source.url === url;
|
||||
});
|
||||
}
|
||||
|
||||
function attachThread(tabClient, options = {}) {
|
||||
dump("Attaching to thread.\n");
|
||||
return rdpRequest(tabClient, tabClient.attachThread, options);
|
||||
}
|
||||
|
||||
function resume(threadClient) {
|
||||
dump("Resuming thread.\n");
|
||||
return rdpRequest(threadClient, threadClient.resume);
|
||||
}
|
||||
|
||||
function getSources(threadClient) {
|
||||
dump("Getting sources.\n");
|
||||
return rdpRequest(threadClient, threadClient.getSources);
|
||||
}
|
||||
|
||||
function findSource(sources, url) {
|
||||
dump("Finding source with url '" + url + "'.\n");
|
||||
for (let source of sources) {
|
||||
if (source.url === url) {
|
||||
return source;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function waitForPause(threadClient) {
|
||||
dump("Waiting for pause.\n");
|
||||
return waitForEvent(threadClient, "paused");
|
||||
}
|
||||
|
||||
function setBreakpoint(sourceClient, location) {
|
||||
dump("Setting breakpoint.\n");
|
||||
return rdpRequest(sourceClient, sourceClient.setBreakpoint, location);
|
||||
}
|
||||
|
||||
function dumpn(msg) {
|
||||
dump("DBG-TEST: " + msg + "\n");
|
||||
}
|
||||
|
@ -443,23 +532,27 @@ const assert = do_check_true;
|
|||
*
|
||||
* @param DebuggerClient client
|
||||
* @param String event
|
||||
* @param Function predicate
|
||||
* @returns Promise
|
||||
*/
|
||||
function waitForEvent(client, event) {
|
||||
dumpn("Waiting for event: " + event);
|
||||
return new Promise((resolve, reject) => {
|
||||
client.addOneTimeListener(event, (_, packet) => resolve(packet));
|
||||
});
|
||||
}
|
||||
function waitForEvent(client, type, predicate) {
|
||||
return new Promise(function (resolve) {
|
||||
function listener(type, packet) {
|
||||
if (!predicate(packet)) {
|
||||
return;
|
||||
}
|
||||
client.removeListener(listener);
|
||||
resolve(packet);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a promise that is resolved on the next pause.
|
||||
*
|
||||
* @param DebuggerClient client
|
||||
* @returns Promise
|
||||
*/
|
||||
function waitForPause(client) {
|
||||
return waitForEvent(client, "paused");
|
||||
if (predicate) {
|
||||
client.addListener(type, listener);
|
||||
} else {
|
||||
client.addOneTimeListener(type, function (type, packet) {
|
||||
resolve(packet);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -508,29 +601,6 @@ function rdpRequest(client, method, ...args) {
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a breakpoint over the Remote Debugging Protocol.
|
||||
*
|
||||
* @param SourceClient sourceClient
|
||||
* @param {url, line[, column[, condition]]} breakpointOptions
|
||||
* @returns Promise
|
||||
*/
|
||||
function setBreakpoint(sourceClient, breakpointOptions) {
|
||||
dumpn("Setting a breakpoint: " + JSON.stringify(breakpointOptions, null, 2));
|
||||
return rdpRequest(sourceClient, sourceClient.setBreakpoint, breakpointOptions);
|
||||
}
|
||||
|
||||
/**
|
||||
* Resume JS execution for the specified thread.
|
||||
*
|
||||
* @param ThreadClient threadClient
|
||||
* @returns Promise
|
||||
*/
|
||||
function resume(threadClient) {
|
||||
dumpn("Resuming.");
|
||||
return rdpRequest(threadClient, threadClient.resume);
|
||||
}
|
||||
|
||||
/**
|
||||
* Interrupt JS execution for the specified thread.
|
||||
*
|
||||
|
@ -555,17 +625,6 @@ function resumeAndWaitForPause(client, threadClient) {
|
|||
return resume(threadClient).then(() => paused);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the list of sources for the specified thread.
|
||||
*
|
||||
* @param ThreadClient threadClient
|
||||
* @returns Promise
|
||||
*/
|
||||
function getSources(threadClient) {
|
||||
dumpn("Getting sources.");
|
||||
return rdpRequest(threadClient, threadClient.getSources);
|
||||
}
|
||||
|
||||
/**
|
||||
* Resume JS execution for a single step and wait for the pause after the step
|
||||
* has been taken.
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
"use strict";
|
||||
|
||||
function f() {}
|
||||
|
||||
(function () {
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
var c = 3;
|
||||
})();
|
|
@ -0,0 +1,7 @@
|
|||
"use strict";
|
||||
|
||||
function f() {
|
||||
for (var i = 0; i < 1; ++i) {
|
||||
;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
"use strict";
|
||||
|
||||
function f() {
|
||||
var a = 1; var b = 2; var c = 3;
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
"use strict";
|
||||
|
||||
function f() {
|
||||
function g() {
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
|
||||
}
|
||||
|
||||
g();
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
"use strict";
|
||||
|
||||
function f() {}
|
||||
|
||||
(function () {
|
||||
var a = 1;
|
||||
|
||||
var c = 3;
|
||||
})();
|
|
@ -0,0 +1,7 @@
|
|||
"use strict";
|
||||
|
||||
function f() {
|
||||
var a = 1;
|
||||
|
||||
var c = 3;
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
"use strict";
|
||||
|
||||
function f() {
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
var c = 3;
|
||||
}
|
|
@ -35,9 +35,9 @@ const testBlackBox = Task.async(function* () {
|
|||
});
|
||||
yield resume(gThreadClient);
|
||||
|
||||
const sourcesResponse = yield getSources(gThreadClient);
|
||||
const { sources } = yield getSources(gThreadClient);
|
||||
let sourceClient = gThreadClient.source(
|
||||
sourcesResponse.sources.filter(s => s.url == BLACK_BOXED_URL)[0]);
|
||||
sources.filter(s => s.url == BLACK_BOXED_URL)[0]);
|
||||
do_check_true(!sourceClient.isBlackBoxed,
|
||||
"By default the source is not black boxed.");
|
||||
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
"use strict";
|
||||
|
||||
let SOURCE_URL = getFileUrl("setBreakpoint-on-line-in-gcd-script.js");
|
||||
|
||||
function run_test() {
|
||||
return Task.spawn(function* () {
|
||||
do_test_pending();
|
||||
|
||||
let global = createTestGlobal("test");
|
||||
loadSubScript(SOURCE_URL, global);
|
||||
Cu.forceGC(); Cu.forceGC(); Cu.forceGC();
|
||||
|
||||
DebuggerServer.registerModule("xpcshell-test/testactors");
|
||||
DebuggerServer.init(() => true);
|
||||
DebuggerServer.addTestGlobal(global);
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
yield connect(client);
|
||||
|
||||
let { tabs } = yield listTabs(client);
|
||||
let tab = findTab(tabs, "test");
|
||||
let [, tabClient] = yield attachTab(client, tab);
|
||||
let [, threadClient] = yield attachThread(tabClient);
|
||||
yield resume(threadClient);
|
||||
|
||||
let { sources } = yield getSources(threadClient);
|
||||
let source = findSource(sources, SOURCE_URL);
|
||||
let sourceClient = threadClient.source(source);
|
||||
|
||||
let location = { line: 7 };
|
||||
let [packet, breakpointClient] = yield setBreakpoint(sourceClient, location);
|
||||
do_check_true(packet.isPending);
|
||||
do_check_false("actualLocation" in packet);
|
||||
|
||||
packet = yield executeOnNextTickAndWaitForPause(function () {
|
||||
reload(tabClient).then(function () {
|
||||
loadSubScript(SOURCE_URL, global);
|
||||
});
|
||||
}, client);
|
||||
do_check_eq(packet.type, "paused");
|
||||
let why = packet.why;
|
||||
do_check_eq(why.type, "breakpoint");
|
||||
do_check_eq(why.actors.length, 1);
|
||||
do_check_eq(why.actors[0], breakpointClient.actor);
|
||||
let frame = packet.frame;
|
||||
let where = frame.where;
|
||||
do_check_eq(where.source.actor, source.actor);
|
||||
do_check_eq(where.line, location.line);
|
||||
let variables = frame.environment.bindings.variables;
|
||||
do_check_eq(variables.a.value, 1);
|
||||
do_check_eq(variables.b.value.type, "undefined");
|
||||
do_check_eq(variables.c.value.type, "undefined");
|
||||
yield resume(threadClient);
|
||||
|
||||
yield close(client);
|
||||
do_test_finished();
|
||||
});
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
"use strict";
|
||||
|
||||
let SOURCE_URL = getFileUrl("setBreakpoint-on-line-with-multiple-offsets.js");
|
||||
|
||||
function run_test() {
|
||||
return Task.spawn(function* () {
|
||||
do_test_pending();
|
||||
|
||||
DebuggerServer.registerModule("xpcshell-test/testactors");
|
||||
DebuggerServer.init(() => true);
|
||||
|
||||
let global = createTestGlobal("test");
|
||||
DebuggerServer.addTestGlobal(global);
|
||||
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
yield connect(client);
|
||||
|
||||
let { tabs } = yield listTabs(client);
|
||||
let tab = findTab(tabs, "test");
|
||||
let [, tabClient] = yield attachTab(client, tab);
|
||||
|
||||
let [, threadClient] = yield attachThread(tabClient);
|
||||
yield resume(threadClient);
|
||||
|
||||
let promise = waitForNewSource(client, SOURCE_URL);
|
||||
loadSubScript(SOURCE_URL, global);
|
||||
let { source } = yield promise;
|
||||
let sourceClient = threadClient.source(source);
|
||||
|
||||
let location = { line: 4 };
|
||||
let [packet, breakpointClient] = yield setBreakpoint(sourceClient, location);
|
||||
do_check_false(packet.isPending);
|
||||
do_check_false("actualLocation" in packet);
|
||||
|
||||
packet = yield executeOnNextTickAndWaitForPause(function () {
|
||||
Cu.evalInSandbox("f()", global);
|
||||
}, client);
|
||||
do_check_eq(packet.type, "paused");
|
||||
let why = packet.why;
|
||||
do_check_eq(why.type, "breakpoint");
|
||||
do_check_eq(why.actors.length, 1);
|
||||
do_check_eq(why.actors[0], breakpointClient.actor);
|
||||
let frame = packet.frame;
|
||||
let where = frame.where;
|
||||
do_check_eq(where.source.actor, source.actor);
|
||||
do_check_eq(where.line, location.line);
|
||||
let variables = frame.environment.bindings.variables;
|
||||
do_check_eq(variables.i.value.type, "undefined");
|
||||
|
||||
packet = yield executeOnNextTickAndWaitForPause(function () {
|
||||
resume(threadClient);
|
||||
}, client);
|
||||
do_check_eq(packet.type, "paused");
|
||||
why = packet.why;
|
||||
do_check_eq(why.type, "breakpoint");
|
||||
do_check_eq(why.actors.length, 1);
|
||||
do_check_eq(why.actors[0], breakpointClient.actor);
|
||||
frame = packet.frame;
|
||||
where = frame.where;
|
||||
do_check_eq(where.source.actor, source.actor);
|
||||
do_check_eq(where.line, location.line);
|
||||
variables = frame.environment.bindings.variables;
|
||||
do_check_eq(variables.i.value, 0);
|
||||
|
||||
yield resume(threadClient);
|
||||
yield close(client);
|
||||
|
||||
do_test_finished();
|
||||
});
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
"use strict";
|
||||
|
||||
let SOURCE_URL = getFileUrl("setBreakpoint-on-line-with-multiple-statements.js");
|
||||
|
||||
function run_test() {
|
||||
return Task.spawn(function* () {
|
||||
do_test_pending();
|
||||
|
||||
DebuggerServer.registerModule("xpcshell-test/testactors");
|
||||
DebuggerServer.init(() => true);
|
||||
|
||||
let global = createTestGlobal("test");
|
||||
DebuggerServer.addTestGlobal(global);
|
||||
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
yield connect(client);
|
||||
|
||||
let { tabs } = yield listTabs(client);
|
||||
let tab = findTab(tabs, "test");
|
||||
let [, tabClient] = yield attachTab(client, tab);
|
||||
|
||||
let [, threadClient] = yield attachThread(tabClient);
|
||||
yield resume(threadClient);
|
||||
|
||||
let promise = waitForNewSource(client, SOURCE_URL);
|
||||
loadSubScript(SOURCE_URL, global);
|
||||
let { source } = yield promise;
|
||||
let sourceClient = threadClient.source(source);
|
||||
|
||||
let location = { line: 4 };
|
||||
let [packet, breakpointClient] = yield setBreakpoint(sourceClient, location);
|
||||
do_check_false(packet.isPending);
|
||||
do_check_false("actualLocation" in packet);
|
||||
|
||||
packet = yield executeOnNextTickAndWaitForPause(function () {
|
||||
Cu.evalInSandbox("f()", global);
|
||||
}, client);
|
||||
do_check_eq(packet.type, "paused");
|
||||
let why = packet.why;
|
||||
do_check_eq(why.type, "breakpoint");
|
||||
do_check_eq(why.actors.length, 1);
|
||||
do_check_eq(why.actors[0], breakpointClient.actor);
|
||||
let frame = packet.frame;
|
||||
let where = frame.where;
|
||||
do_check_eq(where.source.actor, source.actor);
|
||||
do_check_eq(where.line, location.line);
|
||||
let variables = frame.environment.bindings.variables;
|
||||
do_check_eq(variables.a.value.type, "undefined");
|
||||
do_check_eq(variables.b.value.type, "undefined");
|
||||
do_check_eq(variables.c.value.type, "undefined");
|
||||
|
||||
yield resume(threadClient);
|
||||
yield close(client);
|
||||
|
||||
do_test_finished();
|
||||
});
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
"use strict";
|
||||
|
||||
let SOURCE_URL = getFileUrl("setBreakpoint-on-line-with-no-offests-in-gcd-script.js");
|
||||
|
||||
function run_test() {
|
||||
return Task.spawn(function* () {
|
||||
do_test_pending();
|
||||
|
||||
let global = testGlobal("test");
|
||||
loadSubScript(SOURCE_URL, global);
|
||||
Cu.forceGC();
|
||||
|
||||
DebuggerServer.registerModule("xpcshell-test/testactors");
|
||||
DebuggerServer.init(() => true);
|
||||
DebuggerServer.addTestGlobal(global);
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
yield connect(client);
|
||||
|
||||
let tab = yield findTab(client, "test");
|
||||
let [, tabClient] = yield attachTab(client, tab);
|
||||
let [, threadClient] = yield attachThread(tabClient);
|
||||
yield resume(threadClient);
|
||||
|
||||
let source = yield findSource(threadClient, SOURCE_URL);
|
||||
let sourceClient = threadClient.source(source);
|
||||
|
||||
let location = { line: 7 };
|
||||
let [packet, breakpointClient] = yield setBreakpoint(sourceClient, location);
|
||||
do_check_true(packet.isPending);
|
||||
|
||||
executeSoon(function () {
|
||||
reload(tabClient).then(function () {
|
||||
loadSubScript(SOURCE_URL, global);
|
||||
});
|
||||
});
|
||||
packet = yield waitForPaused(threadClient);
|
||||
do_check_eq(packet.type, "paused");
|
||||
let why = packet.why;
|
||||
do_check_eq(why.type, "breakpoint");
|
||||
do_check_eq(why.actors.length, 1);
|
||||
do_check_eq(why.actors[0], breakpointClient.actor);
|
||||
let frame = packet.frame;
|
||||
let where = frame.where;
|
||||
do_check_eq(where.source.actor, source.actor);
|
||||
do_check_eq(where.line, location.line + 1);
|
||||
let variables = frame.environment.bindings.variables;
|
||||
do_check_eq(variables.a.value, 1);
|
||||
do_check_eq(variables.c.value.type, "undefined");
|
||||
yield resume(threadClient);
|
||||
|
||||
yield close(client);
|
||||
do_test_finished();
|
||||
});
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
"use strict";
|
||||
|
||||
let SOURCE_URL = getFileUrl("setBreakpoint-on-line-with-no-offsets-at-end-of-script.js");
|
||||
|
||||
function run_test() {
|
||||
return Task.spawn(function* () {
|
||||
do_test_pending();
|
||||
|
||||
DebuggerServer.registerModule("xpcshell-test/testactors");
|
||||
DebuggerServer.init(() => true);
|
||||
|
||||
let global = createTestGlobal("test");
|
||||
DebuggerServer.addTestGlobal(global);
|
||||
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
yield connect(client);
|
||||
|
||||
let { tabs } = yield listTabs(client);
|
||||
let tab = findTab(tabs, "test");
|
||||
let [, tabClient] = yield attachTab(client, tab);
|
||||
let [, threadClient] = yield attachThread(tabClient);
|
||||
yield resume(threadClient);
|
||||
|
||||
let promise = waitForNewSource(client, SOURCE_URL);
|
||||
loadSubScript(SOURCE_URL, global);
|
||||
let { source } = yield promise;
|
||||
let sourceClient = threadClient.source(source);
|
||||
|
||||
let location = { line: 7 };
|
||||
let [packet, breakpointClient] = yield setBreakpoint(sourceClient, location);
|
||||
do_check_false(packet.isPending); // NOTE: Change this when bug 1148356 lands
|
||||
do_check_true("actualLocation" in packet);
|
||||
let actualLocation = packet.actualLocation;
|
||||
do_check_eq(actualLocation.line, 10);
|
||||
|
||||
packet = yield executeOnNextTickAndWaitForPause(function () {
|
||||
Cu.evalInSandbox("f()", global);
|
||||
}, client);
|
||||
do_check_eq(packet.type, "paused");
|
||||
let why = packet.why;
|
||||
do_check_eq(why.type, "breakpoint");
|
||||
do_check_eq(why.actors.length, 1);
|
||||
do_check_eq(why.actors[0], breakpointClient.actor);
|
||||
let where = packet.frame.where;
|
||||
do_check_eq(where.source.actor, source.actor);
|
||||
do_check_eq(where.line, actualLocation.line);
|
||||
|
||||
yield resume(threadClient);
|
||||
yield close(client);
|
||||
|
||||
do_test_finished();
|
||||
});
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
"use strict";
|
||||
|
||||
let SOURCE_URL = getFileUrl("setBreakpoint-on-line-with-no-offsets-in-gcd-script.js");
|
||||
|
||||
function run_test() {
|
||||
return Task.spawn(function* () {
|
||||
do_test_pending();
|
||||
|
||||
let global = createTestGlobal("test");
|
||||
loadSubScript(SOURCE_URL, global);
|
||||
Cu.forceGC(); Cu.forceGC(); Cu.forceGC();
|
||||
|
||||
DebuggerServer.registerModule("xpcshell-test/testactors");
|
||||
DebuggerServer.init(() => true);
|
||||
DebuggerServer.addTestGlobal(global);
|
||||
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
yield connect(client);
|
||||
|
||||
let { tabs } = yield listTabs(client);
|
||||
let tab = findTab(tabs, "test");
|
||||
let [, tabClient] = yield attachTab(client, tab);
|
||||
let [, threadClient] = yield attachThread(tabClient);
|
||||
yield resume(threadClient);
|
||||
|
||||
let { sources } = yield getSources(threadClient);
|
||||
let source = findSource(sources, SOURCE_URL);
|
||||
let sourceClient = threadClient.source(source);
|
||||
|
||||
let location = { line: 7 };
|
||||
let [packet, breakpointClient] = yield setBreakpoint(sourceClient, location);
|
||||
do_check_true(packet.isPending);
|
||||
do_check_false("actualLocation" in packet);
|
||||
|
||||
packet = yield executeOnNextTickAndWaitForPause(function () {
|
||||
reload(tabClient).then(function () {
|
||||
loadSubScript(SOURCE_URL, global);
|
||||
});
|
||||
}, client);
|
||||
do_check_eq(packet.type, "paused");
|
||||
let why = packet.why;
|
||||
do_check_eq(why.type, "breakpoint");
|
||||
do_check_eq(why.actors.length, 1);
|
||||
do_check_eq(why.actors[0], breakpointClient.actor);
|
||||
let frame = packet.frame;
|
||||
let where = frame.where;
|
||||
do_check_eq(where.source.actor, source.actor);
|
||||
do_check_eq(where.line, 8);
|
||||
let variables = frame.environment.bindings.variables;
|
||||
do_check_eq(variables.a.value, 1);
|
||||
do_check_eq(variables.c.value.type, "undefined");
|
||||
|
||||
yield resume(threadClient);
|
||||
yield close(client);
|
||||
|
||||
do_test_finished();
|
||||
});
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
"use strict";
|
||||
|
||||
let SOURCE_URL = getFileUrl("setBreakpoint-on-line-with-no-offsets.js");
|
||||
|
||||
function run_test() {
|
||||
return Task.spawn(function* () {
|
||||
do_test_pending();
|
||||
|
||||
DebuggerServer.registerModule("xpcshell-test/testactors");
|
||||
DebuggerServer.init(() => true);
|
||||
|
||||
let global = createTestGlobal("test");
|
||||
DebuggerServer.addTestGlobal(global);
|
||||
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
yield connect(client);
|
||||
|
||||
let { tabs } = yield listTabs(client);
|
||||
let tab = findTab(tabs, "test");
|
||||
let [, tabClient] = yield attachTab(client, tab);
|
||||
let [, threadClient] = yield attachThread(tabClient);
|
||||
yield resume(threadClient);
|
||||
|
||||
let promise = waitForNewSource(client, SOURCE_URL);
|
||||
loadSubScript(SOURCE_URL, global);
|
||||
let { source } = yield promise;
|
||||
let sourceClient = threadClient.source(source);
|
||||
|
||||
let location = { line: 5 };
|
||||
let [packet, breakpointClient] = yield setBreakpoint(sourceClient, location);
|
||||
do_check_false(packet.isPending);
|
||||
do_check_true("actualLocation" in packet);
|
||||
let actualLocation = packet.actualLocation;
|
||||
do_check_eq(actualLocation.line, 6);
|
||||
|
||||
packet = yield executeOnNextTickAndWaitForPause(function () {
|
||||
Cu.evalInSandbox("f()", global);
|
||||
}, client);
|
||||
do_check_eq(packet.type, "paused");
|
||||
let why = packet.why;
|
||||
do_check_eq(why.type, "breakpoint");
|
||||
do_check_eq(why.actors.length, 1);
|
||||
do_check_eq(why.actors[0], breakpointClient.actor);
|
||||
let frame = packet.frame;
|
||||
let where = frame.where;
|
||||
do_check_eq(where.source.actor, source.actor);
|
||||
do_check_eq(where.line, actualLocation.line);
|
||||
let variables = frame.environment.bindings.variables;
|
||||
do_check_eq(variables.a.value, 1);
|
||||
do_check_eq(variables.c.value.type, "undefined");
|
||||
|
||||
yield resume(threadClient);
|
||||
yield close(client);
|
||||
|
||||
do_test_finished();
|
||||
});
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
"use strict";
|
||||
|
||||
let SOURCE_URL = getFileUrl("setBreakpoint-on-line.js");
|
||||
|
||||
function run_test() {
|
||||
return Task.spawn(function* () {
|
||||
do_test_pending();
|
||||
|
||||
DebuggerServer.registerModule("xpcshell-test/testactors");
|
||||
DebuggerServer.init(() => true);
|
||||
|
||||
let global = createTestGlobal("test");
|
||||
DebuggerServer.addTestGlobal(global);
|
||||
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
yield connect(client);
|
||||
|
||||
let { tabs } = yield listTabs(client);
|
||||
let tab = findTab(tabs, "test");
|
||||
let [, tabClient] = yield attachTab(client, tab);
|
||||
|
||||
let [, threadClient] = yield attachThread(tabClient);
|
||||
yield resume(threadClient);
|
||||
|
||||
let promise = waitForNewSource(client, SOURCE_URL);
|
||||
loadSubScript(SOURCE_URL, global);
|
||||
let { source } = yield promise;
|
||||
let sourceClient = threadClient.source(source);
|
||||
|
||||
let location = { line: 5 };
|
||||
let [packet, breakpointClient] = yield setBreakpoint(sourceClient, location);
|
||||
do_check_false(packet.isPending);
|
||||
do_check_false("actualLocation" in packet);
|
||||
|
||||
packet = yield executeOnNextTickAndWaitForPause(function () {
|
||||
Cu.evalInSandbox("f()", global);
|
||||
}, client);
|
||||
do_check_eq(packet.type, "paused");
|
||||
let why = packet.why;
|
||||
do_check_eq(why.type, "breakpoint");
|
||||
do_check_eq(why.actors.length, 1);
|
||||
do_check_eq(why.actors[0], breakpointClient.actor);
|
||||
let frame = packet.frame;
|
||||
let where = frame.where;
|
||||
do_check_eq(where.source.actor, source.actor);
|
||||
do_check_eq(where.line, location.line);
|
||||
let variables = frame.environment.bindings.variables;
|
||||
do_check_eq(variables.a.value, 1);
|
||||
do_check_eq(variables.b.value.type, "undefined");
|
||||
do_check_eq(variables.c.value.type, "undefined");
|
||||
|
||||
yield resume(threadClient);
|
||||
yield close(client);
|
||||
|
||||
do_test_finished();
|
||||
});
|
||||
}
|
|
@ -50,9 +50,9 @@ const testTraces = Task.async(function* () {
|
|||
evalSetup();
|
||||
|
||||
// Blackbox source
|
||||
const sourcesResponse = yield getSources(gThreadClient);
|
||||
const { sources } = yield getSources(gThreadClient);
|
||||
let sourceClient = gThreadClient.source(
|
||||
sourcesResponse.sources.filter(s => s.url == BLACK_BOXED_URL)[0]);
|
||||
sources.filter(s => s.url == BLACK_BOXED_URL)[0]);
|
||||
do_check_true(!sourceClient.isBlackBoxed,
|
||||
"By default the source is not black boxed.");
|
||||
yield blackBox(sourceClient);
|
||||
|
|
|
@ -17,6 +17,13 @@ support-files =
|
|||
testactors.js
|
||||
tracerlocations.js
|
||||
hello-actor.js
|
||||
setBreakpoint-on-line.js
|
||||
setBreakpoint-on-line-in-gcd-script.js
|
||||
setBreakpoint-on-line-with-multiple-offsets.js
|
||||
setBreakpoint-on-line-with-multiple-statements.js
|
||||
setBreakpoint-on-line-with-no-offsets.js
|
||||
setBreakpoint-on-line-with-no-offsets-at-end-of-script.js
|
||||
setBreakpoint-on-line-with-no-offsets-in-gcd-script.js
|
||||
|
||||
[test_ScriptStore.js]
|
||||
[test_actor-registry-actor.js]
|
||||
|
@ -237,3 +244,10 @@ support-files = xpcshell_debugging_script.js
|
|||
run-sequentially = measure memory, has to be run solo
|
||||
skip-if = os != 'linux' || debug || asan
|
||||
reason = bug 1014071
|
||||
[test_setBreakpoint-on-line.js]
|
||||
[test_setBreakpoint-on-line-in-gcd-script.js]
|
||||
[test_setBreakpoint-on-line-with-multiple-offsets.js]
|
||||
[test_setBreakpoint-on-line-with-multiple-statements.js]
|
||||
[test_setBreakpoint-on-line-with-no-offsets.js]
|
||||
[test_setBreakpoint-on-line-with-no-offsets-at-end-of-script.js]
|
||||
[test_setBreakpoint-on-line-with-no-offsets-in-gcd-script.js]
|
||||
|
|
|
@ -9,9 +9,6 @@ toolkit.jar:
|
|||
+ skin/classic/mozapps/extensions/extensions.css (extensions/extensions.css)
|
||||
+ skin/classic/mozapps/extensions/category-search.png (extensions/category-search.png)
|
||||
+ skin/classic/mozapps/extensions/category-discover.png (extensions/category-discover.png)
|
||||
+ skin/classic/mozapps/extensions/category-languages.png (extensions/localeGeneric.png)
|
||||
+ skin/classic/mozapps/extensions/category-extensions.png (extensions/extensionGeneric.png)
|
||||
+ skin/classic/mozapps/extensions/category-themes.png (extensions/themeGeneric.png)
|
||||
+ skin/classic/mozapps/extensions/category-plugins.png (extensions/category-plugins.png)
|
||||
+ skin/classic/mozapps/extensions/category-service.png (extensions/category-service.png)
|
||||
+ skin/classic/mozapps/extensions/category-dictionaries.png (extensions/category-dictionaries.png)
|
||||
|
@ -28,17 +25,15 @@ toolkit.jar:
|
|||
+ skin/classic/mozapps/extensions/localeGeneric.png (extensions/localeGeneric.png)
|
||||
+ skin/classic/mozapps/extensions/newaddon.css (extensions/newaddon.css)
|
||||
+ skin/classic/mozapps/extensions/selectAddons.css (extensions/selectAddons.css)
|
||||
+ skin/classic/mozapps/passwordmgr/key.png (passwordmgr/key-16.png)
|
||||
+ skin/classic/mozapps/passwordmgr/key-16.png (passwordmgr/key-16.png)
|
||||
+ skin/classic/mozapps/passwordmgr/key-64.png (passwordmgr/key-64.png)
|
||||
+ skin/classic/mozapps/plugins/notifyPluginCrashed.png (plugins/pluginGeneric-16.png)
|
||||
+ skin/classic/mozapps/plugins/notifyPluginGeneric.png (plugins/pluginGeneric-16.png)
|
||||
+ skin/classic/mozapps/plugins/pluginGeneric.png (plugins/pluginGeneric.png)
|
||||
+ skin/classic/mozapps/plugins/pluginBlocked.png (plugins/pluginBlocked.png)
|
||||
+ skin/classic/mozapps/plugins/pluginGeneric-16.png (plugins/pluginGeneric-16.png)
|
||||
+ skin/classic/mozapps/profile/profileicon.png (profile/profileicon.png)
|
||||
+ skin/classic/mozapps/viewsource/viewsource.css (viewsource/viewsource.css)
|
||||
+ skin/classic/mozapps/xpinstall/xpinstallItemGeneric.png (extensions/extensionGeneric.png)
|
||||
#ifdef MOZ_PLACES
|
||||
+ skin/classic/mozapps/places/defaultFavicon.png (places/defaultFavicon.png)
|
||||
#endif
|
||||
|
||||
% override chrome://mozapps/skin/passwordmgr/key.png chrome://mozapps/skin/passwordmgr/key-16.png
|
||||
|
|
|
@ -89,7 +89,6 @@ toolkit.jar:
|
|||
* skin/classic/global/console/console.css (console/console.css)
|
||||
skin/classic/global/dirListing/dirListing.css (dirListing/dirListing.css)
|
||||
skin/classic/global/dirListing/folder.png (dirListing/folder.png)
|
||||
skin/classic/global/dirListing/local.png (dirListing/folder.png)
|
||||
skin/classic/global/dirListing/remote.png (dirListing/remote.png)
|
||||
skin/classic/global/dirListing/up.png (dirListing/up.png)
|
||||
skin/classic/global/icons/autocomplete-dropmarker.png (icons/autocomplete-dropmarker.png)
|
||||
|
@ -215,3 +214,5 @@ toolkit.jar:
|
|||
skin/classic/global/tree/columnpicker.gif (tree/columnpicker.gif)
|
||||
skin/classic/global/tree/folder.png (tree/folder.png)
|
||||
skin/classic/global/tree/folder@2x.png (tree/folder@2x.png)
|
||||
|
||||
% override chrome://global/skin/dirListing/local.png chrome://global/skin/dirListing/folder.png
|
||||
|
|
|
@ -10,10 +10,7 @@ toolkit.jar:
|
|||
skin/classic/mozapps/downloads/unknownContentType.css (downloads/unknownContentType.css)
|
||||
skin/classic/mozapps/extensions/category-search.png (extensions/category-search.png)
|
||||
skin/classic/mozapps/extensions/category-discover.png (extensions/category-discover.png)
|
||||
skin/classic/mozapps/extensions/category-languages.png (extensions/localeGeneric.png)
|
||||
skin/classic/mozapps/extensions/category-searchengines.png (extensions/category-searchengines.png)
|
||||
skin/classic/mozapps/extensions/category-extensions.png (extensions/extensionGeneric.png)
|
||||
skin/classic/mozapps/extensions/category-themes.png (extensions/themeGeneric.png)
|
||||
skin/classic/mozapps/extensions/category-plugins.png (extensions/category-plugins.png)
|
||||
skin/classic/mozapps/extensions/category-service.png (extensions/category-service.png)
|
||||
skin/classic/mozapps/extensions/category-dictionaries.png (extensions/category-dictionaries.png)
|
||||
|
@ -67,7 +64,6 @@ toolkit.jar:
|
|||
skin/classic/mozapps/plugins/contentPluginDownload.png (../../shared/plugins/contentPluginDownload.png)
|
||||
skin/classic/mozapps/plugins/contentPluginMissing.png (../../shared/plugins/contentPluginMissing.png)
|
||||
skin/classic/mozapps/plugins/contentPluginStripe.png (../../shared/plugins/contentPluginStripe.png)
|
||||
skin/classic/mozapps/plugins/notifyPluginCrashed.png (plugins/notifyPluginGeneric.png)
|
||||
skin/classic/mozapps/plugins/notifyPluginGeneric.png (plugins/notifyPluginGeneric.png)
|
||||
skin/classic/mozapps/plugins/pluginGeneric.png (plugins/pluginGeneric.png)
|
||||
skin/classic/mozapps/plugins/pluginBlocked.png (plugins/pluginBlocked.png)
|
||||
|
@ -80,10 +76,15 @@ toolkit.jar:
|
|||
skin/classic/mozapps/update/buttons.png (update/buttons.png)
|
||||
* skin/classic/mozapps/update/updates.css (update/updates.css)
|
||||
skin/classic/mozapps/viewsource/viewsource.css (viewsource/viewsource.css)
|
||||
skin/classic/mozapps/xpinstall/xpinstallItemGeneric.png (extensions/extensionGeneric.png)
|
||||
skin/classic/mozapps/xpinstall/xpinstallConfirm.css (extensions/xpinstallConfirm.css)
|
||||
#ifdef MOZ_PLACES
|
||||
skin/classic/mozapps/places/defaultFavicon.png (places/defaultFavicon.png)
|
||||
skin/classic/mozapps/places/defaultFavicon@2x.png (places/defaultFavicon@2x.png)
|
||||
#endif
|
||||
skin/classic/mozapps/handling/handling.css (handling/handling.css)
|
||||
|
||||
% override chrome://mozapps/skin/extensions/category-extensions.png chrome://mozapps/skin/extensions/extensionGeneric.png
|
||||
% override chrome://mozapps/skin/extensions/category-languages.png chrome://mozapps/skin/extensions/localeGeneric.png
|
||||
% override chrome://mozapps/skin/extensions/category-themes.png chrome://mozapps/skin/extensions/themeGeneric.png
|
||||
% override chrome://mozapps/skin/plugins/notifyPluginCrashed.png chrome://mozapps/skin/plugins/notifyPluginGeneric.png
|
||||
% override chrome://mozapps/skin/xpinstall/xpinstallItemGeneric.png chrome://mozapps/skin/extensions/extensionGeneric.png
|
||||
|
|
|
@ -5,8 +5,7 @@
|
|||
body {
|
||||
padding: 64px 0;
|
||||
max-width: 660px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
body.loaded {
|
||||
|
@ -31,11 +30,13 @@ body.loaded {
|
|||
background-color: #f0ece7;
|
||||
}
|
||||
|
||||
.sans-serif {
|
||||
.sans-serif,
|
||||
.sans-serif .remove-button {
|
||||
font-family: "Fira Sans", Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
.serif {
|
||||
.serif,
|
||||
.serif .remove-button {
|
||||
font-family: "Charis SIL", Georgia, "Times New Roman", serif;
|
||||
}
|
||||
|
||||
|
@ -246,30 +247,33 @@ body.loaded {
|
|||
font-family: "Fira Sans", Helvetica, Arial, sans-serif;
|
||||
position: fixed;
|
||||
height: 100%;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
top: 0;
|
||||
left: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
background-color: #FBFBFB;
|
||||
background-color: #fbfbfb;
|
||||
-moz-user-select: none;
|
||||
border-right: 1px solid #B5B5B5;
|
||||
border-right: 1px solid #b5b5b5;
|
||||
}
|
||||
|
||||
.button {
|
||||
color: white;
|
||||
display: block;
|
||||
background-position: center;
|
||||
background-size: 24px 24px;
|
||||
background-repeat: no-repeat;
|
||||
background-color: transparent;
|
||||
height: 40px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.toolbar .button {
|
||||
color: white;
|
||||
width: 40px;
|
||||
background-position: center;
|
||||
background-color: #fbfbfb;
|
||||
border-top: 0;
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
border-bottom: 1px solid #c1c1c1;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.button[hidden] {
|
||||
|
@ -279,13 +283,13 @@ body.loaded {
|
|||
.dropdown {
|
||||
text-align: center;
|
||||
list-style: none;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.dropdown li {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/*======= Font style popup =======*/
|
||||
|
@ -296,18 +300,18 @@ body.loaded {
|
|||
position: absolute;
|
||||
left: 48px; /* offset to account for toolbar width */
|
||||
z-index: 1000;
|
||||
background-color: #FBFBFB;
|
||||
background-color: #fbfbfb;
|
||||
visibility: hidden;
|
||||
border-radius: 4px;
|
||||
border: 1px 1px 0 1px solid #B5B5B5;
|
||||
box-shadow: 0px 1px 12px #666;
|
||||
border: 1px 1px 0 1px solid #b5b5b5;
|
||||
box-shadow: 0 1px 12px #666;
|
||||
}
|
||||
|
||||
.dropdown-popup > hr {
|
||||
width: 100%;
|
||||
height: 0px;
|
||||
border: 0px;
|
||||
border-top: 1px solid #B5B5B5;
|
||||
height: 0;
|
||||
border: 0;
|
||||
border-top: 1px solid #b5b5b5;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
|
@ -349,7 +353,7 @@ body.loaded {
|
|||
#font-size-buttons > button,
|
||||
#color-scheme-buttons > button {
|
||||
text-align: center;
|
||||
border-left: 1px solid #B5B5B5;
|
||||
border-left: 1px solid #b5b5b5;
|
||||
border-right: 0;
|
||||
border-top: 0;
|
||||
border-bottom: 0;
|
||||
|
@ -370,7 +374,7 @@ body.loaded {
|
|||
#font-type-buttons > button:first-child,
|
||||
#font-size-buttons > button:first-child,
|
||||
#color-scheme-buttons > button:first-child {
|
||||
border-left: 0px;
|
||||
border-left: 0;
|
||||
}
|
||||
|
||||
#font-type-buttons > button {
|
||||
|
@ -382,7 +386,7 @@ body.loaded {
|
|||
#font-type-buttons > button.selected,
|
||||
#color-scheme-buttons > button:active:hover,
|
||||
#color-scheme-buttons > button.selected {
|
||||
box-shadow: inset 0 -3px 0 0 #FC6420;
|
||||
box-shadow: inset 0 -3px 0 0 #fc6420;
|
||||
}
|
||||
|
||||
#font-type-buttons > button > div {
|
||||
|
@ -393,14 +397,14 @@ body.loaded {
|
|||
.button:hover,
|
||||
#font-size-buttons > button:hover,
|
||||
#font-type-buttons > button:hover {
|
||||
background-color: #EBEBEB;
|
||||
background-color: #ebebeb;
|
||||
}
|
||||
|
||||
.dropdown.open,
|
||||
.button:active,
|
||||
#font-size-buttons > button:active,
|
||||
#font-size-buttons > button.selected {
|
||||
background-color: #DADADA;
|
||||
background-color: #dadada;
|
||||
}
|
||||
|
||||
/* Only used on Android */
|
||||
|
@ -422,6 +426,39 @@ body.loaded {
|
|||
background-position: center;
|
||||
}
|
||||
|
||||
.footer {
|
||||
height: 64px;
|
||||
background-color: #ebebeb;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
padding: 12px 0;
|
||||
box-sizing: border-box;
|
||||
box-shadow: 0 9px 9px -9px #c1c1c1 inset;
|
||||
}
|
||||
|
||||
.sepia .footer {
|
||||
background-color: #dedad4;
|
||||
}
|
||||
|
||||
.dark .footer {
|
||||
background-color: #777;
|
||||
}
|
||||
|
||||
.remove-button {
|
||||
background-image: url("chrome://global/skin/reader/RM-Delete-24x24.svg");
|
||||
margin: 0 auto;
|
||||
border: 1px solid #c1c1c1;
|
||||
background-position: 10px 7px;
|
||||
padding-left: 42px;
|
||||
padding-right: 10px;
|
||||
border-radius: 2px;
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
|
||||
/*======= Toolbar icons =======*/
|
||||
|
||||
/* Android-only controls */
|
||||
|
@ -472,4 +509,7 @@ body.loaded {
|
|||
.toolbar {
|
||||
display: none;
|
||||
}
|
||||
.footer {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,10 +3,7 @@
|
|||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
toolkit.jar:
|
||||
% skin global classic/1.0 %skin/classic/global/ os=WINNT osversion<6
|
||||
% skin global classic/1.0 %skin/classic/global/ os!=WINNT
|
||||
# NOTE: If you add a new file here, you'll need to add it to the aero
|
||||
# section at the bottom of this file
|
||||
% skin global classic/1.0 %skin/classic/global/
|
||||
skin/classic/global/about.css
|
||||
skin/classic/global/aboutCache.css
|
||||
skin/classic/global/aboutCacheEntry.css
|
||||
|
@ -70,12 +67,10 @@ toolkit.jar:
|
|||
skin/classic/global/arrow/arrow-down.png (arrow/arrow-down.png)
|
||||
skin/classic/global/arrow/arrow-lft.gif (arrow/arrow-lft.gif)
|
||||
skin/classic/global/arrow/arrow-lft-dis.gif (arrow/arrow-lft-dis.gif)
|
||||
skin/classic/global/arrow/arrow-lft-hov.gif (arrow/arrow-lft.gif)
|
||||
skin/classic/global/arrow/arrow-lft-sharp.gif (arrow/arrow-lft-sharp.gif)
|
||||
skin/classic/global/arrow/arrow-lft-sharp-end.gif (arrow/arrow-lft-sharp-end.gif)
|
||||
skin/classic/global/arrow/arrow-rit.gif (arrow/arrow-rit.gif)
|
||||
skin/classic/global/arrow/arrow-rit-dis.gif (arrow/arrow-rit-dis.gif)
|
||||
skin/classic/global/arrow/arrow-rit-hov.gif (arrow/arrow-rit.gif)
|
||||
skin/classic/global/arrow/arrow-rit-sharp.gif (arrow/arrow-rit-sharp.gif)
|
||||
skin/classic/global/arrow/arrow-rit-sharp-end.gif (arrow/arrow-rit-sharp-end.gif)
|
||||
skin/classic/global/arrow/arrow-up.gif (arrow/arrow-up.gif)
|
||||
|
@ -194,7 +189,6 @@ toolkit.jar:
|
|||
skin/classic/global/reader/RM-Reading-List-24x24.svg (../../shared/reader/RM-Reading-List-24x24.svg)
|
||||
skin/classic/global/reader/RM-Type-Controls-24x24.svg (../../shared/reader/RM-Type-Controls-24x24.svg)
|
||||
skin/classic/global/reader/RM-Type-Controls-Arrow.svg (../../shared/reader/RM-Type-Controls-Arrow.svg)
|
||||
|
||||
skin/classic/global/scrollbar/slider.gif (scrollbar/slider.gif)
|
||||
skin/classic/global/splitter/grip-bottom.gif (splitter/grip-bottom.gif)
|
||||
skin/classic/global/splitter/grip-top.gif (splitter/grip-top.gif)
|
||||
|
@ -212,211 +206,136 @@ toolkit.jar:
|
|||
skin/classic/global/tree/twisty-open.png (tree/twisty-open.png)
|
||||
|
||||
#ifdef XP_WIN
|
||||
toolkit.jar:
|
||||
% skin global classic/1.0 %skin/classic/aero/global/ os=WINNT osversion>=6
|
||||
skin/classic/aero/global/about.css
|
||||
skin/classic/aero/global/aboutCache.css
|
||||
skin/classic/aero/global/aboutCacheEntry.css
|
||||
skin/classic/aero/global/aboutMemory.css
|
||||
skin/classic/aero/global/aboutReader.css
|
||||
skin/classic/aero/global/aboutSupport.css
|
||||
skin/classic/aero/global/appPicker.css
|
||||
skin/classic/aero/global/arrow.css
|
||||
* skin/classic/aero/global/autocomplete.css (autocomplete-aero.css)
|
||||
skin/classic/aero/global/button.css
|
||||
skin/classic/aero/global/checkbox.css
|
||||
skin/classic/aero/global/colorpicker.css
|
||||
skin/classic/aero/global/commonDialog.css
|
||||
skin/classic/aero/global/config.css (../../shared/config.css)
|
||||
skin/classic/aero/global/customizeToolbar.css
|
||||
skin/classic/aero/global/datetimepicker.css
|
||||
skin/classic/aero/global/dialog.css
|
||||
skin/classic/aero/global/dropmarker.css
|
||||
skin/classic/aero/global/expander.css
|
||||
skin/classic/aero/global/filefield.css
|
||||
skin/classic/aero/global/filepicker.css
|
||||
skin/classic/aero/global/findBar.css
|
||||
* skin/classic/aero/global/global.css
|
||||
skin/classic/aero/global/globalBindings.xml
|
||||
skin/classic/aero/global/groupbox.css
|
||||
* skin/classic/aero/global/inContentUI.css (inContentUI-aero.css)
|
||||
skin/classic/aero/global/linkTree.css
|
||||
* skin/classic/aero/global/listbox.css (listbox-aero.css)
|
||||
* skin/classic/aero/global/menu.css (menu-aero.css)
|
||||
* skin/classic/aero/global/menulist.css (menulist-aero.css)
|
||||
skin/classic/aero/global/netError.css
|
||||
skin/classic/aero/global/numberbox.css
|
||||
* skin/classic/aero/global/notification.css (notification-aero.css)
|
||||
skin/classic/aero/global/passwordmgr.css
|
||||
* skin/classic/aero/global/popup.css (popup-aero.css)
|
||||
skin/classic/aero/global/preferences.css
|
||||
skin/classic/aero/global/printPageSetup.css
|
||||
skin/classic/aero/global/printPreview.css
|
||||
skin/classic/aero/global/progressmeter.css
|
||||
skin/classic/aero/global/radio.css
|
||||
skin/classic/aero/global/resizer.css
|
||||
skin/classic/aero/global/richlistbox.css
|
||||
skin/classic/aero/global/scale.css
|
||||
skin/classic/aero/global/scrollbars.css (xulscrollbars.css)
|
||||
skin/classic/aero/global/scrollbox.css
|
||||
skin/classic/aero/global/spinbuttons.css
|
||||
skin/classic/aero/global/splitter.css
|
||||
skin/classic/aero/global/tabbox.css
|
||||
skin/classic/aero/global/tabprompts.css
|
||||
* skin/classic/aero/global/textbox.css (textbox-aero.css)
|
||||
skin/classic/aero/global/toolbar.css
|
||||
* skin/classic/aero/global/toolbarbutton.css (toolbarbutton-aero.css)
|
||||
* skin/classic/aero/global/tree.css (tree-aero.css)
|
||||
skin/classic/aero/global/wizard.css
|
||||
skin/classic/aero/global/alerts/alert.css (alerts/alert.css)
|
||||
skin/classic/aero/global/alerts/notification-48.png (alerts/notification-48.png)
|
||||
skin/classic/aero/global/arrow/arrow-dn.gif (arrow/arrow-dn.gif)
|
||||
skin/classic/aero/global/arrow/arrow-dn-dis.gif (arrow/arrow-dn-dis.gif)
|
||||
skin/classic/aero/global/arrow/arrow-dn-hov.gif (arrow/arrow-dn-hov.gif)
|
||||
skin/classic/aero/global/arrow/arrow-dn-sharp.gif (arrow/arrow-dn-sharp.gif)
|
||||
skin/classic/aero/global/arrow/arrow-down.png (arrow/arrow-down.png)
|
||||
skin/classic/aero/global/arrow/arrow-lft.gif (arrow/arrow-lft.gif)
|
||||
skin/classic/aero/global/arrow/arrow-lft-dis.gif (arrow/arrow-lft-dis.gif)
|
||||
skin/classic/aero/global/arrow/arrow-lft-hov.gif (arrow/arrow-lft.gif)
|
||||
skin/classic/aero/global/arrow/arrow-lft-sharp.gif (arrow/arrow-lft-sharp.gif)
|
||||
skin/classic/aero/global/arrow/arrow-lft-sharp-end.gif (arrow/arrow-lft-sharp-end.gif)
|
||||
skin/classic/aero/global/arrow/arrow-rit.gif (arrow/arrow-rit.gif)
|
||||
skin/classic/aero/global/arrow/arrow-rit-dis.gif (arrow/arrow-rit-dis.gif)
|
||||
skin/classic/aero/global/arrow/arrow-rit-hov.gif (arrow/arrow-rit.gif)
|
||||
skin/classic/aero/global/arrow/arrow-rit-sharp.gif (arrow/arrow-rit-sharp.gif)
|
||||
skin/classic/aero/global/arrow/arrow-rit-sharp-end.gif (arrow/arrow-rit-sharp-end.gif)
|
||||
skin/classic/aero/global/arrow/arrow-up.gif (arrow/arrow-up.gif)
|
||||
skin/classic/aero/global/arrow/arrow-up-dis.gif (arrow/arrow-up-dis.gif)
|
||||
skin/classic/aero/global/arrow/arrow-up-hov.gif (arrow/arrow-up-hov.gif)
|
||||
skin/classic/aero/global/arrow/arrow-up-sharp.gif (arrow/arrow-up-sharp.gif)
|
||||
skin/classic/aero/global/arrow/panelarrow-horizontal.svg (arrow/panelarrow-horizontal.svg)
|
||||
skin/classic/aero/global/arrow/panelarrow-vertical.svg (arrow/panelarrow-vertical.svg)
|
||||
skin/classic/aero/global/arrow/panelarrow-horizontal-themed.svg (arrow/panelarrow-horizontal-themed.svg)
|
||||
skin/classic/aero/global/arrow/panelarrow-vertical-themed.svg (arrow/panelarrow-vertical-themed.svg)
|
||||
skin/classic/aero/global/checkbox/cbox-check.gif (checkbox/cbox-check.gif)
|
||||
skin/classic/aero/global/checkbox/cbox-check-dis.gif (checkbox/cbox-check-dis.gif)
|
||||
* skin/classic/aero/global/console/console.css (console/console-aero.css)
|
||||
skin/classic/aero/global/console/console-toolbar.png (console/console-toolbar-aero.png)
|
||||
skin/classic/aero/global/console/console-error-caret.gif (console/console-error-caret.gif)
|
||||
skin/classic/aero/global/console/console-error-dash.gif (console/console-error-dash.gif)
|
||||
skin/classic/aero/global/console/itemSelected.png (console/itemSelected.png)
|
||||
* skin/classic/aero/global/dirListing/dirListing.css (dirListing/dirListing.css)
|
||||
skin/classic/aero/global/dirListing/folder.png (dirListing/folder-aero.png)
|
||||
skin/classic/aero/global/dirListing/local.png (dirListing/local-aero.png)
|
||||
skin/classic/aero/global/dirListing/remote.png (dirListing/remote-aero.png)
|
||||
skin/classic/aero/global/dirListing/up.png (dirListing/up-aero.png)
|
||||
skin/classic/aero/global/Filepicker.png (filepicker/Filepicker.png)
|
||||
skin/classic/aero/global/icons/autoscroll.png (icons/autoscroll-aero.png)
|
||||
skin/classic/aero/global/icons/autocomplete-search.svg (icons/autocomplete-search.svg)
|
||||
skin/classic/aero/global/icons/blacklist_favicon.png (icons/blacklist_favicon-aero.png)
|
||||
skin/classic/aero/global/icons/blacklist_large.png (icons/blacklist_large-aero.png)
|
||||
skin/classic/aero/global/icons/Close.gif (icons/Close.gif)
|
||||
skin/classic/aero/global/icons/close.png (icons/close.png)
|
||||
skin/classic/aero/global/icons/collapse.png (icons/collapse.png)
|
||||
skin/classic/aero/global/icons/Error.png (icons/Error-aero.png)
|
||||
skin/classic/aero/global/icons/error-16.png (icons/error-16-aero.png)
|
||||
skin/classic/aero/global/icons/error-24.png (icons/error-24-aero.png)
|
||||
skin/classic/aero/global/icons/error-48.png (icons/error-48-aero.png)
|
||||
skin/classic/aero/global/icons/error-64.png (icons/error-64-aero.png)
|
||||
skin/classic/aero/global/icons/expand.png (icons/expand.png)
|
||||
skin/classic/aero/global/icons/find.png (icons/find-aero.png)
|
||||
skin/classic/aero/global/icons/find-arrows.png (icons/find-arrows.png)
|
||||
skin/classic/aero/global/icons/folder-item.png (icons/folder-item-aero.png)
|
||||
skin/classic/aero/global/icons/information-16.png (icons/information-16-aero.png)
|
||||
skin/classic/aero/global/icons/information-24.png (icons/information-24-aero.png)
|
||||
skin/classic/aero/global/icons/information-32.png (icons/information-32-aero.png)
|
||||
skin/classic/aero/global/icons/information-48.png (icons/information-48-aero.png)
|
||||
skin/classic/aero/global/icons/information-64.png (icons/information-64-aero.png)
|
||||
skin/classic/aero/global/icons/loading_16.png (icons/loading_16.png)
|
||||
skin/classic/aero/global/icons/Minimize.gif (icons/Minimize.gif)
|
||||
skin/classic/aero/global/icons/Print-preview.png (icons/Print-preview-aero.png)
|
||||
skin/classic/aero/global/icons/Portrait.png (icons/Portrait-aero.png)
|
||||
skin/classic/aero/global/icons/Landscape.png (icons/Landscape-aero.png)
|
||||
skin/classic/aero/global/icons/Question.png (icons/Question-aero.png)
|
||||
skin/classic/aero/global/icons/question-16.png (icons/question-16-aero.png)
|
||||
skin/classic/aero/global/icons/question-24.png (icons/question-24-aero.png)
|
||||
skin/classic/aero/global/icons/question-48.png (icons/question-48-aero.png)
|
||||
skin/classic/aero/global/icons/question-64.png (icons/question-64-aero.png)
|
||||
skin/classic/aero/global/icons/resizer.png (icons/resizer.png)
|
||||
skin/classic/aero/global/icons/resizer-rtl.png (icons/resizer-rtl.png)
|
||||
skin/classic/aero/global/icons/Restore.gif (icons/Restore.gif)
|
||||
skin/classic/aero/global/icons/Search-close.png (icons/Search-close-aero.png)
|
||||
skin/classic/aero/global/icons/Search-glass.png (icons/Search-glass-aero.png)
|
||||
skin/classic/aero/global/icons/sslWarning.png (icons/sslWarning-aero.png)
|
||||
skin/classic/aero/global/icons/tabprompts-bgtexture.png (icons/tabprompts-bgtexture.png)
|
||||
skin/classic/aero/global/icons/warning.svg (../../shared/incontent-icons/warning.svg)
|
||||
skin/classic/aero/global/icons/Warning.png (icons/Warning-aero.png)
|
||||
skin/classic/aero/global/icons/warning-large.png (icons/warning-large-aero.png)
|
||||
skin/classic/aero/global/icons/warning-16.png (icons/warning-16-aero.png)
|
||||
skin/classic/aero/global/icons/warning-24.png (icons/warning-24-aero.png)
|
||||
skin/classic/aero/global/icons/warning-64.png (icons/warning-64-aero.png)
|
||||
skin/classic/aero/global/icons/windowControls.png (icons/windowControls-aero.png)
|
||||
skin/classic/aero/global/icons/wrap.png (icons/wrap-aero.png)
|
||||
skin/classic/aero/global/icons/webapps-16.png (icons/webapps-16.png)
|
||||
skin/classic/aero/global/icons/webapps-64.png (icons/webapps-64.png)
|
||||
skin/classic/aero/global/inContentUI/background-texture.png (inContentUI/background-texture.png)
|
||||
skin/classic/aero/global/media/TopLevelImageDocument.css (media/TopLevelImageDocument.css)
|
||||
skin/classic/aero/global/media/TopLevelVideoDocument.css (media/TopLevelVideoDocument.css)
|
||||
skin/classic/aero/global/media/imagedoc-lightnoise.png (media/imagedoc-lightnoise.png)
|
||||
skin/classic/aero/global/media/imagedoc-darknoise.png (media/imagedoc-darknoise.png)
|
||||
skin/classic/aero/global/media/videocontrols.css (media/videocontrols.css)
|
||||
skin/classic/aero/global/media/pauseButton.png (media/pauseButton.png)
|
||||
skin/classic/aero/global/media/playButton.png (media/playButton.png)
|
||||
skin/classic/aero/global/media/muteButton.png (media/muteButton.png)
|
||||
skin/classic/aero/global/media/unmuteButton.png (media/unmuteButton.png)
|
||||
skin/classic/aero/global/media/noAudio.png (media/noAudio.png)
|
||||
skin/classic/aero/global/media/fullscreenButton.png (media/fullscreenButton.png)
|
||||
skin/classic/aero/global/media/scrubberThumb.png (media/scrubberThumb.png)
|
||||
skin/classic/aero/global/media/scrubberThumbWide.png (media/scrubberThumbWide.png)
|
||||
skin/classic/aero/global/media/throbber.png (media/throbber.png)
|
||||
skin/classic/aero/global/media/stalled.png (media/stalled.png)
|
||||
skin/classic/aero/global/media/volume-empty.png (media/volume-empty.png)
|
||||
skin/classic/aero/global/media/volume-full.png (media/volume-full.png)
|
||||
skin/classic/aero/global/media/error.png (media/error.png)
|
||||
skin/classic/aero/global/media/clicktoplay-bgtexture.png (media/clicktoplay-bgtexture.png)
|
||||
skin/classic/aero/global/media/videoClickToPlayButton.svg (media/videoClickToPlayButton.svg)
|
||||
skin/classic/aero/global/menu/shared-menu-check.png (../../shared/menu-check.png)
|
||||
* skin/classic/aero/global/in-content/common.css (in-content/common.css)
|
||||
* skin/classic/aero/global/in-content/info-pages.css (in-content/info-pages.css)
|
||||
skin/classic/aero/global/in-content/check.svg (../../shared/in-content/check.svg)
|
||||
skin/classic/aero/global/in-content/check-partial.svg (../../shared/in-content/check-partial.svg)
|
||||
skin/classic/aero/global/in-content/dropdown.svg (../../shared/in-content/dropdown.svg)
|
||||
skin/classic/aero/global/in-content/help-glyph.svg (../../shared/in-content/help-glyph.svg)
|
||||
skin/classic/aero/global/in-content/radio.svg (../../shared/in-content/radio.svg)
|
||||
skin/classic/aero/global/printpreview/arrow-left.png (printpreview/arrow-left-aero.png)
|
||||
skin/classic/aero/global/printpreview/arrow-left-end.png (printpreview/arrow-left-end-aero.png)
|
||||
skin/classic/aero/global/printpreview/arrow-right.png (printpreview/arrow-right-aero.png)
|
||||
skin/classic/aero/global/printpreview/arrow-right-end.png (printpreview/arrow-right-end-aero.png)
|
||||
skin/classic/aero/global/radio/radio-check.gif (radio/radio-check.gif)
|
||||
skin/classic/aero/global/radio/radio-check-dis.gif (radio/radio-check-dis.gif)
|
||||
skin/classic/aero/global/reader/RM-Add-24x24.svg (../../shared/reader/RM-Add-24x24.svg)
|
||||
skin/classic/aero/global/reader/RM-Close-24x24.svg (../../shared/reader/RM-Close-24x24.svg)
|
||||
skin/classic/aero/global/reader/RM-Close-hover-24x24.svg (../../shared/reader/RM-Close-hover-24x24.svg)
|
||||
skin/classic/aero/global/reader/RM-Delete-24x24.svg (../../shared/reader/RM-Delete-24x24.svg)
|
||||
skin/classic/aero/global/reader/RM-Minus-24x24.svg (../../shared/reader/RM-Minus-24x24.svg)
|
||||
skin/classic/aero/global/reader/RM-Plus-24x24.svg (../../shared/reader/RM-Plus-24x24.svg)
|
||||
skin/classic/aero/global/reader/RM-Reading-List-24x24.svg (../../shared/reader/RM-Reading-List-24x24.svg)
|
||||
skin/classic/aero/global/reader/RM-Type-Controls-24x24.svg (../../shared/reader/RM-Type-Controls-24x24.svg)
|
||||
skin/classic/aero/global/reader/RM-Type-Controls-Arrow.svg (../../shared/reader/RM-Type-Controls-Arrow.svg)
|
||||
skin/classic/aero/global/scrollbar/slider.gif (scrollbar/slider.gif)
|
||||
skin/classic/aero/global/splitter/grip-bottom.gif (splitter/grip-bottom.gif)
|
||||
skin/classic/aero/global/splitter/grip-top.gif (splitter/grip-top.gif)
|
||||
skin/classic/aero/global/splitter/grip-left.gif (splitter/grip-left.gif)
|
||||
skin/classic/aero/global/splitter/grip-right.gif (splitter/grip-right.gif)
|
||||
skin/classic/aero/global/toolbar/chevron.gif (toolbar/chevron.gif)
|
||||
skin/classic/aero/global/toolbar/chevron-inverted.png (toolbar/chevron-inverted.png)
|
||||
skin/classic/aero/global/toolbar/spring.png (toolbar/spring-aero.png)
|
||||
skin/classic/aero/global/tree/columnpicker.gif (tree/columnpicker.gif)
|
||||
skin/classic/aero/global/tree/sort-asc.png (tree/sort-asc-aero.png)
|
||||
skin/classic/aero/global/tree/sort-dsc.png (tree/sort-dsc-aero.png)
|
||||
skin/classic/aero/global/tree/sort-asc-classic.png (tree/sort-asc-classic.png)
|
||||
skin/classic/aero/global/tree/sort-dsc-classic.png (tree/sort-dsc-classic.png)
|
||||
skin/classic/aero/global/tree/twisty-clsd.png (tree/twisty-clsd-aero.png)
|
||||
skin/classic/aero/global/tree/twisty-clsd-rtl.png (tree/twisty-clsd-rtl-aero.png)
|
||||
skin/classic/aero/global/tree/twisty-clsd-hover.png (tree/twisty-clsd-hover-aero.png)
|
||||
skin/classic/aero/global/tree/twisty-clsd-hover-rtl.png (tree/twisty-clsd-hover-rtl-aero.png)
|
||||
skin/classic/aero/global/tree/twisty-open.png (tree/twisty-open-aero.png)
|
||||
skin/classic/aero/global/tree/twisty-open-rtl.png (tree/twisty-open-rtl-aero.png)
|
||||
skin/classic/aero/global/tree/twisty-open-hover.png (tree/twisty-open-hover-aero.png)
|
||||
skin/classic/aero/global/tree/twisty-open-hover-rtl.png (tree/twisty-open-hover-rtl-aero.png)
|
||||
* skin/classic/global/autocomplete-aero.css (autocomplete-aero.css)
|
||||
* skin/classic/global/inContentUI-aero.css (inContentUI-aero.css)
|
||||
* skin/classic/global/listbox-aero.css (listbox-aero.css)
|
||||
* skin/classic/global/menu-aero.css (menu-aero.css)
|
||||
* skin/classic/global/menulist-aero.css (menulist-aero.css)
|
||||
* skin/classic/global/notification-aero.css (notification-aero.css)
|
||||
* skin/classic/global/popup-aero.css (popup-aero.css)
|
||||
* skin/classic/global/textbox-aero.css (textbox-aero.css)
|
||||
* skin/classic/global/toolbarbutton-aero.css (toolbarbutton-aero.css)
|
||||
* skin/classic/global/tree-aero.css (tree-aero.css)
|
||||
* skin/classic/global/console/console-aero.css (console/console-aero.css)
|
||||
skin/classic/global/console/console-toolbar-aero.png (console/console-toolbar-aero.png)
|
||||
skin/classic/global/dirListing/folder-aero.png (dirListing/folder-aero.png)
|
||||
skin/classic/global/dirListing/local-aero.png (dirListing/local-aero.png)
|
||||
skin/classic/global/dirListing/remote-aero.png (dirListing/remote-aero.png)
|
||||
skin/classic/global/dirListing/up-aero.png (dirListing/up-aero.png)
|
||||
skin/classic/global/icons/autoscroll-aero.png (icons/autoscroll-aero.png)
|
||||
skin/classic/global/icons/blacklist_favicon-aero.png (icons/blacklist_favicon-aero.png)
|
||||
skin/classic/global/icons/blacklist_large-aero.png (icons/blacklist_large-aero.png)
|
||||
skin/classic/global/icons/Error-aero.png (icons/Error-aero.png)
|
||||
skin/classic/global/icons/error-16-aero.png (icons/error-16-aero.png)
|
||||
skin/classic/global/icons/error-24-aero.png (icons/error-24-aero.png)
|
||||
skin/classic/global/icons/error-48-aero.png (icons/error-48-aero.png)
|
||||
skin/classic/global/icons/error-64-aero.png (icons/error-64-aero.png)
|
||||
skin/classic/global/icons/find-aero.png (icons/find-aero.png)
|
||||
skin/classic/global/icons/folder-item-aero.png (icons/folder-item-aero.png)
|
||||
skin/classic/global/icons/information-16-aero.png (icons/information-16-aero.png)
|
||||
skin/classic/global/icons/information-24-aero.png (icons/information-24-aero.png)
|
||||
skin/classic/global/icons/information-32-aero.png (icons/information-32-aero.png)
|
||||
skin/classic/global/icons/information-48-aero.png (icons/information-48-aero.png)
|
||||
skin/classic/global/icons/information-64-aero.png (icons/information-64-aero.png)
|
||||
skin/classic/global/icons/Print-preview-aero.png (icons/Print-preview-aero.png)
|
||||
skin/classic/global/icons/Portrait-aero.png (icons/Portrait-aero.png)
|
||||
skin/classic/global/icons/Landscape-aero.png (icons/Landscape-aero.png)
|
||||
skin/classic/global/icons/Question-aero.png (icons/Question-aero.png)
|
||||
skin/classic/global/icons/question-16-aero.png (icons/question-16-aero.png)
|
||||
skin/classic/global/icons/question-24-aero.png (icons/question-24-aero.png)
|
||||
skin/classic/global/icons/question-48-aero.png (icons/question-48-aero.png)
|
||||
skin/classic/global/icons/question-64-aero.png (icons/question-64-aero.png)
|
||||
skin/classic/global/icons/Search-close-aero.png (icons/Search-close-aero.png)
|
||||
skin/classic/global/icons/Search-glass-aero.png (icons/Search-glass-aero.png)
|
||||
skin/classic/global/icons/sslWarning-aero.png (icons/sslWarning-aero.png)
|
||||
skin/classic/global/icons/Warning-aero.png (icons/Warning-aero.png)
|
||||
skin/classic/global/icons/warning-large-aero.png (icons/warning-large-aero.png)
|
||||
skin/classic/global/icons/warning-16-aero.png (icons/warning-16-aero.png)
|
||||
skin/classic/global/icons/warning-24-aero.png (icons/warning-24-aero.png)
|
||||
skin/classic/global/icons/warning-64-aero.png (icons/warning-64-aero.png)
|
||||
skin/classic/global/icons/windowControls-aero.png (icons/windowControls-aero.png)
|
||||
skin/classic/global/icons/wrap-aero.png (icons/wrap-aero.png)
|
||||
skin/classic/global/printpreview/arrow-left-aero.png (printpreview/arrow-left-aero.png)
|
||||
skin/classic/global/printpreview/arrow-left-end-aero.png (printpreview/arrow-left-end-aero.png)
|
||||
skin/classic/global/printpreview/arrow-right-aero.png (printpreview/arrow-right-aero.png)
|
||||
skin/classic/global/printpreview/arrow-right-end-aero.png (printpreview/arrow-right-end-aero.png)
|
||||
skin/classic/global/toolbar/spring-aero.png (toolbar/spring-aero.png)
|
||||
skin/classic/global/tree/sort-asc-aero.png (tree/sort-asc-aero.png)
|
||||
skin/classic/global/tree/sort-dsc-aero.png (tree/sort-dsc-aero.png)
|
||||
skin/classic/global/tree/twisty-clsd-aero.png (tree/twisty-clsd-aero.png)
|
||||
skin/classic/global/tree/twisty-clsd-rtl-aero.png (tree/twisty-clsd-rtl-aero.png)
|
||||
skin/classic/global/tree/twisty-clsd-hover-aero.png (tree/twisty-clsd-hover-aero.png)
|
||||
skin/classic/global/tree/twisty-clsd-hover-rtl-aero.png (tree/twisty-clsd-hover-rtl-aero.png)
|
||||
skin/classic/global/tree/twisty-open-aero.png (tree/twisty-open-aero.png)
|
||||
skin/classic/global/tree/twisty-open-rtl-aero.png (tree/twisty-open-rtl-aero.png)
|
||||
skin/classic/global/tree/twisty-open-hover-aero.png (tree/twisty-open-hover-aero.png)
|
||||
skin/classic/global/tree/twisty-open-hover-rtl-aero.png (tree/twisty-open-hover-rtl-aero.png)
|
||||
|
||||
% override chrome://global/skin/autocomplete.css chrome://global/skin/autocomplete-aero.css osversion>=6
|
||||
% override chrome://global/skin/inContentUI.css chrome://global/skin/inContentUI-aero.css osversion>=6
|
||||
% override chrome://global/skin/listbox.css chrome://global/skin/listbox-aero.css osversion>=6
|
||||
% override chrome://global/skin/menu.css chrome://global/skin/menu-aero.css osversion>=6
|
||||
% override chrome://global/skin/menulist.css chrome://global/skin/menulist-aero.css osversion>=6
|
||||
% override chrome://global/skin/notification.css chrome://global/skin/notification-aero.css osversion>=6
|
||||
% override chrome://global/skin/popup.css chrome://global/skin/popup-aero.css osversion>=6
|
||||
% override chrome://global/skin/textbox.css chrome://global/skin/textbox-aero.css osversion>=6
|
||||
% override chrome://global/skin/toolbarbutton.css chrome://global/skin/toolbarbutton-aero.css osversion>=6
|
||||
% override chrome://global/skin/tree.css chrome://global/skin/tree-aero.css osversion>=6
|
||||
% override chrome://global/skin/console/console.css chrome://global/skin/console/console-aero.css osversion>=6
|
||||
% override chrome://global/skin/console/console-toolbar.png chrome://global/skin/console/console-toolbar-aero.png osversion>=6
|
||||
% override chrome://global/skin/dirListing/folder.png chrome://global/skin/dirListing/folder-aero.png osversion>=6
|
||||
% override chrome://global/skin/dirListing/local.png chrome://global/skin/dirListing/local-aero.png osversion>=6
|
||||
% override chrome://global/skin/dirListing/remote.png chrome://global/skin/dirListing/remote-aero.png osversion>=6
|
||||
% override chrome://global/skin/dirListing/up.png chrome://global/skin/dirListing/up-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/autoscroll.png chrome://global/skin/icons/autoscroll-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/blacklist_favicon.png chrome://global/skin/icons/blacklist_favicon-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/blacklist_large.png chrome://global/skin/icons/blacklist_large-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/Error.png chrome://global/skin/icons/Error-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/error-16.png chrome://global/skin/icons/error-16-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/error-24.png chrome://global/skin/icons/error-24-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/error-48.png chrome://global/skin/icons/error-48-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/error-64.png chrome://global/skin/icons/error-64-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/find.png chrome://global/skin/icons/find-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/folder-item.png chrome://global/skin/icons/folder-item-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/information-16.png chrome://global/skin/icons/information-16-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/information-24.png chrome://global/skin/icons/information-24-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/information-32.png chrome://global/skin/icons/information-32-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/information-48.png chrome://global/skin/icons/information-48-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/information-64.png chrome://global/skin/icons/information-64-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/Print-preview.png chrome://global/skin/icons/Print-preview-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/Portrait.png chrome://global/skin/icons/Portrait-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/Landscape.png chrome://global/skin/icons/Landscape-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/Question.png chrome://global/skin/icons/Question-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/question-16.png chrome://global/skin/icons/question-16-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/question-24.png chrome://global/skin/icons/question-24-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/question-48.png chrome://global/skin/icons/question-48-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/question-64.png chrome://global/skin/icons/question-64-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/Search-close.png chrome://global/skin/icons/Search-close-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/Search-glass.png chrome://global/skin/icons/Search-glass-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/sslWarning.png chrome://global/skin/icons/sslWarning-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/Warning.png chrome://global/skin/icons/Warning-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/warning-large.png chrome://global/skin/icons/warning-large-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/warning-16.png chrome://global/skin/icons/warning-16-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/warning-24.png chrome://global/skin/icons/warning-24-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/warning-64.png chrome://global/skin/icons/warning-64-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/windowControls.png chrome://global/skin/icons/windowControls-aero.png osversion>=6
|
||||
% override chrome://global/skin/icons/wrap.png chrome://global/skin/icons/wrap-aero.png osversion>=6
|
||||
% override chrome://global/skin/printpreview/arrow-left.png chrome://global/skin/printpreview/arrow-left-aero.png osversion>=6
|
||||
% override chrome://global/skin/printpreview/arrow-left-end.png chrome://global/skin/printpreview/arrow-left-end-aero.png osversion>=6
|
||||
% override chrome://global/skin/printpreview/arrow-right.png chrome://global/skin/printpreview/arrow-right-aero.png osversion>=6
|
||||
% override chrome://global/skin/printpreview/arrow-right-end.png chrome://global/skin/printpreview/arrow-right-end-aero.png osversion>=6
|
||||
% override chrome://global/skin/toolbar/spring.png chrome://global/skin/toolbar/spring-aero.png osversion>=6
|
||||
% override chrome://global/skin/tree/sort-asc.png chrome://global/skin/tree/sort-asc-aero.png osversion>=6
|
||||
% override chrome://global/skin/tree/sort-dsc.png chrome://global/skin/tree/sort-dsc-aero.png osversion>=6
|
||||
% override chrome://global/skin/tree/twisty-clsd.png chrome://global/skin/tree/twisty-clsd-aero.png osversion>=6
|
||||
% override chrome://global/skin/tree/twisty-clsd-rtl.png chrome://global/skin/tree/twisty-clsd-rtl-aero.png osversion>=6
|
||||
% override chrome://global/skin/tree/twisty-clsd-hover.png chrome://global/skin/tree/twisty-clsd-hover-aero.png osversion>=6
|
||||
% override chrome://global/skin/tree/twisty-clsd-hover-rtl.png chrome://global/skin/tree/twisty-clsd-hover-rtl-aero.png osversion>=6
|
||||
% override chrome://global/skin/tree/twisty-open.png chrome://global/skin/tree/twisty-open-aero.png osversion>=6
|
||||
% override chrome://global/skin/tree/twisty-open-rtl.png chrome://global/skin/tree/twisty-open-rtl-aero.png osversion>=6
|
||||
% override chrome://global/skin/tree/twisty-open-hover.png chrome://global/skin/tree/twisty-open-hover-aero.png osversion>=6
|
||||
% override chrome://global/skin/tree/twisty-open-hover-rtl.png chrome://global/skin/tree/twisty-open-hover-rtl-aero.png osversion>=6
|
||||
#endif
|
||||
|
||||
% override chrome://global/skin/arrow/arrow-lft-hov.gif chrome://global/skin/arrow/arrow-lft.gif
|
||||
% override chrome://global/skin/arrow/arrow-rit-hov.gif chrome://global/skin/arrow/arrow-rit.gif
|
||||
|
|
|
@ -3,10 +3,7 @@
|
|||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
toolkit.jar:
|
||||
% skin mozapps classic/1.0 %skin/classic/mozapps/ os=WINNT osversion<6
|
||||
% skin mozapps classic/1.0 %skin/classic/mozapps/ os!=WINNT
|
||||
# NOTE: If you add a new file here, you'll need to add it to the aero
|
||||
# section at the bottom of this file
|
||||
% skin mozapps classic/1.0 %skin/classic/mozapps/
|
||||
skin/classic/mozapps/downloads/downloadButtons.png (downloads/downloadButtons.png)
|
||||
skin/classic/mozapps/downloads/downloadIcon.png (downloads/downloadIcon.png)
|
||||
skin/classic/mozapps/downloads/downloads.css (downloads/downloads.css)
|
||||
|
@ -18,10 +15,7 @@ toolkit.jar:
|
|||
skin/classic/mozapps/extensions/update.css (extensions/update.css)
|
||||
skin/classic/mozapps/extensions/category-search.png (extensions/category-search.png)
|
||||
skin/classic/mozapps/extensions/category-discover.png (extensions/category-discover.png)
|
||||
skin/classic/mozapps/extensions/category-languages.png (extensions/localeGeneric.png)
|
||||
skin/classic/mozapps/extensions/category-searchengines.png (extensions/category-searchengines.png)
|
||||
skin/classic/mozapps/extensions/category-extensions.png (extensions/extensionGeneric.png)
|
||||
skin/classic/mozapps/extensions/category-themes.png (extensions/themeGeneric.png)
|
||||
skin/classic/mozapps/extensions/category-plugins.png (extensions/category-plugins.png)
|
||||
skin/classic/mozapps/extensions/category-service.png (extensions/category-service.png)
|
||||
skin/classic/mozapps/extensions/category-dictionaries.png (extensions/category-dictionaries.png)
|
||||
|
@ -71,8 +65,6 @@ toolkit.jar:
|
|||
skin/classic/mozapps/plugins/contentPluginDownload.png (../../shared/plugins/contentPluginDownload.png)
|
||||
skin/classic/mozapps/plugins/contentPluginMissing.png (../../shared/plugins/contentPluginMissing.png)
|
||||
skin/classic/mozapps/plugins/contentPluginStripe.png (../../shared/plugins/contentPluginStripe.png)
|
||||
skin/classic/mozapps/plugins/notifyPluginCrashed.png (plugins/pluginGeneric-16.png)
|
||||
skin/classic/mozapps/plugins/notifyPluginGeneric.png (plugins/pluginGeneric-16.png)
|
||||
skin/classic/mozapps/plugins/pluginGeneric.png (plugins/pluginGeneric.png)
|
||||
skin/classic/mozapps/plugins/pluginBlocked.png (plugins/pluginBlocked.png)
|
||||
skin/classic/mozapps/plugins/pluginBlocked-64.png (plugins/pluginBlocked-64.png)
|
||||
|
@ -84,87 +76,63 @@ toolkit.jar:
|
|||
skin/classic/mozapps/update/updates.css (update/updates.css)
|
||||
skin/classic/mozapps/viewsource/viewsource.css (viewsource/viewsource.css)
|
||||
* skin/classic/mozapps/xpinstall/xpinstallConfirm.css (extensions/xpinstallConfirm.css)
|
||||
skin/classic/mozapps/xpinstall/xpinstallItemGeneric.png (extensions/extensionGeneric.png)
|
||||
|
||||
#ifdef XP_WIN
|
||||
toolkit.jar:
|
||||
% skin mozapps classic/1.0 %skin/classic/aero/mozapps/ os=WINNT osversion>=6
|
||||
skin/classic/aero/mozapps/downloads/downloadButtons.png (downloads/downloadButtons-aero.png)
|
||||
skin/classic/aero/mozapps/downloads/downloadIcon.png (downloads/downloadIcon-aero.png)
|
||||
* skin/classic/aero/mozapps/downloads/downloads.css (downloads/downloads-aero.css)
|
||||
skin/classic/aero/mozapps/downloads/unknownContentType.css (downloads/unknownContentType.css)
|
||||
skin/classic/aero/mozapps/extensions/about.css (extensions/about.css)
|
||||
skin/classic/aero/mozapps/extensions/blocklist.css (extensions/blocklist.css)
|
||||
* skin/classic/aero/mozapps/extensions/extensions.css (extensions/extensions-aero.css)
|
||||
* skin/classic/aero/mozapps/extensions/selectAddons.css (extensions/selectAddons-aero.css)
|
||||
skin/classic/aero/mozapps/extensions/update.css (extensions/update.css)
|
||||
skin/classic/aero/mozapps/extensions/category-search.png (extensions/category-search.png)
|
||||
skin/classic/aero/mozapps/extensions/category-discover.png (extensions/category-discover-aero.png)
|
||||
skin/classic/aero/mozapps/extensions/category-languages.png (extensions/localeGeneric-aero.png)
|
||||
skin/classic/aero/mozapps/extensions/category-searchengines.png (extensions/category-searchengines.png)
|
||||
skin/classic/aero/mozapps/extensions/category-extensions.png (extensions/extensionGeneric-aero.png)
|
||||
skin/classic/aero/mozapps/extensions/category-themes.png (extensions/themeGeneric-aero.png)
|
||||
skin/classic/aero/mozapps/extensions/category-plugins.png (extensions/category-plugins-aero.png)
|
||||
skin/classic/aero/mozapps/extensions/category-service.png (extensions/category-service.png)
|
||||
skin/classic/aero/mozapps/extensions/category-dictionaries.png (extensions/category-dictionaries-aero.png)
|
||||
skin/classic/aero/mozapps/extensions/category-experiments.png (extensions/category-experiments-aero.png)
|
||||
skin/classic/aero/mozapps/extensions/category-recent.png (extensions/category-recent-aero.png)
|
||||
skin/classic/aero/mozapps/extensions/category-available.png (extensions/category-available-aero.png)
|
||||
skin/classic/aero/mozapps/extensions/discover-logo.png (extensions/discover-logo.png)
|
||||
skin/classic/aero/mozapps/extensions/extensionGeneric.png (extensions/extensionGeneric-aero.png)
|
||||
skin/classic/aero/mozapps/extensions/extensionGeneric-16.png (extensions/extensionGeneric-16-aero.png)
|
||||
skin/classic/aero/mozapps/extensions/themeGeneric.png (extensions/themeGeneric-aero.png)
|
||||
skin/classic/aero/mozapps/extensions/themeGeneric-16.png (extensions/themeGeneric-16-aero.png)
|
||||
skin/classic/aero/mozapps/extensions/dictionaryGeneric.png (extensions/dictionaryGeneric-aero.png)
|
||||
skin/classic/aero/mozapps/extensions/dictionaryGeneric-16.png (extensions/dictionaryGeneric-16-aero.png)
|
||||
skin/classic/aero/mozapps/extensions/localeGeneric.png (extensions/localeGeneric-aero.png)
|
||||
skin/classic/aero/mozapps/extensions/experimentGeneric.png (extensions/experimentGeneric-aero.png)
|
||||
skin/classic/aero/mozapps/extensions/rating-won.png (extensions/rating-won.png)
|
||||
skin/classic/aero/mozapps/extensions/rating-not-won.png (extensions/rating-not-won.png)
|
||||
skin/classic/aero/mozapps/extensions/cancel.png (extensions/cancel.png)
|
||||
skin/classic/aero/mozapps/extensions/utilities.svg (../../shared/extensions/utilities.svg)
|
||||
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/stripes-warning.png (extensions/stripes-warning.png)
|
||||
skin/classic/aero/mozapps/extensions/stripes-error.png (extensions/stripes-error.png)
|
||||
skin/classic/aero/mozapps/extensions/stripes-info-positive.png (extensions/stripes-info-positive.png)
|
||||
skin/classic/aero/mozapps/extensions/stripes-info-negative.png (extensions/stripes-info-negative.png)
|
||||
skin/classic/aero/mozapps/extensions/alerticon-warning.png (extensions/alerticon-warning.png)
|
||||
skin/classic/aero/mozapps/extensions/alerticon-error.png (extensions/alerticon-error.png)
|
||||
skin/classic/aero/mozapps/extensions/alerticon-info-positive.png (extensions/alerticon-info-positive.png)
|
||||
skin/classic/aero/mozapps/extensions/alerticon-info-negative.png (extensions/alerticon-info-negative.png)
|
||||
skin/classic/aero/mozapps/extensions/eula.css (extensions/eula.css)
|
||||
* skin/classic/aero/mozapps/extensions/newaddon.css (extensions/newaddon-aero.css)
|
||||
skin/classic/aero/mozapps/handling/handling.css (handling/handling.css)
|
||||
skin/classic/aero/mozapps/passwordmgr/key.png (passwordmgr/key.png)
|
||||
skin/classic/aero/mozapps/passwordmgr/key-16.png (passwordmgr/key-16.png)
|
||||
skin/classic/aero/mozapps/passwordmgr/key-64.png (passwordmgr/key-64.png)
|
||||
#ifdef MOZ_PLACES
|
||||
skin/classic/aero/mozapps/places/defaultFavicon.png (places/defaultFavicon.png)
|
||||
#endif
|
||||
skin/classic/aero/mozapps/formautofill/requestAutocomplete.css (../../shared/formautofill/requestAutocomplete.css)
|
||||
skin/classic/aero/mozapps/plugins/pluginProblem.css (../../shared/plugins/pluginProblem.css)
|
||||
skin/classic/aero/mozapps/aboutNetworking.css (../../shared/aboutNetworking.css)
|
||||
skin/classic/aero/mozapps/plugins/contentPluginActivate.png (../../shared/plugins/contentPluginActivate.png)
|
||||
skin/classic/aero/mozapps/plugins/contentPluginBlocked.png (../../shared/plugins/contentPluginBlocked.png)
|
||||
skin/classic/aero/mozapps/plugins/contentPluginClose.png (../../shared/plugins/contentPluginClose.png)
|
||||
skin/classic/aero/mozapps/plugins/contentPluginCrashed.png (../../shared/plugins/contentPluginCrashed.png)
|
||||
skin/classic/aero/mozapps/plugins/contentPluginDisabled.png (../../shared/plugins/contentPluginDisabled.png)
|
||||
skin/classic/aero/mozapps/plugins/contentPluginDownload.png (../../shared/plugins/contentPluginDownload.png)
|
||||
skin/classic/aero/mozapps/plugins/contentPluginMissing.png (../../shared/plugins/contentPluginMissing.png)
|
||||
skin/classic/aero/mozapps/plugins/contentPluginStripe.png (../../shared/plugins/contentPluginStripe.png)
|
||||
skin/classic/aero/mozapps/plugins/notifyPluginCrashed.png (plugins/pluginGeneric-16-aero.png)
|
||||
skin/classic/aero/mozapps/plugins/notifyPluginGeneric.png (plugins/pluginGeneric-16-aero.png)
|
||||
skin/classic/aero/mozapps/plugins/pluginGeneric.png (plugins/pluginGeneric-aero.png)
|
||||
skin/classic/aero/mozapps/plugins/pluginBlocked.png (plugins/pluginBlocked-aero.png)
|
||||
skin/classic/aero/mozapps/plugins/pluginBlocked-64.png (plugins/pluginBlocked-64.png)
|
||||
skin/classic/aero/mozapps/plugins/pluginGeneric-16.png (plugins/pluginGeneric-16-aero.png)
|
||||
skin/classic/aero/mozapps/plugins/pluginHelp-16.png (plugins/pluginHelp-16.png)
|
||||
skin/classic/aero/mozapps/profile/profileicon.png (profile/profileicon-aero.png)
|
||||
skin/classic/aero/mozapps/profile/profileSelection.css (profile/profileSelection.css)
|
||||
skin/classic/aero/mozapps/update/downloadButtons.png (update/downloadButtons-aero.png)
|
||||
skin/classic/aero/mozapps/update/updates.css (update/updates.css)
|
||||
skin/classic/aero/mozapps/viewsource/viewsource.css (viewsource/viewsource.css)
|
||||
* skin/classic/aero/mozapps/xpinstall/xpinstallConfirm.css (extensions/xpinstallConfirm.css)
|
||||
skin/classic/aero/mozapps/xpinstall/xpinstallItemGeneric.png (extensions/extensionGeneric-aero.png)
|
||||
skin/classic/mozapps/downloads/downloadButtons-aero.png (downloads/downloadButtons-aero.png)
|
||||
skin/classic/mozapps/downloads/downloadIcon-aero.png (downloads/downloadIcon-aero.png)
|
||||
* skin/classic/mozapps/downloads/downloads-aero.css (downloads/downloads-aero.css)
|
||||
* skin/classic/mozapps/extensions/extensions-aero.css (extensions/extensions-aero.css)
|
||||
* skin/classic/mozapps/extensions/selectAddons-aero.css (extensions/selectAddons-aero.css)
|
||||
skin/classic/mozapps/extensions/category-discover-aero.png (extensions/category-discover-aero.png)
|
||||
skin/classic/mozapps/extensions/category-plugins-aero.png (extensions/category-plugins-aero.png)
|
||||
skin/classic/mozapps/extensions/category-dictionaries-aero.png (extensions/category-dictionaries-aero.png)
|
||||
skin/classic/mozapps/extensions/category-experiments-aero.png (extensions/category-experiments-aero.png)
|
||||
skin/classic/mozapps/extensions/category-recent-aero.png (extensions/category-recent-aero.png)
|
||||
skin/classic/mozapps/extensions/category-available-aero.png (extensions/category-available-aero.png)
|
||||
skin/classic/mozapps/extensions/extensionGeneric-aero.png (extensions/extensionGeneric-aero.png)
|
||||
skin/classic/mozapps/extensions/extensionGeneric-16-aero.png (extensions/extensionGeneric-16-aero.png)
|
||||
skin/classic/mozapps/extensions/themeGeneric-aero.png (extensions/themeGeneric-aero.png)
|
||||
skin/classic/mozapps/extensions/themeGeneric-16-aero.png (extensions/themeGeneric-16-aero.png)
|
||||
skin/classic/mozapps/extensions/dictionaryGeneric-aero.png (extensions/dictionaryGeneric-aero.png)
|
||||
skin/classic/mozapps/extensions/dictionaryGeneric-16-aero.png (extensions/dictionaryGeneric-16-aero.png)
|
||||
skin/classic/mozapps/extensions/localeGeneric-aero.png (extensions/localeGeneric-aero.png)
|
||||
skin/classic/mozapps/extensions/experimentGeneric-aero.png (extensions/experimentGeneric-aero.png)
|
||||
* skin/classic/mozapps/extensions/newaddon-aero.css (extensions/newaddon-aero.css)
|
||||
skin/classic/mozapps/plugins/pluginGeneric-aero.png (plugins/pluginGeneric-aero.png)
|
||||
skin/classic/mozapps/plugins/pluginBlocked-aero.png (plugins/pluginBlocked-aero.png)
|
||||
skin/classic/mozapps/plugins/pluginGeneric-16-aero.png (plugins/pluginGeneric-16-aero.png)
|
||||
skin/classic/mozapps/profile/profileicon-aero.png (profile/profileicon-aero.png)
|
||||
skin/classic/mozapps/update/downloadButtons-aero.png (update/downloadButtons-aero.png)
|
||||
|
||||
% override chrome://mozapps/skin/downloads/downloadButtons.png chrome://mozapps/skin/downloads/downloadButtons-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/downloads/downloadIcon.png chrome://mozapps/skin/downloads/downloadIcon-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/downloads/downloads.css chrome://mozapps/skin/downloads/downloads-aero.css osversion>=6
|
||||
% override chrome://mozapps/skin/extensions/extensions.css chrome://mozapps/skin/extensions/extensions-aero.css osversion>=6
|
||||
% override chrome://mozapps/skin/extensions/selectAddons.css chrome://mozapps/skin/extensions/selectAddons-aero.css osversion>=6
|
||||
% override chrome://mozapps/skin/extensions/category-discover.png chrome://mozapps/skin/extensions/category-discover-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/extensions/category-plugins.png chrome://mozapps/skin/extensions/category-plugins-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/extensions/category-dictionaries.png chrome://mozapps/skin/extensions/category-dictionaries-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/extensions/category-experiments.png chrome://mozapps/skin/extensions/category-experiments-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/extensions/category-recent.png chrome://mozapps/skin/extensions/category-recent-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/extensions/category-available.png chrome://mozapps/skin/extensions/category-available-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/extensions/extensionGeneric.png chrome://mozapps/skin/extensions/extensionGeneric-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/extensions/extensionGeneric-16.png chrome://mozapps/skin/extensions/extensionGeneric-16-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/extensions/themeGeneric.png chrome://mozapps/skin/extensions/themeGeneric-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/extensions/themeGeneric-16.png chrome://mozapps/skin/extensions/themeGeneric-16-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/extensions/dictionaryGeneric.png chrome://mozapps/skin/extensions/dictionaryGeneric-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/extensions/dictionaryGeneric-16.png chrome://mozapps/skin/extensions/dictionaryGeneric-16-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/extensions/localeGeneric.png chrome://mozapps/skin/extensions/localeGeneric-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/extensions/experimentGeneric.png chrome://mozapps/skin/extensions/experimentGeneric-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/extensions/newaddon.css chrome://mozapps/skin/extensions/newaddon-aero.css osversion>=6
|
||||
% override chrome://mozapps/skin/plugins/pluginGeneric.png chrome://mozapps/skin/plugins/pluginGeneric-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/plugins/pluginBlocked.png chrome://mozapps/skin/plugins/pluginBlocked-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/plugins/pluginGeneric-16.png chrome://mozapps/skin/plugins/pluginGeneric-16-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/profile/profileicon.png chrome://mozapps/skin/profile/profileicon-aero.png osversion>=6
|
||||
% override chrome://mozapps/skin/update/downloadButtons.png chrome://mozapps/skin/update/downloadButtons-aero.png osversion>=6
|
||||
#endif
|
||||
|
||||
% override chrome://mozapps/skin/extensions/category-extensions.png chrome://mozapps/skin/extensions/extensionGeneric.png
|
||||
% override chrome://mozapps/skin/extensions/category-languages.png chrome://mozapps/skin/extensions/localeGeneric.png
|
||||
% override chrome://mozapps/skin/extensions/category-themes.png chrome://mozapps/skin/extensions/themeGeneric.png
|
||||
% override chrome://mozapps/skin/plugins/notifyPluginCrashed.png chrome://mozapps/skin/plugins/pluginGeneric-16.png
|
||||
% override chrome://mozapps/skin/plugins/notifyPluginGeneric.png chrome://mozapps/skin/plugins/pluginGeneric-16.png
|
||||
% override chrome://mozapps/skin/xpinstall/xpinstallItemGeneric.png chrome://mozapps/skin/extensions/extensionGeneric.png
|
||||
|
|
|
@ -535,8 +535,8 @@ NS_InitXPCOM2(nsIServiceManager** aResult,
|
|||
sMessageLoop = new MessageLoopForUI(MessageLoop::TYPE_MOZILLA_UI);
|
||||
sMessageLoop->set_thread_name("Gecko");
|
||||
// Set experimental values for main thread hangs:
|
||||
// 512ms for transient hangs and 8192ms for permanent hangs
|
||||
sMessageLoop->set_hang_timeouts(512, 8192);
|
||||
// 128ms for transient hangs and 8192ms for permanent hangs
|
||||
sMessageLoop->set_hang_timeouts(128, 8192);
|
||||
}
|
||||
|
||||
if (XRE_GetProcessType() == GeckoProcessType_Default &&
|
||||
|
|
Загрузка…
Ссылка в новой задаче