зеркало из https://github.com/mozilla/gecko-dev.git
Merge mozilla-central and mozilla-inbound
This commit is contained in:
Коммит
7da4f06f48
|
@ -1,213 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<blocklist xmlns="http://www.mozilla.org/2006/addons-blocklist" lastupdate="1311096050000">
|
||||
<emItems>
|
||||
<emItem blockID="i41" id="{99079a25-328f-4bd4-be04-00955acaa0a7}">
|
||||
<versionRange minVersion="0.1" maxVersion="4.3.0.00" severity="1">
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i8" id="{B13721C7-F507-4982-B2E5-502A71474FED}">
|
||||
<versionRange minVersion=" " severity="1">
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i38" id="{B7082FAA-CB62-4872-9106-E42DD88EDE45}">
|
||||
<versionRange minVersion="0.1" maxVersion="3.3.0.*">
|
||||
<targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
|
||||
<versionRange minVersion="3.7a1" maxVersion="*" />
|
||||
</targetApplication>
|
||||
</versionRange>
|
||||
<versionRange minVersion="3.3.1" maxVersion="*">
|
||||
<targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
|
||||
<versionRange minVersion="5.0a1" maxVersion="*" />
|
||||
</targetApplication>
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i19" id="{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}">
|
||||
<versionRange minVersion="1.1b1" maxVersion="1.1b1">
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i16" id="{27182e60-b5f3-411c-b545-b44205977502}">
|
||||
<versionRange minVersion="1.0" maxVersion="1.0">
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i39" id="{c2d64ff7-0ab8-4263-89c9-ea3b0f8f050c}">
|
||||
<versionRange minVersion="0.1" maxVersion="4.3.0.00" severity="1">
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i10" id="{8CE11043-9A15-4207-A565-0C94C42D590D}">
|
||||
</emItem>
|
||||
<emItem blockID="i1" id="mozilla_cc@internetdownloadmanager.com">
|
||||
<versionRange minVersion="2.1" maxVersion="3.3">
|
||||
<targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
|
||||
<versionRange minVersion="3.0a1" maxVersion="*" />
|
||||
</targetApplication>
|
||||
</versionRange>
|
||||
<versionRange minVersion=" " maxVersion="6.9.8">
|
||||
<targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
|
||||
<versionRange minVersion="3.7a1pre" maxVersion="*" />
|
||||
</targetApplication>
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i18" id="msntoolbar@msn.com">
|
||||
<versionRange minVersion=" " maxVersion="6.*">
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i13" id="{E8E88AB0-7182-11DF-904E-6045E0D72085}">
|
||||
</emItem>
|
||||
<emItem blockID="i4" id="{4B3803EA-5230-4DC3-A7FC-33638F3D3542}">
|
||||
<versionRange minVersion="1.2" maxVersion="1.2">
|
||||
<targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
|
||||
<versionRange minVersion="3.0a1" maxVersion="*" />
|
||||
</targetApplication>
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i40" id="{28387537-e3f9-4ed7-860c-11e69af4a8a0}">
|
||||
<versionRange minVersion="0.1" maxVersion="4.3.0.00" severity="1">
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i23" id="firefox@bandoo.com">
|
||||
<versionRange minVersion="5.0" maxVersion="5.0" severity="1">
|
||||
<targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
|
||||
<versionRange minVersion="3.7a1pre" maxVersion="*" />
|
||||
</targetApplication>
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i22" id="ShopperReports@ShopperReports.com">
|
||||
<versionRange minVersion="3.1.22.0" maxVersion="3.1.22.0">
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i2" id="fdm_ffext@freedownloadmanager.org">
|
||||
<versionRange minVersion="1.0" maxVersion="1.3.1">
|
||||
<targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
|
||||
<versionRange minVersion="3.0a1" maxVersion="*" />
|
||||
</targetApplication>
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i5" id="support@daemon-tools.cc">
|
||||
<versionRange minVersion=" " maxVersion="1.0.0.5">
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i6" id="{3f963a5b-e555-4543-90e2-c3908898db71}">
|
||||
<versionRange minVersion=" " maxVersion="8.5">
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i12" id="masterfiler@gmail.com">
|
||||
<versionRange severity="3">
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i20" id="{AB2CE124-6272-4b12-94A9-7303C7397BD1}">
|
||||
<versionRange minVersion="0.1" maxVersion="5.2.0.7164" severity="1">
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i11" id="yslow@yahoo-inc.com">
|
||||
<versionRange minVersion="2.0.5" maxVersion="2.0.5">
|
||||
<targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
|
||||
<versionRange minVersion="3.5.7" maxVersion="*" />
|
||||
</targetApplication>
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i17" id="{3252b9ae-c69a-4eaf-9502-dc9c1f6c009e}">
|
||||
<versionRange minVersion="2.2" maxVersion="2.2">
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i3" id="langpack-vi-VN@firefox.mozilla.org">
|
||||
<versionRange minVersion="2.0" maxVersion="2.0">
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i7" id="{2224e955-00e9-4613-a844-ce69fccaae91}">
|
||||
</emItem>
|
||||
<emItem blockID="i24" id="{6E19037A-12E3-4295-8915-ED48BC341614}">
|
||||
<versionRange minVersion="0.1" maxVersion="1.3.328.4" severity="1">
|
||||
<targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
|
||||
<versionRange minVersion="3.7a1pre" maxVersion="*" />
|
||||
</targetApplication>
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i15" id="personas@christopher.beard">
|
||||
<versionRange minVersion="1.6" maxVersion="1.6">
|
||||
<targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
|
||||
<versionRange minVersion="3.6" maxVersion="3.6.*" />
|
||||
</targetApplication>
|
||||
</versionRange>
|
||||
</emItem>
|
||||
<emItem blockID="i21" id="support@update-firefox.com">
|
||||
</emItem>
|
||||
</emItems>
|
||||
|
||||
<pluginItems>
|
||||
<pluginItem blockID="p26">
|
||||
<match name="name" exp="^Yahoo Application State Plugin$" /> <match name="description" exp="^Yahoo Application State Plugin$" /> <match name="filename" exp="npYState.dll" /> <versionRange >
|
||||
<targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
|
||||
<versionRange minVersion="3.0a1" maxVersion="3.*" />
|
||||
</targetApplication>
|
||||
</versionRange>
|
||||
</pluginItem>
|
||||
<pluginItem blockID="p27">
|
||||
<match name="name" exp="QuickTime Plug-in 7[.]1[.]" /> <match name="filename" exp="npqtplugin.?[.]dll" /> <versionRange >
|
||||
<targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
|
||||
<versionRange minVersion="3.0a1" maxVersion="3.*" />
|
||||
</targetApplication>
|
||||
</versionRange>
|
||||
</pluginItem>
|
||||
<pluginItem blockID="p28">
|
||||
<match name="filename" exp="NPFFAddOn.dll" /> <versionRange >
|
||||
</versionRange>
|
||||
</pluginItem>
|
||||
<pluginItem blockID="p31">
|
||||
<match name="filename" exp="NPMySrch.dll" /> <versionRange >
|
||||
</versionRange>
|
||||
</pluginItem>
|
||||
<pluginItem blockID="p32">
|
||||
<match name="filename" exp="npViewpoint.dll" /> <versionRange >
|
||||
<targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
|
||||
<versionRange minVersion="3.0" maxVersion="*" />
|
||||
</targetApplication>
|
||||
</versionRange>
|
||||
</pluginItem>
|
||||
<pluginItem blockID="p33">
|
||||
<match name="name" exp="[0-6]\.0\.[01]\d{2}\.\d+" /> <match name="filename" exp="npdeploytk.dll" /> <versionRange severity="1">
|
||||
</versionRange>
|
||||
</pluginItem>
|
||||
<pluginItem blockID="p34">
|
||||
<match name="filename" exp="[Nn][Pp][Jj][Pp][Ii]1[56]0_[0-9]+\.[Dd][Ll][Ll]" /> <versionRange >
|
||||
<targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
|
||||
<versionRange minVersion="3.6a1pre" maxVersion="*" />
|
||||
</targetApplication>
|
||||
</versionRange>
|
||||
</pluginItem>
|
||||
</pluginItems>
|
||||
|
||||
<gfxItems>
|
||||
<gfxBlacklistEntry blockID="g35">
|
||||
<os>WINNT 6.1</os>
|
||||
<vendor>0x10de</vendor>
|
||||
<devices>
|
||||
<device>0x0a6c</device>
|
||||
</devices>
|
||||
<feature>DIRECT2D</feature>
|
||||
<featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>
|
||||
<driverVersion>8.17.12.5896</driverVersion>
|
||||
<driverVersionComparator>LESS_THAN_OR_EQUAL</driverVersionComparator>
|
||||
</gfxBlacklistEntry>
|
||||
<gfxBlacklistEntry blockID="g36">
|
||||
<os>WINNT 6.1</os>
|
||||
<vendor>0x10de</vendor>
|
||||
<devices>
|
||||
<device>0x0a6c</device>
|
||||
</devices>
|
||||
<feature>DIRECT3D_9_LAYERS</feature>
|
||||
<featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>
|
||||
<driverVersion>8.17.12.5896</driverVersion>
|
||||
<driverVersionComparator>LESS_THAN_OR_EQUAL</driverVersionComparator>
|
||||
</gfxBlacklistEntry>
|
||||
<gfxBlacklistEntry blockID="g37">
|
||||
<os>WINNT 5.1</os>
|
||||
<vendor>0x10de</vendor>
|
||||
<feature>DIRECT3D_9_LAYERS</feature>
|
||||
<featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>
|
||||
<driverVersion>7.0.0.0</driverVersion>
|
||||
<driverVersionComparator>GREATER_THAN_OR_EQUAL</driverVersionComparator>
|
||||
</gfxBlacklistEntry>
|
||||
</gfxItems>
|
||||
|
||||
|
||||
</blocklist>
|
|
@ -97,13 +97,13 @@ function _handleEvent(aEvent) {
|
|||
|
||||
// Methods that impact a browser. Put into single object for organization.
|
||||
let BrowserHelper = {
|
||||
onOpen: function(aBrowser) {
|
||||
onOpen: function NP_BH_onOpen(aBrowser) {
|
||||
// If the tab is in the focused window, leave priority as it is
|
||||
if (aBrowser.ownerDocument.defaultView != _lastFocusedWindow)
|
||||
this.decreasePriority(aBrowser);
|
||||
},
|
||||
|
||||
onSelect: function(aBrowser) {
|
||||
onSelect: function NP_BH_onSelect(aBrowser) {
|
||||
let windowEntry = WindowHelper.getEntry(aBrowser.ownerDocument.defaultView);
|
||||
if (windowEntry.lastSelectedBrowser)
|
||||
this.decreasePriority(windowEntry.lastSelectedBrowser);
|
||||
|
@ -113,16 +113,16 @@ let BrowserHelper = {
|
|||
},
|
||||
|
||||
// Auxiliary methods
|
||||
getLoadgroup: function(aBrowser) {
|
||||
getLoadgroup: function NP_BH_getLoadgroup(aBrowser) {
|
||||
return aBrowser.webNavigation.QueryInterface(Ci.nsIDocumentLoader)
|
||||
.loadGroup.QueryInterface(Ci.nsISupportsPriority);
|
||||
},
|
||||
|
||||
increasePriority: function(aBrowser) {
|
||||
increasePriority: function NP_BH_increasePriority(aBrowser) {
|
||||
this.getLoadgroup(aBrowser).adjustPriority(PRIORITY_DELTA);
|
||||
},
|
||||
|
||||
decreasePriority: function(aBrowser) {
|
||||
decreasePriority: function NP_BH_decreasePriority(aBrowser) {
|
||||
this.getLoadgroup(aBrowser).adjustPriority(PRIORITY_DELTA * -1);
|
||||
}
|
||||
};
|
||||
|
@ -130,7 +130,7 @@ let BrowserHelper = {
|
|||
|
||||
// Methods that impact a window. Put into single object for organization.
|
||||
let WindowHelper = {
|
||||
addWindow: function(aWindow) {
|
||||
addWindow: function NP_WH_addWindow(aWindow) {
|
||||
// Build internal data object
|
||||
_windows.push({ window: aWindow, lastSelectedBrowser: null });
|
||||
|
||||
|
@ -153,7 +153,7 @@ let WindowHelper = {
|
|||
BrowserHelper.onSelect(aWindow.gBrowser.selectedBrowser);
|
||||
},
|
||||
|
||||
removeWindow: function(aWindow) {
|
||||
removeWindow: function NP_WH_removeWindow(aWindow) {
|
||||
if (aWindow == _lastFocusedWindow)
|
||||
_lastFocusedWindow = null;
|
||||
|
||||
|
@ -169,7 +169,7 @@ let WindowHelper = {
|
|||
});
|
||||
},
|
||||
|
||||
onActivate: function(aWindow, aHasFocus) {
|
||||
onActivate: function NP_WH_onActivate(aWindow, aHasFocus) {
|
||||
// If this window was the last focused window, we don't need to do anything
|
||||
if (aWindow == _lastFocusedWindow)
|
||||
return;
|
||||
|
@ -181,7 +181,7 @@ let WindowHelper = {
|
|||
this.increasePriority(aWindow);
|
||||
},
|
||||
|
||||
handleFocusedWindow: function(aWindow) {
|
||||
handleFocusedWindow: function NP_WH_handleFocusedWindow(aWindow) {
|
||||
// If we have a last focused window, we need to deprioritize it first
|
||||
if (_lastFocusedWindow)
|
||||
this.decreasePriority(_lastFocusedWindow);
|
||||
|
@ -191,23 +191,23 @@ let WindowHelper = {
|
|||
},
|
||||
|
||||
// Auxiliary methods
|
||||
increasePriority: function(aWindow) {
|
||||
increasePriority: function NP_WH_increasePriority(aWindow) {
|
||||
aWindow.gBrowser.browsers.forEach(function(aBrowser) {
|
||||
BrowserHelper.increasePriority(aBrowser);
|
||||
});
|
||||
},
|
||||
|
||||
decreasePriority: function(aWindow) {
|
||||
decreasePriority: function NP_WH_decreasePriority(aWindow) {
|
||||
aWindow.gBrowser.browsers.forEach(function(aBrowser) {
|
||||
BrowserHelper.decreasePriority(aBrowser);
|
||||
});
|
||||
},
|
||||
|
||||
getEntry: function(aWindow) {
|
||||
getEntry: function NP_WH_getEntry(aWindow) {
|
||||
return _windows[this.getEntryIndex(aWindow)];
|
||||
},
|
||||
|
||||
getEntryIndex: function(aWindow) {
|
||||
getEntryIndex: function NP_WH_getEntryAtIndex(aWindow) {
|
||||
// Assumes that every object has a unique window & it's in the array
|
||||
for (let i = 0; i < _windows.length; i++)
|
||||
if (_windows[i].window == aWindow)
|
||||
|
|
|
@ -355,6 +355,9 @@ const gSessionHistoryObserver = {
|
|||
var fwdCommand = document.getElementById("Browser:Forward");
|
||||
fwdCommand.setAttribute("disabled", "true");
|
||||
|
||||
// Hide session restore button on about:home
|
||||
window.messageManager.sendAsyncMessage("Browser:HideSessionRestoreButton");
|
||||
|
||||
if (gURLBar) {
|
||||
// Clear undo history of the URL bar
|
||||
gURLBar.editor.transactionManager.clear()
|
||||
|
|
|
@ -51,3 +51,13 @@ addMessageListener("WebNavigation:LoadURI", function (message) {
|
|||
|
||||
webNavigation.loadURI(message.json.uri, flags, null, null, null);
|
||||
});
|
||||
|
||||
addMessageListener("Browser:HideSessionRestoreButton", function (message) {
|
||||
// Hide session restore button on about:home
|
||||
let doc = content.document;
|
||||
let container;
|
||||
if (doc.documentURI.toLowerCase() == "about:home" &&
|
||||
(container = doc.getElementById("sessionRestoreContainer"))){
|
||||
container.hidden = true;
|
||||
}
|
||||
});
|
||||
|
|
|
@ -185,7 +185,7 @@ SessionStoreService.prototype = {
|
|||
|
||||
// xul:tab attributes to (re)store (extensions might want to hook in here);
|
||||
// the favicon is always saved for the about:sessionrestore page
|
||||
xulAttributes: ["image"],
|
||||
xulAttributes: {"image": true},
|
||||
|
||||
// set default load state
|
||||
_loadState: STATE_STOPPED,
|
||||
|
@ -498,6 +498,7 @@ SessionStoreService.prototype = {
|
|||
// quit-application notification so the browser is about to exit.
|
||||
if (this._loadState == STATE_QUITTING)
|
||||
return;
|
||||
this._lastSessionState = null;
|
||||
let openWindows = {};
|
||||
this._forEachBrowserWindow(function(aWindow) {
|
||||
Array.forEach(aWindow.gBrowser.tabs, function(aTab) {
|
||||
|
@ -1426,10 +1427,10 @@ SessionStoreService.prototype = {
|
|||
},
|
||||
|
||||
persistTabAttribute: function sss_persistTabAttribute(aName) {
|
||||
if (this.xulAttributes.indexOf(aName) != -1)
|
||||
if (aName in this.xulAttributes)
|
||||
return; // this attribute is already being tracked
|
||||
|
||||
this.xulAttributes.push(aName);
|
||||
this.xulAttributes[aName] = true;
|
||||
this.saveStateDelayed();
|
||||
},
|
||||
|
||||
|
@ -1736,12 +1737,10 @@ SessionStoreService.prototype = {
|
|||
else if (tabData.disallow)
|
||||
delete tabData.disallow;
|
||||
|
||||
if (this.xulAttributes.length > 0) {
|
||||
tabData.attributes = {};
|
||||
Array.forEach(aTab.attributes, function(aAttr) {
|
||||
if (this.xulAttributes.indexOf(aAttr.name) > -1)
|
||||
tabData.attributes[aAttr.name] = aAttr.value;
|
||||
}, this);
|
||||
tabData.attributes = {};
|
||||
for (let name in this.xulAttributes) {
|
||||
if (aTab.hasAttribute(name))
|
||||
tabData.attributes[name] = aTab.getAttribute(name);
|
||||
}
|
||||
|
||||
if (aTab.__SS_extdata)
|
||||
|
@ -2748,6 +2747,9 @@ SessionStoreService.prototype = {
|
|||
else
|
||||
tabbrowser.showTab(tab);
|
||||
|
||||
for (let name in tabData.attributes)
|
||||
this.xulAttributes[name] = true;
|
||||
|
||||
tabData._tabStillLoading = true;
|
||||
|
||||
// keep the data around to prevent dataloss in case
|
||||
|
@ -2863,9 +2865,8 @@ SessionStoreService.prototype = {
|
|||
CAPABILITIES.forEach(function(aCapability) {
|
||||
browser.docShell["allow" + aCapability] = disallow.indexOf(aCapability) == -1;
|
||||
});
|
||||
Array.filter(tab.attributes, function(aAttr) {
|
||||
return (_this.xulAttributes.indexOf(aAttr.name) > -1);
|
||||
}).forEach(tab.removeAttribute, tab);
|
||||
for (let name in this.xulAttributes)
|
||||
tab.removeAttribute(name);
|
||||
for (let name in tabData.attributes)
|
||||
tab.setAttribute(name, tabData.attributes[name]);
|
||||
|
||||
|
|
|
@ -79,6 +79,12 @@ class RemoteAutomation(Automation):
|
|||
if env is None:
|
||||
env = {}
|
||||
|
||||
# Except for the mochitest results table hiding option, which isn't
|
||||
# passed to runtestsremote.py as an actual option, but through the
|
||||
# MOZ_CRASHREPORTER_DISABLE environment variable.
|
||||
if 'MOZ_HIDE_RESULTS_TABLE' in os.environ:
|
||||
env['MOZ_HIDE_RESULTS_TABLE'] = os.environ['MOZ_HIDE_RESULTS_TABLE']
|
||||
|
||||
if crashreporter:
|
||||
env['MOZ_CRASHREPORTER_NO_REPORT'] = '1'
|
||||
env['MOZ_CRASHREPORTER'] = '1'
|
||||
|
|
|
@ -7549,7 +7549,7 @@ else
|
|||
dnl Look for a broken crtdll.obj
|
||||
WIN32_CRTDLL_FULLPATH=`lib -nologo -list $WIN32_CRT_LIBS | grep crtdll\\.obj`
|
||||
lib -NOLOGO -OUT:crtdll.obj $WIN32_CRT_LIBS -EXTRACT:$WIN32_CRTDLL_FULLPATH
|
||||
if grep -q __imp__\{0,1\}free crtdll.obj; then
|
||||
if grep -q '__imp__\{0,1\}free' crtdll.obj; then
|
||||
MOZ_MEMORY_LDFLAGS='-MANIFEST:NO -LIBPATH:$(DIST)/lib -NODEFAULTLIB:msvcrt -NODEFAULTLIB:msvcrtd -NODEFAULTLIB:msvcprt -NODEFAULTLIB:msvcprtd -DEFAULTLIB:mozcrt'
|
||||
else
|
||||
MOZ_MEMORY_LDFLAGS='$(DIST)/../memory/jemalloc/jemalloc.lib'
|
||||
|
|
|
@ -392,7 +392,7 @@
|
|||
</div>
|
||||
|
||||
<!-- Retry Button -->
|
||||
<button id="errorTryAgain" onclick="retryThis(this);">&retry.label;</button>
|
||||
<button id="errorTryAgain" autocomplete="off" onclick="retryThis(this);">&retry.label;</button>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1623,6 +1623,8 @@ nsJSContext::ExecuteScript(void *aScriptObject,
|
|||
// If all went well, convert val to a string (XXXbe unless undefined?).
|
||||
rv = JSValueToAString(mContext, val, aRetValue, aIsUndefined);
|
||||
} else {
|
||||
ReportPendingException();
|
||||
|
||||
if (aIsUndefined) {
|
||||
*aIsUndefined = PR_TRUE;
|
||||
}
|
||||
|
|
|
@ -536,13 +536,14 @@ class Mochitest(object):
|
|||
|
||||
return browserEnv
|
||||
|
||||
def buildURLOptions(self, options):
|
||||
def buildURLOptions(self, options, env):
|
||||
""" Add test control options from the command line to the url
|
||||
|
||||
URL parameters to test URL:
|
||||
|
||||
autorun -- kick off tests automatically
|
||||
closeWhenDone -- runs quit.js after tests
|
||||
hideResultsTable -- hides the table of individual test results
|
||||
logFile -- logs test run to an absolute path
|
||||
totalChunks -- how many chunks to split tests into
|
||||
thisChunk -- which chunk to run
|
||||
|
@ -574,6 +575,8 @@ class Mochitest(object):
|
|||
self.urlOpts.append("chunkByDir=%d" % options.chunkByDir)
|
||||
if options.shuffle:
|
||||
self.urlOpts.append("shuffle=1")
|
||||
if "MOZ_HIDE_RESULTS_TABLE" in env and env["MOZ_HIDE_RESULTS_TABLE"] == "1":
|
||||
self.urlOpts.append("hideResultsTable=1")
|
||||
if options.loops:
|
||||
self.urlOpts.append("loops=%d" % options.loops)
|
||||
if os.path.isfile(self.oldcwd + self.TEST_PATH + options.testPath) and options.loops > 0:
|
||||
|
@ -633,7 +636,7 @@ class Mochitest(object):
|
|||
self.startWebSocketServer(options, debuggerInfo)
|
||||
|
||||
testURL = self.buildTestPath(options)
|
||||
self.buildURLOptions(options)
|
||||
self.buildURLOptions(options, browserEnv)
|
||||
if len(self.urlOpts) > 0:
|
||||
testURL += "?" + "&".join(self.urlOpts)
|
||||
|
||||
|
@ -716,6 +719,9 @@ class Mochitest(object):
|
|||
elif (options.a11y):
|
||||
testRoot = 'a11y'
|
||||
|
||||
if "MOZ_HIDE_RESULTS_TABLE" in os.environ and os.environ["MOZ_HIDE_RESULTS_TABLE"] == "1":
|
||||
options.hideResultsTable = True
|
||||
|
||||
#TODO: when we upgrade to python 2.6, just use json.dumps(options.__dict__)
|
||||
content = "{"
|
||||
content += '"testRoot": "%s", ' % (testRoot)
|
||||
|
|
|
@ -279,11 +279,11 @@ class MochiRemote(Mochitest):
|
|||
options.profilePath = self.remoteProfile
|
||||
return manifest
|
||||
|
||||
def buildURLOptions(self, options):
|
||||
def buildURLOptions(self, options, env):
|
||||
self.localLog = options.logFile
|
||||
options.logFile = self.remoteLog
|
||||
options.profilePath = self.localProfile
|
||||
retVal = Mochitest.buildURLOptions(self, options)
|
||||
retVal = Mochitest.buildURLOptions(self, options, env)
|
||||
#we really need testConfig.js (for browser chrome)
|
||||
if self._dm.pushDir(options.profilePath, self.remoteProfile) == None:
|
||||
raise devicemanager.FileError("Unable to copy profile to device.")
|
||||
|
|
|
@ -604,6 +604,8 @@ function testListing(metadata, response)
|
|||
var [links, count] = list(metadata.path,
|
||||
metadata.getProperty("directory"),
|
||||
true);
|
||||
var table_class = metadata.queryString.indexOf("hideResultsTable=1") > -1 ? "invisible": "";
|
||||
|
||||
dumpn("count: " + count);
|
||||
var tests = jsonArrayOfTestFiles(links);
|
||||
response.write(
|
||||
|
@ -658,7 +660,7 @@ function testListing(metadata, response)
|
|||
BR()
|
||||
),
|
||||
|
||||
TABLE({cellpadding: 0, cellspacing: 0, id: "test-table"},
|
||||
TABLE({cellpadding: 0, cellspacing: 0, class: table_class, id: "test-table"},
|
||||
TR(TD("Passed"), TD("Failed"), TD("Todo"), TD("Test Files")),
|
||||
linksToTableRows(links, 0)
|
||||
),
|
||||
|
|
|
@ -83,10 +83,10 @@ endif
|
|||
|
||||
mochitest-remote: DM_TRANS?=adb
|
||||
mochitest-remote:
|
||||
if test -f ${MOZ_HOST_BIN}/xpcshell && [ "${TEST_DEVICE}" != "usb" -o "$(DM_TRANS)" = "adb" ]; \
|
||||
@if test -f ${MOZ_HOST_BIN}/xpcshell && [ "${TEST_DEVICE}" != "usb" -o "$(DM_TRANS)" = "adb" ]; \
|
||||
then $(RUN_MOCHITEST_REMOTE); \
|
||||
else \
|
||||
@echo "please prepare your host with environment variables for TEST_DEVICE and MOZ_HOST_BIN"; \
|
||||
echo "please prepare your host with environment variables for TEST_DEVICE and MOZ_HOST_BIN"; \
|
||||
fi
|
||||
|
||||
mochitest-plain:
|
||||
|
|
|
@ -10,6 +10,7 @@ var gManagerWindow;
|
|||
var gProvider;
|
||||
|
||||
var gUtilsBtn;
|
||||
var gUtilsMenu;
|
||||
var gDropdownMenu;
|
||||
var gSetDefault;
|
||||
var gResetToAutomatic;
|
||||
|
|
|
@ -106,7 +106,6 @@
|
|||
margin: 2px 0;
|
||||
padding-left: 4px;
|
||||
padding-right: 4px;
|
||||
width: 1em;
|
||||
color: white;
|
||||
background-color: red;
|
||||
border-radius: 40px;
|
||||
|
|
|
@ -109,7 +109,6 @@
|
|||
margin: 2px 0;
|
||||
padding-left: 4px;
|
||||
padding-right: 4px;
|
||||
width: 1em;
|
||||
color: white;
|
||||
background-color: red;
|
||||
border-radius: 40px;
|
||||
|
|
|
@ -105,7 +105,6 @@
|
|||
margin: 2px 0;
|
||||
padding-left: 4px;
|
||||
padding-right: 4px;
|
||||
width: 1em;
|
||||
color: white;
|
||||
background-color: red;
|
||||
border-radius: 40px;
|
||||
|
|
|
@ -436,9 +436,6 @@ nsClipboard::HasDataMatchingFlavors(const char** aFlavorList, PRUint32 aLength,
|
|||
const QMimeData *mimeData = cb->mimeData();
|
||||
const char *flavor=NULL;
|
||||
QStringList formats = mimeData->formats();
|
||||
// Temp QString for comparison
|
||||
QString utf8text("text/plain;charset=utf-8");
|
||||
// And is there matching flavor?
|
||||
for (PRUint32 i = 0; i < aLength; ++i)
|
||||
{
|
||||
flavor = aFlavorList[i];
|
||||
|
@ -451,10 +448,10 @@ nsClipboard::HasDataMatchingFlavors(const char** aFlavorList, PRUint32 aLength,
|
|||
NS_WARNING("DO NOT USE THE text/plain DATA FLAVOR ANY MORE. USE text/unicode INSTEAD");
|
||||
}
|
||||
|
||||
// QClipboard says it has text/plain;charset=utf-8 data, mozilla wants to
|
||||
// know if the data is text/unicode -> interpret text/plain;charset=utf-8 to text/unicode
|
||||
// QClipboard says it has text/plain, mozilla wants to
|
||||
// know if the data is text/unicode -> interpret text/plain to text/unicode
|
||||
if (formats.contains(qflavor) ||
|
||||
((strcmp(flavor, kUnicodeMime) == 0) && formats.contains(utf8text)))
|
||||
strcmp(flavor, kUnicodeMime) == 0)
|
||||
{
|
||||
// A match has been found, return'
|
||||
*_retval = PR_TRUE;
|
||||
|
|
Загрузка…
Ссылка в новой задаче