Merge m-c to a CLOSED TREE f-t

This commit is contained in:
Phil Ringnalda 2016-03-24 22:43:18 -07:00
Родитель ff74727859 48e56cf3be
Коммит 0d901b89d3
28 изменённых файлов: 117 добавлений и 273 удалений

Просмотреть файл

@ -22,4 +22,4 @@
# changes to stick? As of bug 928195, this shouldn't be necessary! Please
# don't change CLOBBER for WebIDL changes any more.
Bug 1223729 - Touching CLOBBER for moving files under dom/bluetooth/common
Bug 1186060 - Switch Windows compiler from VS2013 to VS2015

Просмотреть файл

@ -27,7 +27,7 @@ export MOZILLA_OFFICIAL=1
export MOZ_TELEMETRY_REPORTING=1
. $topsrcdir/build/win32/mozconfig.vs2013-win64
. $topsrcdir/build/win32/mozconfig.vs2015-win64
# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
ac_add_options --enable-warnings-as-errors

Просмотреть файл

@ -18,7 +18,7 @@ ac_add_options --with-google-oauth-api-keyfile=${_google_oauth_api_keyfile}
# Needed to enable breakpad in application.ini
export MOZILLA_OFFICIAL=1
. $topsrcdir/build/win32/mozconfig.vs2013-win64
. $topsrcdir/build/win32/mozconfig.vs2015-win64
# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
ac_add_options --enable-warnings-as-errors

Просмотреть файл

@ -9,7 +9,7 @@ ac_add_options --with-branding=browser/branding/nightly
export MOZILLA_OFFICIAL=1
if test "$PROCESSOR_ARCHITECTURE" = "AMD64" -o "$PROCESSOR_ARCHITEW6432" = "AMD64"; then
. $topsrcdir/build/win32/mozconfig.vs2013-win64
. $topsrcdir/build/win32/mozconfig.vs2015-win64
else
. $topsrcdir/build/win32/mozconfig.vs2010
fi

Просмотреть файл

@ -28,7 +28,7 @@ export MOZ_TELEMETRY_REPORTING=1
# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
ac_add_options --enable-warnings-as-errors
. $topsrcdir/build/win64/mozconfig.vs2013
. $topsrcdir/build/win64/mozconfig.vs2015
# Enable Adobe Primetime CDM on 64-bit Windows in Mozilla builds.
# Enabled here on the assumption that downstream vendors will not be using

Просмотреть файл

@ -28,7 +28,7 @@ export MOZ_PACKAGE_JSSHELL=1
ac_add_options --with-branding=browser/branding/nightly
. $topsrcdir/build/win64/mozconfig.vs2013
. $topsrcdir/build/win64/mozconfig.vs2015
. "$topsrcdir/build/mozconfig.rust"

Просмотреть файл

@ -9,6 +9,6 @@ ac_add_options --with-branding=browser/branding/nightly
export MOZILLA_OFFICIAL=1
. $topsrcdir/build/win64/mozconfig.vs2013
. $topsrcdir/build/win64/mozconfig.vs2015
. "$topsrcdir/build/mozconfig.common.override"

Просмотреть файл

@ -18,5 +18,13 @@
"algorithm": "sha512",
"filename": "sccache.tar.bz2",
"unpack": true
},
{
"version": "Visual Studio 2015 Update 1 / SDK 10.0.10586.0",
"size": 330570496,
"digest": "0379fd087705f54aeb335449e6c623cd550b656d7110acafd1e5b315e1fc9272b7cdd1e37f99d575b16ecba4e8e4fe3af965967a3944c023b83caf68fa684888",
"algorithm": "sha512",
"filename": "vs2015u1.zip",
"unpack": true
}
]

Просмотреть файл

@ -19,5 +19,13 @@
"algorithm": "sha512",
"filename": "sccache.tar.bz2",
"unpack": true
},
{
"version": "Visual Studio 2015 Update 1 / SDK 10.0.10586.0",
"size": 330570496,
"digest": "0379fd087705f54aeb335449e6c623cd550b656d7110acafd1e5b315e1fc9272b7cdd1e37f99d575b16ecba4e8e4fe3af965967a3944c023b83caf68fa684888",
"algorithm": "sha512",
"filename": "vs2015u1.zip",
"unpack": true
}
]

49
browser/extensions/loop/bootstrap.js поставляемый
Просмотреть файл

@ -13,9 +13,6 @@ const kBrowserSharingNotificationId = "loop-sharing-notification";
const CURSOR_MIN_DELTA = 3;
const CURSOR_MIN_INTERVAL = 100;
const CURSOR_CLICK_DELAY = 1000;
// Due to bug 1051238 frame scripts are cached forever, so we can't update them
// as a restartless add-on. The Math.random() is the work around for this.
const FRAME_SCRIPT = "chrome://loop/content/modules/tabFrame.js?" + Math.random();
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
@ -60,7 +57,6 @@ var WindowListener = {
let FileReader = window.FileReader;
let menuItem = null;
let isSlideshowOpen = false;
let titleChangedListener = null;
// the "exported" symbols
var LoopUI = {
@ -119,10 +115,6 @@ var WindowListener = {
return this._constants;
},
get mm() {
return window.getGroupMessageManager("browsers");
},
/**
* @return {Promise}
*/
@ -321,10 +313,6 @@ var WindowListener = {
return;
}
// Load the frame script into any tab, plus any that get created in the
// future.
this.mm.loadFrameScript(FRAME_SCRIPT, true);
// Cleanup when the window unloads.
window.addEventListener("unload", () => {
Services.obs.removeObserver(this, "loop-status-changed");
@ -534,13 +522,9 @@ var WindowListener = {
gBrowser.tabContainer.addEventListener("TabSelect", this);
this._listeningToTabSelect = true;
titleChangedListener = this.handleDOMTitleChanged.bind(this);
// Watch for title changes as opposed to location changes as more
// metadata about the page is available when this event fires.
this.mm.addMessageListener("loop@mozilla.org:DOMTitleChanged",
titleChangedListener);
gBrowser.addEventListener("DOMTitleChanged", this);
this._browserSharePaused = false;
// Add this event to the parent gBrowser to avoid adding and removing
@ -566,12 +550,7 @@ var WindowListener = {
this._hideBrowserSharingInfoBar();
gBrowser.tabContainer.removeEventListener("TabSelect", this);
if (titleChangedListener) {
this.mm.removeMessageListener("loop@mozilla.org:DOMTitleChanged",
titleChangedListener);
titleChangedListener = null;
}
gBrowser.removeEventListener("DOMTitleChanged", this);
// Remove shared pointers related events
gBrowser.removeEventListener("mousemove", this);
@ -809,27 +788,15 @@ var WindowListener = {
gBrowser.selectedBrowser.outerWindowID);
},
/**
* Handles events from the frame script.
*
* @param {Object} message The message received from the frame script.
*/
handleDOMTitleChanged: function(message) {
if (!this._listeningToTabSelect || this._browserSharePaused) {
return;
}
if (gBrowser.selectedBrowser == message.target) {
// Get the new title of the shared tab
this._notifyBrowserSwitch();
}
},
/**
* Handles events from gBrowser.
*/
handleEvent: function(event) {
switch (event.type) {
case "DOMTitleChanged":
// Get the new title of the shared tab
this._notifyBrowserSwitch();
break;
case "TabSelect":
let wasVisible = false;
// Hide the infobar from the previous tab.
@ -972,10 +939,6 @@ var WindowListener = {
if (window.LoopUI) {
window.LoopUI.removeMenuItem();
// This stops the frame script being loaded to new tabs, but doesn't
// remove it from existing tabs (there's no way to do that).
window.LoopUI.mm.removeDelayedFrameScript(FRAME_SCRIPT);
// XXX Bug 1229352 - Add in tear-down of the panel.
}
},

Просмотреть файл

@ -1,22 +0,0 @@
/* 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";
/* global sendAsyncMessage */
/**
* This script runs in the content process and is attached to browsers when
* they are created.
*/
// Listen for when the title is changed and send a message back to the chrome
// process.
addEventListener("DOMTitleChanged", ({ target }) => {
sendAsyncMessage("loop@mozilla.org:DOMTitleChanged", {
details: "titleChanged"
}, {
target: target
});
});

Просмотреть файл

@ -30,6 +30,7 @@
}
.room-invitation-content > * {
width: 100%;
margin: 0 15px;
}
@ -229,6 +230,10 @@ html[dir="rtl"] .share-panel-container > .room-invitation-overlay {
margin: 0 0 12px;
}
.share-panel-container > .room-invitation-overlay > .room-invitation-content > * {
width: initial;
}
.share-panel-open > .room-invitation-overlay,
html[dir="rtl"] .share-panel-open > .room-invitation-overlay {
transform: translateX(0);

Просмотреть файл

@ -356,7 +356,6 @@ loop.roomViews = function (mozL10n) {
screenShareMediaElement: this.state.screenShareMediaElement,
screenSharePosterUrl: null,
showInitialContext: false,
showMediaWait: false,
showTile: false },
React.createElement(sharedViews.ConversationToolbar, {
audio: { enabled: !this.state.audioMuted, visible: true },

Просмотреть файл

@ -1,12 +1,7 @@
pref("loop.enabled", true);
pref("loop.remote.autostart", true);
#ifdef LOOP_DEV_XPI
pref("loop.server", "https://loop-dev.stage.mozaws.net/v0");
pref("loop.linkClicker.url", "https://loop-webapp-dev.stage.mozaws.net/");
#else
pref("loop.server", "https://loop.services.mozilla.com/v0");
pref("loop.linkClicker.url", "https://hello.firefox.com/");
#endif
pref("loop.gettingStarted.latestFTUVersion", 1);
pref("loop.gettingStarted.url", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/hello/start/");
pref("loop.gettingStarted.resumeOnFirstJoin", false);

Просмотреть файл

@ -510,74 +510,40 @@ html, .fx-embedded, #main,
width: 272px;
}
.media-wrapper > .text-chat-view > .text-chat-entries > .text-chat-scroller > .welcome-message {
font-size: 1.2rem;
margin: 0 0 15px;
color: #5e5f64;
line-height: 20px;
}
.media-wrapper.showing-local-streams > .text-chat-view,
.media-wrapper.showing-media-wait > .text-chat-view {
.media-wrapper.showing-local-streams > .text-chat-view {
/* When we're displaying the local streams, then we need to make the text
chat view a bit shorter to give room. */
height: calc(100% - 204px);
}
.media-wrapper.showing-media-wait > .text-chat-view {
order: 2;
}
.media-wrapper.showing-media-wait > .local {
/* Hides the local stream video box while we're asking the user for permissions */
display: none;
}
.media-wrapper.showing-local-streams.receiving-screen-share {
position: relative;
}
.media-wrapper.showing-local-streams.receiving-screen-share > .text-chat-view {
/* When we're displaying the local streams, then we need to make the text
chat view a bit shorter to give room. 1 streams x 204px */
height: calc(100% - 204px);
chat view a bit shorter to give room. 2 streams x 204px each*/
height: calc(100% - 408px);
}
.media-wrapper.receiving-screen-share > .screen {
order: 1;
}
.media-wrapper.receiving-screen-share > .text-chat-view,
.media-wrapper.showing-local-streams > .text-chat-view {
order: 4;
.media-wrapper.receiving-screen-share > .text-chat-view {
order: 2;
}
.media-wrapper.receiving-screen-share > .remote {
flex: 0 1 auto;
order: 2;
order: 3;
/* to keep the 4:3 ratio set both height and width */
height: 204px;
width: 272px;
}
.media-wrapper.receiving-screen-share > .local {
order: 3;
}
.media-wrapper.receiving-screen-share.showing-remote-streams > .local {
position: absolute;
z-index: 2;
padding: 8px;
right: 0;
left: auto;
top: 124px;
/* to keep the 4:3 ratio 80x60px + 16px padding + 4px border */
width: calc(80px + 16px + 4px);
height: calc(60px + 16px + 4px);
}
.media-wrapper.receiving-screen-share.showing-remote-streams > .local > .remote-video-box {
border: solid 2px #fff;
order: 4;
}
@media screen and (max-width:640px) {
@ -664,7 +630,7 @@ html, .fx-embedded, #main,
object-fit: contain;
}
.media-wrapper.receiving-screen-share.showing-remote-streams > .local {
.media-wrapper.receiving-screen-share > .local {
/* Screen shares have remote & local video side-by-side on narrow screens */
order: 3;
flex: 1 1 auto;
@ -675,15 +641,13 @@ html, .fx-embedded, #main,
max-width: 50%;
/* This cancels out the absolute positioning when it's just remote video. */
position: relative;
top: auto;
bottom: auto;
right: auto;
margin: 0;
padding: 0;
}
.media-wrapper.receiving-screen-share.showing-remote-streams > .local > .remote-video-box {
border: 0;
.media-wrapper.receiving-screen-share > .text-chat-view {
order: 4;
}
}

Просмотреть файл

@ -216,11 +216,6 @@ loop.shared.views.chat = function (mozL10n) {
React.createElement(
"div",
{ className: "text-chat-scroller" },
loop.shared.utils.isDesktop() ? null : React.createElement(
"p",
{ className: "welcome-message" },
mozL10n.get("rooms_welcome_text_chat_label", { clientShortname: mozL10n.get("clientShortname2") })
),
this.props.messageList.map(function (entry, i) {
if (entry.type === CHAT_MESSAGE_TYPES.SPECIAL) {
if (!this.props.showInitialContext) {

Просмотреть файл

@ -885,7 +885,6 @@ loop.shared.views = function (_, mozL10n) {
screenSharePosterUrl: React.PropTypes.string,
screenSharingPaused: React.PropTypes.bool,
showInitialContext: React.PropTypes.bool.isRequired,
showMediaWait: React.PropTypes.bool.isRequired,
showTile: React.PropTypes.bool.isRequired
},
@ -943,30 +942,6 @@ loop.shared.views = function (_, mozL10n) {
);
},
renderMediaWait: function () {
var msg = mozL10n.get("call_progress_getting_media_description", { clientShortname: mozL10n.get("clientShortname2") });
var utils = loop.shared.utils;
var isChrome = utils.isChrome(navigator.userAgent);
var isFirefox = utils.isFirefox(navigator.userAgent);
var isOpera = utils.isOpera(navigator.userAgent);
var promptMediaMessageClasses = classNames({
"prompt-media-message": true,
"chrome": isChrome,
"firefox": isFirefox,
"opera": isOpera,
"other": !isChrome && !isFirefox && !isOpera
});
return React.createElement(
"div",
{ className: "prompt-media-message-wrapper" },
React.createElement(
"p",
{ className: promptMediaMessageClasses },
msg
)
);
},
render: function () {
var remoteStreamClasses = classNames({
"remote": true,
@ -983,7 +958,6 @@ loop.shared.views = function (_, mozL10n) {
"media-wrapper": true,
"receiving-screen-share": this.props.displayScreenShare,
"showing-local-streams": this.props.localSrcMediaElement || this.props.localPosterUrl,
"showing-media-wait": this.props.showMediaWait,
"showing-remote-streams": this.props.remoteSrcMediaElement || this.props.remotePosterUrl || this.props.isRemoteLoading
});
@ -1029,8 +1003,7 @@ loop.shared.views = function (_, mozL10n) {
dispatcher: this.props.dispatcher,
showInitialContext: this.props.showInitialContext,
showTile: this.props.showTile }),
this.state.localMediaAboslutelyPositioned ? null : this.renderLocalVideo(),
this.props.showMediaWait ? this.renderMediaWait() : null
this.state.localMediaAboslutelyPositioned ? null : this.renderLocalVideo()
)
);
}

Просмотреть файл

@ -831,7 +831,6 @@ describe("loop.shared.views", function() {
matchMedia: window.matchMedia,
renderRemoteVideo: false,
showInitialContext: false,
showMediaWait: false,
showTile: false
};
@ -969,24 +968,6 @@ describe("loop.shared.views", function() {
expect(view.getDOMNode().querySelector(".media-wrapper")
.classList.contains("showing-remote-streams")).eql(true);
});
it("should mark the wrapper as showing media wait tile when asking for user media", function() {
view = mountTestComponent({
showMediaWait: true
});
expect(view.getDOMNode().querySelector(".media-wrapper")
.classList.contains("showing-media-wait")).eql(true);
});
it("should display a media wait tile when asking for user media", function() {
view = mountTestComponent({
showMediaWait: true
});
expect(view.getDOMNode().querySelector(".prompt-media-message-wrapper"))
.not.eql(null);
});
});
describe("RemoteCursorView", function() {

Просмотреть файл

@ -16,5 +16,4 @@ support-files =
[browser_mozLoop_sharingListeners.js]
skip-if = e10s
[browser_mozLoop_telemetry.js]
[browser_sharingTitleListeners.js]
[browser_toolbarbutton.js]

Просмотреть файл

@ -1,51 +0,0 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/*
* This file contains tests for the browser sharing document title listeners.
*/
"use strict";
var [, gHandlers] = LoopAPI.inspect();
function promiseBrowserSwitch() {
return new Promise(resolve => {
LoopAPI.stub([{
sendAsyncMessage: function(messageName, data) {
if (data[0] == "BrowserSwitch") {
LoopAPI.restore();
resolve();
}
}
}]);
});
}
add_task(function* setup() {
Services.prefs.setBoolPref("loop.remote.autostart", true);
gHandlers.AddBrowserSharingListener({ data: [42] }, () => {});
let newTab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, "about:blank", true);
registerCleanupFunction(function* () {
// Remove the listener.
gHandlers.RemoveBrowserSharingListener({ data: [42] }, function() {});
yield BrowserTestUtils.removeTab(newTab);
Services.prefs.clearUserPref("loop.remote.autostart");
});
});
add_task(function* test_notifyOnTitleChanged() {
// Hook up the async listener and wait for the BrowserSwitch to happen.
let browserSwitchPromise = promiseBrowserSwitch();
BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "about:mozilla");
// Now check we get the notification of the browser switch.
yield browserSwitchPromise;
Assert.ok(true, "We got notification of the browser switch");
});

Просмотреть файл

@ -9,9 +9,8 @@
<Description about="urn:mozilla:install-manifest">
<em:id>loop@mozilla.org</em:id>
<em:bootstrap>true</em:bootstrap>
<em:version>1.2.3</em:version>
<em:version>1.2.2</em:version>
<em:type>2</em:type>
<em:multiprocessCompatible>true</em:multiprocessCompatible>
<!-- Target Application this extension can install into,
with minimum and maximum supported versions. -->

Просмотреть файл

@ -6,7 +6,7 @@
[features/loop@mozilla.org] chrome.jar:
% content loop %content/ contentaccessible=yes
% content loop-locale-fallback %content/locale-fallback/en-US/
% skin loop classic/1.0 %skin/linux/
% skin loop classic/1.0 %skin/linux/ os=Linux
% skin loop classic/1.0 %skin/osx/ os=Darwin
% skin loop classic/1.0 %skin/windows/ os=WINNT
% skin loop-shared classic/1.0 %skin/shared/

Просмотреть файл

@ -0,0 +1,21 @@
if [ -z "${VSPATH}" ]; then
VSPATH="$(cd ${topsrcdir} && pwd)/vs2015u1"
fi
export WINDOWSSDKDIR="${VSPATH}/SDK"
export WIN32_REDIST_DIR="${VSPATH}/VC/redist/x86/Microsoft.VC140.CRT"
export WIN_UCRT_REDIST_DIR="${VSPATH}/SDK/Redist/ucrt/DLLs/x86"
export PATH="${VSPATH}/VC/bin/amd64_x86:${VSPATH}/VC/bin/amd64:${VSPATH}/VC/bin:${VSPATH}/SDK/bin/x86:${VSPATH}/SDK/bin/x64:${VSPATH}/DIASDK/bin:${PATH}"
export PATH="${VSPATH}/VC/redist/x86/Microsoft.VC140.CRT:${VSPATH}/VC/redist/x64/Microsoft.VC140.CRT:${VSPATH}/SDK/Redist/ucrt/DLLs/x86:${VSPATH}/SDK/Redist/ucrt/DLLs/x64:${PATH}"
export INCLUDE="${VSPATH}/VC/include:${VSPATH}/VC/atlmfc/include:${VSPATH}/SDK/Include/ucrt:${VSPATH}/SDK/Include/shared:${VSPATH}/SDK/Include/um:${VSPATH}/SDK/Include/winrt:${VSPATH}/DIASDK/include"
export LIB="${VSPATH}/VC/lib:${VSPATH}/VC/atlmfc/lib:${VSPATH}/SDK/lib/ucrt/x86:${VSPATH}/SDK/lib/um/x86:${VSPATH}/DIASDK/lib"
. $topsrcdir/build/mozconfig.vs-common
mk_export_correct_style INCLUDE
mk_export_correct_style LIB
mk_export_correct_style PATH
mk_export_correct_style WIN32_REDIST_DIR
mk_export_correct_style WIN_UCRT_REDIST_DIR

Просмотреть файл

@ -0,0 +1,20 @@
if [ -z "${VSPATH}" ]; then
VSPATH="$(cd ${topsrcdir} && pwd)/vs2015u1"
fi
export WINDOWSSDKDIR="${VSPATH}/SDK"
export WIN32_REDIST_DIR=${VSPATH}/VC/redist/x64/Microsoft.VC140.CRT
export WIN_UCRT_REDIST_DIR="${VSPATH}/SDK/Redist/ucrt/DLLs/x64"
export PATH="${VSPATH}/VC/bin/amd64:${VSPATH}/VC/bin:${VSPATH}/SDK/bin/x64:${VSPATH}/VC/redist/x64/Microsoft.VC140.CRT:${VSPATH}/SDK/Redist/ucrt/DLLs/x64:${VSPATH}/DIASDK/bin/amd64:${PATH}"
export INCLUDE="${VSPATH}/VC/include:${VSPATH}/VC/atlmfc/include:${VSPATH}/SDK/Include/ucrt:${VSPATH}/SDK/Include/shared:${VSPATH}/SDK/Include/um:${VSPATH}/SDK/Include/winrt:${VSPATH}/DIASDK/include"
export LIB="${VSPATH}/VC/lib/amd64:${VSPATH}/VC/atlmfc/lib/amd64:${VSPATH}/SDK/lib/ucrt/x64:${VSPATH}/SDK/lib/um/x64:${VSPATH}/DIASDK/lib/amd64"
. $topsrcdir/build/mozconfig.vs-common
mk_export_correct_style INCLUDE
mk_export_correct_style LIB
mk_export_correct_style PATH
mk_export_correct_style WIN32_REDIST_DIR
mk_export_correct_style WIN_UCRT_REDIST_DIR

Просмотреть файл

@ -7,6 +7,11 @@ mk_add_options() {
topsrcdir="$SOURCE"
# Tooltool installs in parent of topsrcdir for spidermonkey builds.
# Resolve that path since the mozconfigs assume tooltool installs in
# topsrcdir.
VSPATH="$(cd ${topsrcdir}/.. && pwd)/vs2015u1"
# When running on a developer machine, several variables will already
# have the right settings and we will need to keep them since the
# Windows mozconfigs overwrite them.
@ -17,18 +22,13 @@ export OLD_LIBPATH=$(IFS=';'; for d in $LIBPATH; do ( cd "$d" && echo -n $(pwd):
# The various browser/config/mozconfigs/win32/* files use these checks to pick
# the compiler.
if $USE_64BIT; then
. $topsrcdir/build/win64/mozconfig.vs2013
. $topsrcdir/build/win64/mozconfig.vs2015
elif test "$PROCESSOR_ARCHITECTURE" = "AMD64" -o "$PROCESSOR_ARCHITEW6432" = "AMD64"; then
. $topsrcdir/build/win32/mozconfig.vs2013-win64
. $topsrcdir/build/win32/mozconfig.vs2015-win64
else
. $topsrcdir/build/win32/mozconfig.vs2010
fi
# If PATH starts with a directory beginning with /d that does not
# exist, it messes up cl.exe invocation (probably by passing in a
# bogus option or something. I don't know why exactly.)
export PATH="$(perl -le 'print join ":", grep { -d $_ } split ":", $ENV{PATH}')"
# PATH also needs to point to mozmake.exe, which can come from either
# newer mozilla-build or tooltool.
if ! which mozmake 2>/dev/null; then
@ -38,14 +38,3 @@ if ! which mozmake 2>/dev/null; then
( cd $SOURCE/..; ./scripts/scripts/tooltool/tooltool_wrapper.sh $SOURCE/browser/config/tooltool-manifests/${platform:-win32}/releng.manifest $TT_SERVER setup.sh c:/mozilla-build/python27/python.exe C:/mozilla-build/tooltool.py )
fi
fi
# Set INCLUDE to any existing directories from either the INCLUDE set by the
# mozconfig, or pre-existing directories. I have observed cases where extra
# nonexistent directories in the INCLUDE search path causes the compiler to
# fail to find files that show up later in the search path.
#
# Note that the mozconfig will use msys-style paths and OLD_INCLUDE will use
# Windows-style paths, but perl and cl.exe both seem ok with either.
export INCLUDE="$(perl -le 'print join ":", grep { -d $_ } split(":", $ENV{INCLUDE}),split(":", $ENV{OLD_INCLUDE})')"
export LIB="$(perl -le 'print join ":", grep { -d $_ } split(":", $ENV{LIB}),split(":", $ENV{OLD_LIB})')"
export LIBPATH="$(perl -le 'print join ":", grep { -d $_ } split(":", $ENV{LIBPATH}),split(":", $ENV{OLD_LIBPATH})')"

Просмотреть файл

@ -7077,18 +7077,20 @@ Shell(JSContext* cx, OptionParser* op, char** envp)
static void
SetOutputFile(const char* const envVar,
FILE* defaultOut,
RCFile** outFile)
RCFile* defaultOut,
RCFile** outFileP)
{
RCFile* outFile;
const char* outPath = getenv(envVar);
FILE* newfp;
if (outPath && *outPath && (newfp = fopen(outPath, "w"))) {
*outFile = js_new<RCFile>(newfp);
(*outFile)->acquire();
} else {
*outFile = js_new<RCFile>(defaultOut);
(*outFile)->acquire();
}
if (outPath && *outPath && (newfp = fopen(outPath, "w")))
outFile = js_new<RCFile>(newfp);
else
outFile = defaultOut;
outFile->acquire();
*outFileP = outFile;
}
/* Pretend we can always preserve wrappers for dummy DOM objects. */
@ -7129,8 +7131,15 @@ main(int argc, char** argv, char** envp)
setlocale(LC_ALL, "");
#endif
SetOutputFile("JS_STDERR", stderr, &gErrFile);
SetOutputFile("JS_STDOUT", stdout, &gOutFile);
// Special-case stdout and stderr. We bump their refcounts to prevent them
// from getting closed and then having some printf fail somewhere.
RCFile rcStdout(stdout);
rcStdout.acquire();
RCFile rcStderr(stderr);
rcStderr.acquire();
SetOutputFile("JS_STDOUT", &rcStdout, &gOutFile);
SetOutputFile("JS_STDERR", &rcStderr, &gErrFile);
OptionParser op("Usage: {progname} [options] [[script] scriptArgs*]");

Просмотреть файл

@ -264,14 +264,3 @@
[111111e1a (quirks)]
expected: FAIL
[1111111111...a (quirks)]
expected:
if not debug and (os == "win") and (version == "6.2.9200") and (processor == "x86_64") and (bits == 64): FAIL
if not debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if not debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86_64") and (bits == 64): FAIL
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "win") and (version == "10.0.10240") and (processor == "x86_64") and (bits == 64): FAIL
if not debug and (os == "win") and (version == "10.0.10240") and (processor == "x86_64") and (bits == 64): FAIL

Просмотреть файл

@ -506,7 +506,7 @@ struct MessageWindow {
::_snwprintf(classNameBuffer,
128, // size of classNameBuffer in PRUnichars
L"%s%s",
wwc(NS_ConvertUTF8toUTF16(gAppData->remotingName).get()),
static_cast<const wchar_t*>(NS_ConvertUTF8toUTF16(gAppData->remotingName).get()),
L"MessageWindow" );
mClassName = classNameBuffer;
}
@ -669,7 +669,7 @@ nsNativeAppSupportWin::Start( bool *aResult ) {
::_snwprintf(reinterpret_cast<wchar_t*>(mMutexName),
sizeof mMutexName / sizeof(char16_t), L"%s%s%s",
MOZ_MUTEX_NAMESPACE,
wwc(NS_ConvertUTF8toUTF16(gAppData->name).get()),
static_cast<const wchar_t*>(NS_ConvertUTF8toUTF16(gAppData->name).get()),
MOZ_STARTUP_MUTEX_NAME );
Win32Mutex startupLock = Win32Mutex( mMutexName );