зеркало из https://github.com/mozilla/gecko-dev.git
merge autoland to mozilla-central a=merge
This commit is contained in:
Коммит
863e8736fb
|
@ -216,6 +216,8 @@ pref("browser.shell.defaultBrowserCheckCount", 0);
|
|||
// The behavior of option 3 is detailed at: http://wiki.mozilla.org/Session_Restore
|
||||
pref("browser.startup.page", 1);
|
||||
pref("browser.startup.homepage", "chrome://branding/locale/browserconfig.properties");
|
||||
// Whether we should skip the homepage when opening the first-run page
|
||||
pref("browser.startup.firstrunSkipsHomepage", false);
|
||||
|
||||
pref("browser.slowStartup.notificationDisabled", false);
|
||||
pref("browser.slowStartup.timeThreshold", 40000);
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
<?xml version="1.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/.
|
||||
|
||||
<?xul-overlay href="chrome://browser/content/macBrowserOverlay.xul"?>
|
||||
|
||||
<overlay id="downloadManagerOverlay"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<window id="downloadManager">
|
||||
|
||||
#include browserMountPoints.inc
|
||||
|
||||
<script type="application/javascript"><![CDATA[
|
||||
window.addEventListener("load", function(event) {
|
||||
// Bug 405696: Map Edit -> Find command to the download manager's command
|
||||
var findMenuItem = document.getElementById("menu_find");
|
||||
findMenuItem.setAttribute("command", "cmd_findDownload");
|
||||
findMenuItem.setAttribute("key", "key_findDownload");
|
||||
|
||||
// Bug 429614: Map Edit -> Select All command to download manager's command
|
||||
let selectAllMenuItem = document.getElementById("menu_selectAll");
|
||||
selectAllMenuItem.setAttribute("command", "cmd_selectAllDownloads");
|
||||
selectAllMenuItem.setAttribute("key", "key_selectAllDownloads");
|
||||
}, false);
|
||||
]]></script>
|
||||
|
||||
</window>
|
||||
|
||||
</overlay>
|
|
@ -4,7 +4,6 @@
|
|||
browser.jar:
|
||||
% content browser %content/browser/ contentaccessible=yes
|
||||
#ifdef XP_MACOSX
|
||||
% overlay chrome://mozapps/content/downloads/downloads.xul chrome://browser/content/downloadManagerOverlay.xul
|
||||
% overlay chrome://mozapps/content/update/updates.xul chrome://browser/content/softwareUpdateOverlay.xul
|
||||
#endif
|
||||
#ifdef XP_WIN
|
||||
|
@ -174,7 +173,6 @@ browser.jar:
|
|||
* content/browser/hiddenWindow.xul (content/hiddenWindow.xul)
|
||||
#ifdef XP_MACOSX
|
||||
* content/browser/macBrowserOverlay.xul (content/macBrowserOverlay.xul)
|
||||
* content/browser/downloadManagerOverlay.xul (content/downloadManagerOverlay.xul)
|
||||
* content/browser/softwareUpdateOverlay.xul (content/softwareUpdateOverlay.xul)
|
||||
#endif
|
||||
* content/browser/viewSourceOverlay.xul (content/viewSourceOverlay.xul)
|
||||
|
|
|
@ -551,8 +551,11 @@ nsBrowserContentHandler.prototype = {
|
|||
if (startPage == "about:blank")
|
||||
startPage = "";
|
||||
|
||||
// Only show the startPage if we're not restoring an update session.
|
||||
if (overridePage && startPage && !willRestoreSession)
|
||||
let skipStartPage = override == OVERRIDE_NEW_PROFILE &&
|
||||
prefb.getBoolPref("browser.startup.firstrunSkipsHomepage");
|
||||
// Only show the startPage if we're not restoring an update session and are
|
||||
// not set to skip the start page on this profile
|
||||
if (overridePage && startPage && !willRestoreSession && !skipStartPage)
|
||||
return overridePage + "|" + startPage;
|
||||
|
||||
return overridePage || startPage || "about:blank";
|
||||
|
|
|
@ -52,6 +52,7 @@ function SyncedTabsDeckComponent({
|
|||
SyncedTabs: SyncedTabs,
|
||||
clipboardHelper: Cc["@mozilla.org/widget/clipboardhelper;1"]
|
||||
.getService(Ci.nsIClipboardHelper),
|
||||
getChromeWindow: this._getChromeWindow,
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -29,11 +29,13 @@ this.EXPORTED_SYMBOLS = [
|
|||
* to state changes so it can rerender.
|
||||
*/
|
||||
|
||||
function TabListComponent({window, store, View, SyncedTabs, clipboardHelper}) {
|
||||
function TabListComponent({window, store, View, SyncedTabs, clipboardHelper,
|
||||
getChromeWindow}) {
|
||||
this._window = window;
|
||||
this._store = store;
|
||||
this._View = View;
|
||||
this._clipboardHelper = clipboardHelper;
|
||||
this._getChromeWindow = getChromeWindow;
|
||||
// used to trigger Sync from context menu
|
||||
this._SyncedTabs = SyncedTabs;
|
||||
}
|
||||
|
@ -116,7 +118,7 @@ TabListComponent.prototype = {
|
|||
BrowserUITelemetry.countSyncedTabEvent("open", "sidebar");
|
||||
},
|
||||
|
||||
onOpenTabs(urls, where, params) {
|
||||
onOpenTabs(urls, where) {
|
||||
if (!PlacesUIUtils.confirmOpenInTabs(urls.length, this._window)) {
|
||||
return;
|
||||
}
|
||||
|
@ -124,9 +126,8 @@ TabListComponent.prototype = {
|
|||
this._window.openDialog(this._window.getBrowserURL(), "_blank",
|
||||
"chrome,dialog=no,all", urls.join("|"));
|
||||
} else {
|
||||
for (let url of urls) {
|
||||
this._window.openUILinkIn(url, where, params);
|
||||
}
|
||||
let loadInBackground = where == "tabshifted" ? true : false;
|
||||
this._getChromeWindow(this._window).gBrowser.loadTabs(urls, loadInBackground, false);
|
||||
}
|
||||
BrowserUITelemetry.countSyncedTabEvent("openmultiple", "sidebar");
|
||||
},
|
||||
|
|
|
@ -289,7 +289,7 @@ TabListView.prototype = {
|
|||
if (where != "current") {
|
||||
const tabs = itemNode.querySelector(".item-tabs-list").childNodes;
|
||||
const urls = [...tabs].map(tab => tab.dataset.url);
|
||||
this.props.onOpenTabs(urls, where, {});
|
||||
this.props.onOpenTabs(urls, where);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -68,6 +68,13 @@ add_task(function* testInitUninit() {
|
|||
|
||||
add_task(function* testActions() {
|
||||
let store = new SyncedTabsListStore();
|
||||
let chromeWindowMock = {
|
||||
gBrowser: {
|
||||
loadTabs() {},
|
||||
},
|
||||
};
|
||||
let getChromeWindowMock = sinon.stub();
|
||||
getChromeWindowMock.returns(chromeWindowMock);
|
||||
let clipboardHelperMock = {
|
||||
copyString() {},
|
||||
};
|
||||
|
@ -84,7 +91,8 @@ add_task(function* testActions() {
|
|||
};
|
||||
let component = new TabListComponent({
|
||||
window: windowMock, store, View: null, SyncedTabs,
|
||||
clipboardHelper: clipboardHelperMock});
|
||||
clipboardHelper: clipboardHelperMock,
|
||||
getChromeWindow: getChromeWindowMock });
|
||||
|
||||
sinon.stub(store, "getData");
|
||||
component.onFilter("query");
|
||||
|
@ -127,12 +135,13 @@ add_task(function* testActions() {
|
|||
component.onOpenTab("uri", "where", "params");
|
||||
Assert.ok(windowMock.openUILinkIn.calledWith("uri", "where", "params"));
|
||||
|
||||
component.onOpenTabs(["uri1", "uri2"], "where", "params");
|
||||
Assert.ok(windowMock.openUILinkIn.calledWith("uri1", "where", "params"));
|
||||
Assert.ok(windowMock.openUILinkIn.calledWith("uri2", "where", "params"));
|
||||
sinon.spy(windowMock, "openDialog");
|
||||
component.onOpenTabs(["uri1", "uri2"], "window", "params");
|
||||
Assert.deepEqual(windowMock.openDialog.args[0][3], ["uri1", "uri2"].join("|"));
|
||||
sinon.spy(chromeWindowMock.gBrowser, "loadTabs");
|
||||
let tabsToOpen = ["uri1", "uri2"];
|
||||
component.onOpenTabs(tabsToOpen, "where");
|
||||
Assert.ok(getChromeWindowMock.calledWith(windowMock));
|
||||
Assert.ok(chromeWindowMock.gBrowser.loadTabs.calledWith(tabsToOpen, false, false));
|
||||
component.onOpenTabs(tabsToOpen, "tabshifted");
|
||||
Assert.ok(chromeWindowMock.gBrowser.loadTabs.calledWith(tabsToOpen, true, false));
|
||||
|
||||
sinon.spy(clipboardHelperMock, "copyString");
|
||||
component.onCopyTabLocation("uri");
|
||||
|
|
|
@ -220,6 +220,10 @@ if (typeof Mozilla == 'undefined') {
|
|||
});
|
||||
};
|
||||
|
||||
Mozilla.UITour.showNewTab = function() {
|
||||
_sendEvent('showNewTab');
|
||||
};
|
||||
|
||||
Mozilla.UITour.getConfiguration = function(configName, callback) {
|
||||
_sendEvent('getConfiguration', {
|
||||
callbackID: _waitForCallback(callback),
|
||||
|
|
|
@ -527,6 +527,11 @@ this.UITour = {
|
|||
break;
|
||||
}
|
||||
|
||||
case "showNewTab": {
|
||||
this.showNewTab(window, browser);
|
||||
break;
|
||||
}
|
||||
|
||||
case "getConfiguration": {
|
||||
if (typeof data.configuration != "string") {
|
||||
log.warn("getConfiguration: No configuration option specified");
|
||||
|
@ -1744,6 +1749,10 @@ this.UITour = {
|
|||
}
|
||||
},
|
||||
|
||||
showNewTab: function(aWindow, aBrowser) {
|
||||
aWindow.openLinkIn("about:newtab", "current", {targetBrowser: aBrowser});
|
||||
},
|
||||
|
||||
hideAnnotationsForPanel: function(aEvent, aTargetPositionCallback) {
|
||||
let win = aEvent.target.ownerGlobal;
|
||||
let annotationElements = new Map([
|
||||
|
|
|
@ -16,6 +16,9 @@ skip-if = true # Bug 1113038 - Intermittent "Popup was opened"
|
|||
[browser_trackingProtection.js]
|
||||
skip-if = os == "linux" # Intermittent NS_ERROR_NOT_AVAILABLE [nsIUrlClassifierDBService.beginUpdate]
|
||||
tag = trackingprotection
|
||||
support-files =
|
||||
!/browser/base/content/test/general/benignPage.html
|
||||
!/browser/base/content/test/general/trackingPage.html
|
||||
[browser_trackingProtection_tour.js]
|
||||
tag = trackingprotection
|
||||
[browser_showMenu_controlCenter.js]
|
||||
|
@ -41,5 +44,6 @@ skip-if = true # Disabled due to frequent failures, bugs 1026310 and 1032137
|
|||
skip-if = true # Disabled pending removal of pocket UI Tour
|
||||
[browser_UITour_registerPageID.js]
|
||||
[browser_UITour_resetProfile.js]
|
||||
[browser_UITour_showNewTab.js]
|
||||
[browser_UITour_sync.js]
|
||||
[browser_UITour_toggleReaderMode.js]
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
"use strict";
|
||||
|
||||
var gTestTab;
|
||||
var gContentAPI;
|
||||
var gContentWindow;
|
||||
|
||||
add_task(setup_UITourTest);
|
||||
|
||||
// Test that we can switch to about:newtab
|
||||
add_UITour_task(function* test_aboutNewTab() {
|
||||
let newTabLoaded = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser, false, "about:newtab");
|
||||
info("Showing about:newtab");
|
||||
yield gContentAPI.showNewTab();
|
||||
info("Waiting for about:newtab to load");
|
||||
yield newTabLoaded;
|
||||
is(gBrowser.selectedBrowser.currentURI.spec, "about:newtab", "Loaded about:newtab");
|
||||
});
|
|
@ -8,3 +8,5 @@ ac_add_options --enable-artifact-builds
|
|||
ac_add_options --enable-artifact-build-symbols
|
||||
unset CC
|
||||
unset CXX
|
||||
unset RUSTC
|
||||
unset CARGO
|
||||
|
|
|
@ -11,5 +11,4 @@ ac_add_options --enable-verify-mar
|
|||
|
||||
mk_add_options MOZ_PGO=1
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
|
|
|
@ -19,6 +19,5 @@ export MOZ_PACKAGE_JSSHELL=1
|
|||
|
||||
ac_add_options --with-branding=browser/branding/nightly
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
|
|
|
@ -8,5 +8,7 @@ ac_add_options --enable-artifact-builds
|
|||
ac_add_options --enable-artifact-build-symbols
|
||||
unset CC
|
||||
unset CXX
|
||||
unset RUSTC
|
||||
unset CARGO
|
||||
|
||||
ac_add_options --enable-debug
|
||||
|
|
|
@ -10,6 +10,5 @@ STRIP_FLAGS="--strip-debug"
|
|||
|
||||
ac_add_options --with-branding=browser/branding/nightly
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
|
|
|
@ -18,5 +18,4 @@ mk_add_options MOZ_PGO=1
|
|||
# defines.sh during the beta cycle
|
||||
export BUILDING_RELEASE=1
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
|
|
|
@ -8,3 +8,5 @@ ac_add_options --enable-artifact-builds
|
|||
ac_add_options --enable-artifact-build-symbols
|
||||
unset CC
|
||||
unset CXX
|
||||
unset RUSTC
|
||||
unset CARGO
|
||||
|
|
|
@ -11,5 +11,4 @@ ac_add_options --enable-verify-mar
|
|||
|
||||
mk_add_options MOZ_PGO=1
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
|
|
|
@ -17,6 +17,5 @@ export MOZ_PACKAGE_JSSHELL=1
|
|||
|
||||
ac_add_options --with-branding=browser/branding/nightly
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
|
|
|
@ -8,6 +8,8 @@ ac_add_options --enable-artifact-builds
|
|||
ac_add_options --enable-artifact-build-symbols
|
||||
unset CC
|
||||
unset CXX
|
||||
unset RUSTC
|
||||
unset CARGO
|
||||
|
||||
ac_add_options --enable-debug
|
||||
|
||||
|
|
|
@ -29,6 +29,11 @@ CFLAGS="$CFLAGS -Wno-attributes"
|
|||
CPPFLAGS="$CPPFLAGS -Wno-attributes"
|
||||
CXXFLAGS="$CXXFLAGS -Wno-attributes"
|
||||
|
||||
# Override rust toolchain paths. In this build they're in $TOOLTOOL_DIR
|
||||
# instead of $topsrcdir as referenced by mozconfig.common.
|
||||
RUSTC=$TOOLTOOL_DIR/rustc/bin/rustc
|
||||
CARGO=$TOOLTOOL_DIR/rustc/bin/cargo
|
||||
|
||||
export PKG_CONFIG_LIBDIR=/usr/lib64/pkgconfig:/usr/share/pkgconfig
|
||||
. $topsrcdir/build/unix/mozconfig.gtk
|
||||
|
||||
|
|
|
@ -10,6 +10,5 @@ STRIP_FLAGS="--strip-debug"
|
|||
|
||||
ac_add_options --with-branding=browser/branding/nightly
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
|
|
|
@ -18,5 +18,4 @@ mk_add_options MOZ_PGO=1
|
|||
# defines.sh during the beta cycle
|
||||
export BUILDING_RELEASE=1
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
|
|
|
@ -10,6 +10,5 @@ fi
|
|||
ac_add_options --enable-official-branding
|
||||
ac_add_options --enable-verify-mar
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
|
|
|
@ -16,6 +16,5 @@ fi
|
|||
|
||||
ac_add_options --with-branding=browser/branding/nightly
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
|
|
|
@ -16,6 +16,5 @@ ac_add_options --enable-verify-mar
|
|||
# defines.sh during the beta cycle
|
||||
export BUILDING_RELEASE=1
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
|
|
|
@ -11,3 +11,5 @@ ac_add_options --enable-artifact-builds
|
|||
ac_add_options --enable-artifact-build-symbols
|
||||
unset CC
|
||||
unset CXX
|
||||
unset RUSTC
|
||||
unset CARGO
|
||||
|
|
|
@ -10,6 +10,5 @@ fi
|
|||
ac_add_options --enable-official-branding
|
||||
ac_add_options --enable-verify-mar
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
|
|
|
@ -19,6 +19,5 @@ export MOZ_PACKAGE_JSSHELL=1
|
|||
|
||||
ac_add_options --with-branding=browser/branding/nightly
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
|
|
|
@ -8,5 +8,7 @@ ac_add_options --enable-artifact-builds
|
|||
ac_add_options --enable-artifact-build-symbols
|
||||
unset CC
|
||||
unset CXX
|
||||
unset RUSTC
|
||||
unset CARGO
|
||||
|
||||
ac_add_options --enable-debug
|
||||
|
|
|
@ -16,6 +16,5 @@ fi
|
|||
|
||||
ac_add_options --with-branding=browser/branding/nightly
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
|
|
|
@ -10,7 +10,6 @@ ac_add_options --enable-dmd
|
|||
|
||||
ac_add_options --enable-clang-plugin
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
|
||||
|
|
|
@ -16,6 +16,5 @@ ac_add_options --enable-verify-mar
|
|||
# defines.sh during the beta cycle
|
||||
export BUILDING_RELEASE=1
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
|
|
|
@ -13,6 +13,4 @@ mk_add_options MOZ_PGO=1
|
|||
ac_add_options --enable-official-branding
|
||||
ac_add_options --enable-verify-mar
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
|
|
|
@ -12,8 +12,6 @@ ac_add_options --enable-optimize
|
|||
|
||||
. $topsrcdir/build/win32/mozconfig.vs-latest
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
. "$topsrcdir/build/mozconfig.clang-cl"
|
||||
|
|
|
@ -13,8 +13,6 @@ ac_add_options --enable-debug
|
|||
|
||||
. $topsrcdir/build/win32/mozconfig.vs-latest
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
. "$topsrcdir/build/mozconfig.clang-cl"
|
||||
|
|
|
@ -21,7 +21,5 @@ export MOZ_PACKAGE_JSSHELL=1
|
|||
|
||||
ac_add_options --with-branding=browser/branding/nightly
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
|
|
|
@ -12,8 +12,6 @@ ac_add_options --enable-clang-plugin
|
|||
|
||||
. $topsrcdir/build/win32/mozconfig.vs-latest
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
. "$topsrcdir/build/mozconfig.clang-cl"
|
||||
|
|
|
@ -6,7 +6,5 @@ ac_add_options --enable-verify-mar
|
|||
|
||||
ac_add_options --with-branding=browser/branding/nightly
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
|
|
|
@ -19,6 +19,4 @@ ac_add_options --enable-verify-mar
|
|||
# defines.sh during the beta cycle
|
||||
export BUILDING_RELEASE=1
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
|
|
|
@ -14,6 +14,4 @@ mk_add_options MOZ_PGO=1
|
|||
ac_add_options --enable-official-branding
|
||||
ac_add_options --enable-verify-mar
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
|
|
|
@ -14,8 +14,6 @@ ac_add_options --enable-optimize
|
|||
|
||||
. $topsrcdir/build/win64/mozconfig.vs-latest
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
. "$topsrcdir/build/mozconfig.clang-cl"
|
||||
|
|
|
@ -15,8 +15,6 @@ ac_add_options --enable-debug
|
|||
|
||||
. $topsrcdir/build/win64/mozconfig.vs-latest
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
. "$topsrcdir/build/mozconfig.clang-cl"
|
||||
|
|
|
@ -23,7 +23,5 @@ ac_add_options --with-branding=browser/branding/nightly
|
|||
|
||||
. $topsrcdir/build/win64/mozconfig.vs-latest
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
|
|
|
@ -7,7 +7,5 @@ ac_add_options --enable-verify-mar
|
|||
|
||||
ac_add_options --with-branding=browser/branding/nightly
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
. "$topsrcdir/build/mozconfig.cache"
|
||||
|
|
|
@ -20,6 +20,4 @@ ac_add_options --enable-verify-mar
|
|||
# defines.sh during the beta cycle
|
||||
export BUILDING_RELEASE=1
|
||||
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
|
|
|
@ -16,6 +16,14 @@
|
|||
"unpack": true
|
||||
},
|
||||
{
|
||||
"version": "rustc 1.14.0-beta.2 (e627a2e6e 2016-11-16) repack",
|
||||
"size": 96275316,
|
||||
"digest": "26c11e34df81f5d7ffafc3492df9c6821f644a2e2eda5cfbbcdb1ac23e4ee196007b417c862c60a97bbf66e4be9c801400990938cd3aefec19b1cf9eaf1a9b54",
|
||||
"algorithm": "sha512",
|
||||
"filename": "rustc.tar.xz",
|
||||
"unpack": true
|
||||
},
|
||||
{
|
||||
"size": 12072532,
|
||||
"digest": "3915f8ec396c56a8a92e6f9695b70f09ce9d1582359d1258e37e3fd43a143bc974410e4cfc27f500e095f34a8956206e0ebf799b7287f0f38def0d5e34ed71c9",
|
||||
"algorithm": "sha512",
|
||||
|
|
|
@ -16,6 +16,14 @@
|
|||
"unpack": true
|
||||
},
|
||||
{
|
||||
"version": "rustc 1.14.0-beta.2 (e627a2e6e 2016-11-16) repack",
|
||||
"size": 96275316,
|
||||
"digest": "26c11e34df81f5d7ffafc3492df9c6821f644a2e2eda5cfbbcdb1ac23e4ee196007b417c862c60a97bbf66e4be9c801400990938cd3aefec19b1cf9eaf1a9b54",
|
||||
"algorithm": "sha512",
|
||||
"filename": "rustc.tar.xz",
|
||||
"unpack": true
|
||||
},
|
||||
{
|
||||
"version": "sccache rev b21198a7183a2fe226ff49348b1c0b51bae9f4f8",
|
||||
"algorithm": "sha512",
|
||||
"visibility": "public",
|
||||
|
|
|
@ -16,6 +16,14 @@
|
|||
"unpack": true
|
||||
},
|
||||
{
|
||||
"version": "rustc 1.14.0-beta.2 (e627a2e6e 2016-11-16) repack",
|
||||
"size": 96275316,
|
||||
"digest": "26c11e34df81f5d7ffafc3492df9c6821f644a2e2eda5cfbbcdb1ac23e4ee196007b417c862c60a97bbf66e4be9c801400990938cd3aefec19b1cf9eaf1a9b54",
|
||||
"algorithm": "sha512",
|
||||
"filename": "rustc.tar.xz",
|
||||
"unpack": true
|
||||
},
|
||||
{
|
||||
"version": "sccache rev b21198a7183a2fe226ff49348b1c0b51bae9f4f8",
|
||||
"algorithm": "sha512",
|
||||
"filename": "sccache2.tar.xz",
|
||||
|
|
|
@ -16,6 +16,14 @@
|
|||
"unpack": true
|
||||
},
|
||||
{
|
||||
"version": "rustc 1.14.0-beta.2 (e627a2e6e 2016-11-16) repack",
|
||||
"size": 96275316,
|
||||
"digest": "26c11e34df81f5d7ffafc3492df9c6821f644a2e2eda5cfbbcdb1ac23e4ee196007b417c862c60a97bbf66e4be9c801400990938cd3aefec19b1cf9eaf1a9b54",
|
||||
"algorithm": "sha512",
|
||||
"filename": "rustc.tar.xz",
|
||||
"unpack": true
|
||||
},
|
||||
{
|
||||
"size": 12072532,
|
||||
"digest": "3915f8ec396c56a8a92e6f9695b70f09ce9d1582359d1258e37e3fd43a143bc974410e4cfc27f500e095f34a8956206e0ebf799b7287f0f38def0d5e34ed71c9",
|
||||
"algorithm": "sha512",
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
},
|
||||
{
|
||||
"version": "rustc 1.14.0-beta.2 (e627a2e6e 2016-11-16) repack",
|
||||
"size": 96275316,
|
||||
"digest": "26c11e34df81f5d7ffafc3492df9c6821f644a2e2eda5cfbbcdb1ac23e4ee196007b417c862c60a97bbf66e4be9c801400990938cd3aefec19b1cf9eaf1a9b54",
|
||||
"size": 94830820,
|
||||
"digest": "6f2a1cf325d957f0328d2d853fc07944a857e872f6e44df15f6ebb45c032c0ebbf52f56c872bc72927ebcdd830002d759dd92e8fc90048b52c07058955c69c4c",
|
||||
"algorithm": "sha512",
|
||||
"filename": "rustc.tar.xz",
|
||||
"unpack": true
|
||||
|
|
|
@ -8,6 +8,14 @@
|
|||
"unpack": true
|
||||
},
|
||||
{
|
||||
"version": "rustc 1.13.0 (2c6933acc 2016-11-07) repack",
|
||||
"size": 104593379,
|
||||
"digest": "9cbc4a6d4d647dd79629e97c0e7b177443d30e669ccd761ab520728d8c2b7e1cc4ab38ec444c1957649338c4088861db3bfe4f840ec3fedcc01f9f1a74da200a",
|
||||
"algorithm": "sha512",
|
||||
"filename": "rustc.tar.bz2",
|
||||
"unpack": true
|
||||
},
|
||||
{
|
||||
"version": "sccache rev b21198a7183a2fe226ff49348b1c0b51bae9f4f8",
|
||||
"algorithm": "sha512",
|
||||
"visibility": "public",
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
# 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/.
|
||||
|
||||
option('--enable-rust', help='Include Rust language sources')
|
||||
option('--disable-rust', help='Don\'t include Rust language sources')
|
||||
|
||||
@depends('--enable-rust')
|
||||
def rust_compiler_names(value):
|
||||
|
|
|
@ -972,4 +972,3 @@ def is_windows(target):
|
|||
return target.kernel == 'WINNT'
|
||||
|
||||
include('windows.configure', when=is_windows)
|
||||
include('rust.configure')
|
||||
|
|
|
@ -24,3 +24,4 @@ MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-0}
|
|||
ac_add_options --enable-js-shell
|
||||
|
||||
. "$topsrcdir/build/mozconfig.automation"
|
||||
. "$topsrcdir/build/mozconfig.rust"
|
||||
|
|
|
@ -1,10 +1,5 @@
|
|||
# Options to enable rust in automation builds.
|
||||
|
||||
# Tell configure to use the tooltool rustc.
|
||||
# Assume this is compiled with --enable-rpath so we don't
|
||||
# have to set LD_LIBRARY_PATH.
|
||||
RUSTC="$topsrcdir/rustc/bin/rustc"
|
||||
CARGO="$topsrcdir/rustc/bin/cargo"
|
||||
|
||||
# Enable rust in the build.
|
||||
ac_add_options --enable-rust
|
||||
|
|
|
@ -211,10 +211,12 @@ MarkupContainer.prototype = {
|
|||
}
|
||||
|
||||
if (this.showExpander) {
|
||||
this.elt.classList.add("expandable");
|
||||
this.expander.style.visibility = "visible";
|
||||
// Update accessibility expanded state.
|
||||
this.tagLine.setAttribute("aria-expanded", this.expanded);
|
||||
} else {
|
||||
this.elt.classList.remove("expandable");
|
||||
this.expander.style.visibility = "hidden";
|
||||
// No need for accessible expanded state indicator when expander is not
|
||||
// shown.
|
||||
|
|
|
@ -31,7 +31,7 @@ function FilterButtons({
|
|||
return div({ id: "requests-menu-filter-buttons" }, buttons);
|
||||
}
|
||||
|
||||
FilterButtons.PropTypes = {
|
||||
FilterButtons.propTypes = {
|
||||
state: PropTypes.object.isRequired,
|
||||
triggerFilterType: PropTypes.func.iRequired,
|
||||
};
|
||||
|
|
|
@ -29,6 +29,7 @@ const {
|
|||
const { createFactory } = require("devtools/client/shared/vendor/react");
|
||||
const ReactDOM = require("devtools/client/shared/vendor/react-dom");
|
||||
const Provider = createFactory(require("devtools/client/shared/vendor/react-redux").Provider);
|
||||
const PreviewPanel = createFactory(require("./shared/components/preview-panel"));
|
||||
const SecurityPanel = createFactory(require("./shared/components/security-panel"));
|
||||
const TimingsPanel = createFactory(require("./shared/components/timings-panel"));
|
||||
|
||||
|
@ -93,6 +94,13 @@ DetailsView.prototype = {
|
|||
initialize: function (store) {
|
||||
dumpn("Initializing the DetailsView");
|
||||
|
||||
this._previewPanelNode = $("#react-preview-tabpanel-hook");
|
||||
|
||||
ReactDOM.render(Provider(
|
||||
{ store },
|
||||
PreviewPanel()
|
||||
), this._previewPanelNode);
|
||||
|
||||
this._securityPanelNode = $("#react-security-tabpanel-hook");
|
||||
|
||||
ReactDOM.render(Provider(
|
||||
|
@ -152,6 +160,7 @@ DetailsView.prototype = {
|
|||
*/
|
||||
destroy: function () {
|
||||
dumpn("Destroying the DetailsView");
|
||||
ReactDOM.unmountComponentAtNode(this._previewPanelNode);
|
||||
ReactDOM.unmountComponentAtNode(this._securityPanelNode);
|
||||
ReactDOM.unmountComponentAtNode(this._timingsPanelNode);
|
||||
this.sidebar.destroy();
|
||||
|
@ -263,10 +272,6 @@ DetailsView.prototype = {
|
|||
case 3:
|
||||
yield view._setResponseBody(src.url, src.responseContent);
|
||||
break;
|
||||
// "Preview"
|
||||
case 6:
|
||||
yield view._setHtmlPreview(src.responseContent);
|
||||
break;
|
||||
}
|
||||
viewState.updating[tab] = false;
|
||||
}).then(() => {
|
||||
|
@ -697,30 +702,6 @@ DetailsView.prototype = {
|
|||
window.emit(EVENTS.RESPONSE_BODY_DISPLAYED);
|
||||
}),
|
||||
|
||||
/**
|
||||
* Sets the preview for HTML responses shown in this view.
|
||||
*
|
||||
* @param object response
|
||||
* The message received from the server.
|
||||
* @return object
|
||||
* A promise that is resolved when the html preview is rendered.
|
||||
*/
|
||||
_setHtmlPreview: Task.async(function* (response) {
|
||||
if (!response) {
|
||||
return promise.resolve();
|
||||
}
|
||||
let { text } = response.content;
|
||||
let responseBody = yield gNetwork.getString(text);
|
||||
|
||||
// Always disable JS when previewing HTML responses.
|
||||
let iframe = $("#response-preview");
|
||||
iframe.contentDocument.docShell.allowJavascript = false;
|
||||
iframe.contentDocument.documentElement.innerHTML = responseBody;
|
||||
|
||||
window.emit(EVENTS.RESPONSE_HTML_PREVIEW_DISPLAYED);
|
||||
return undefined;
|
||||
}),
|
||||
|
||||
_dataSrc: null,
|
||||
_headers: null,
|
||||
_cookies: null,
|
||||
|
|
|
@ -58,9 +58,6 @@ const EVENTS = {
|
|||
// When the response body is displayed in the UI.
|
||||
RESPONSE_BODY_DISPLAYED: "NetMonitor:ResponseBodyAvailable",
|
||||
|
||||
// When the html response preview is displayed in the UI.
|
||||
RESPONSE_HTML_PREVIEW_DISPLAYED: "NetMonitor:ResponseHtmlPreviewAvailable",
|
||||
|
||||
// When the image response thumbnail is displayed in the UI.
|
||||
RESPONSE_IMAGE_THUMBNAIL_DISPLAYED:
|
||||
"NetMonitor:ResponseImageThumbnailAvailable",
|
||||
|
|
|
@ -272,9 +272,8 @@
|
|||
</tabpanel>
|
||||
<tabpanel id="preview-tabpanel"
|
||||
class="tabpanel-content">
|
||||
<html:iframe id="response-preview"
|
||||
frameborder="0"
|
||||
sandbox=""/>
|
||||
<html:div xmlns="http://www.w3.org/1999/xhtml"
|
||||
id="react-preview-tabpanel-hook"/>
|
||||
</tabpanel>
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
|
|
|
@ -210,15 +210,16 @@ RequestsMenuView.prototype = {
|
|||
const action = Actions.updateRequest(id, data, true);
|
||||
yield this.store.dispatch(action);
|
||||
|
||||
const { responseContent, requestPostData } = action.data;
|
||||
let { responseContent, requestPostData } = action.data;
|
||||
|
||||
// Fetch response data if the response is an image (to display thumbnail)
|
||||
if (responseContent && responseContent.content) {
|
||||
let request = getRequestById(this.store.getState(), action.id);
|
||||
let { text, encoding } = responseContent.content;
|
||||
if (request) {
|
||||
let { mimeType } = request;
|
||||
|
||||
// Fetch response data if the response is an image (to display thumbnail)
|
||||
if (mimeType.includes("image/")) {
|
||||
let { text, encoding } = responseContent.content;
|
||||
let responseBody = yield gNetwork.getString(text);
|
||||
const dataUri = formDataURI(mimeType, encoding, responseBody);
|
||||
yield this.store.dispatch(Actions.updateRequest(
|
||||
|
@ -227,6 +228,16 @@ RequestsMenuView.prototype = {
|
|||
true
|
||||
));
|
||||
window.emit(EVENTS.RESPONSE_IMAGE_THUMBNAIL_DISPLAYED);
|
||||
// Fetch response text only if the response is html, but not all text/*
|
||||
} else if (mimeType.includes("text/html") && typeof text !== "string") {
|
||||
let responseBody = yield gNetwork.getString(text);
|
||||
responseContent.content.text = responseBody;
|
||||
responseContent = Object.assign({}, responseContent);
|
||||
yield this.store.dispatch(Actions.updateRequest(
|
||||
action.id,
|
||||
{ responseContent },
|
||||
true
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
DevToolsModules(
|
||||
'preview-panel.js',
|
||||
'security-panel.js',
|
||||
'timings-panel.js',
|
||||
)
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
/* 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 { DOM, PropTypes } = require("devtools/client/shared/vendor/react");
|
||||
const { connect } = require("devtools/client/shared/vendor/react-redux");
|
||||
const { getSelectedRequest } = require("../../selectors/index");
|
||||
|
||||
const { iframe } = DOM;
|
||||
|
||||
/*
|
||||
* Preview panel component
|
||||
* Display HTML content within a sandbox enabled iframe
|
||||
*/
|
||||
function PreviewPanel({
|
||||
srcDoc = "",
|
||||
}) {
|
||||
return iframe({
|
||||
id: "response-preview",
|
||||
sandbox: "",
|
||||
srcDoc,
|
||||
});
|
||||
}
|
||||
|
||||
PreviewPanel.displayName = "PreviewPanel";
|
||||
|
||||
PreviewPanel.propTypes = {
|
||||
srcDoc: PropTypes.string,
|
||||
};
|
||||
|
||||
module.exports = connect(
|
||||
(state) => {
|
||||
const selectedRequest = getSelectedRequest(state);
|
||||
const htmlBody = selectedRequest && selectedRequest.responseContent ?
|
||||
selectedRequest.responseContent.content.text : "";
|
||||
const srcDoc = typeof htmlBody === "string" ? htmlBody : "";
|
||||
|
||||
return {
|
||||
srcDoc,
|
||||
};
|
||||
}
|
||||
)(PreviewPanel);
|
|
@ -40,8 +40,9 @@ add_task(function* () {
|
|||
is($("#preview-tab").hidden, false,
|
||||
"The preview tab should be visible now.");
|
||||
|
||||
yield monitor.panelWin.once(EVENTS.RESPONSE_HTML_PREVIEW_DISPLAYED);
|
||||
let iframe = $("#response-preview");
|
||||
yield once(iframe, "DOMContentLoaded");
|
||||
|
||||
ok(iframe,
|
||||
"There should be a response preview iframe available.");
|
||||
ok(iframe.contentDocument,
|
||||
|
|
|
@ -204,6 +204,22 @@ ul.children + .tag-line::before {
|
|||
display: inline;
|
||||
}
|
||||
|
||||
.expandable.collapsed .close::before {
|
||||
/* Display an ellipsis character in collapsed nodes that can be expanded. */
|
||||
content: "\2026";
|
||||
display: inline-block;
|
||||
width: 12px;
|
||||
height: 8px;
|
||||
margin: 0 2px;
|
||||
line-height: 3px;
|
||||
color: var(--theme-body-color-inactive);;
|
||||
border-radius: 3px;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/* Hide HTML void elements (img, hr, br, …) closing tag when the element is not
|
||||
* expanded (it can be if it has pseudo-elements attached) */
|
||||
.child.collapsed > .tag-line .void-element .close {
|
||||
|
@ -326,7 +342,8 @@ ul.children + .tag-line::before {
|
|||
.theme-selected ~ .editor .theme-fg-color4,
|
||||
.theme-selected ~ .editor .theme-fg-color5,
|
||||
.theme-selected ~ .editor .theme-fg-color6,
|
||||
.theme-selected ~ .editor .theme-fg-color7 {
|
||||
.theme-selected ~ .editor .theme-fg-color7,
|
||||
.theme-selected ~ .editor .close::before {
|
||||
color: var(--theme-selection-color);
|
||||
}
|
||||
|
||||
|
|
|
@ -742,7 +742,9 @@
|
|||
}
|
||||
|
||||
#response-preview {
|
||||
border: none;
|
||||
display: -moz-box;
|
||||
-moz-box-orient: vertical;
|
||||
-moz-box-flex: 1;
|
||||
}
|
||||
|
||||
|
@ -1138,6 +1140,7 @@
|
|||
* FIXME: normal html block element cannot fill outer XUL element
|
||||
* This workaround should be removed after sidebar is migrated to react
|
||||
*/
|
||||
#react-preview-tabpanel-hook,
|
||||
#react-security-tabpanel-hook,
|
||||
#react-timings-tabpanel-hook {
|
||||
display: -moz-box;
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
#include "nsCSSParser.h"
|
||||
#include "nsCSSProps.h"
|
||||
#include "nsIMediaList.h"
|
||||
#include "nsMediaList.h"
|
||||
#include "nsRuleNode.h"
|
||||
#include "nsRuleData.h"
|
||||
|
||||
|
|
|
@ -541,7 +541,6 @@ DOMInterfaces = {
|
|||
|
||||
'MediaList': {
|
||||
'nativeType': 'nsMediaList',
|
||||
'headerFile': 'nsIMediaList.h',
|
||||
},
|
||||
|
||||
'MediaKeys' : {
|
||||
|
|
|
@ -1339,6 +1339,8 @@ HTMLInputElement::Clone(mozilla::dom::NodeInfo* aNodeInfo, nsINode** aResult) co
|
|||
// We no longer have our original checked state. Set our
|
||||
// checked state on the clone.
|
||||
it->DoSetChecked(mChecked, false, true);
|
||||
// Then tell DoneCreatingElement() not to overwrite:
|
||||
it->mShouldInitChecked = false;
|
||||
}
|
||||
break;
|
||||
case VALUE_MODE_DEFAULT:
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
#include "nsGkAtoms.h"
|
||||
|
||||
#include "nsIMediaList.h"
|
||||
#include "nsMediaList.h"
|
||||
#include "nsCSSParser.h"
|
||||
#include "nsHostObjectProtocolHandler.h"
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ skip-if = toolkit == 'cocoa' # disabled due to hangs, see changeset 6852e7c47edf
|
|||
[test_CrashService_crash.html]
|
||||
skip-if = !(crashreporter && !e10s && (toolkit == 'gtk2' || toolkit == 'gtk3' || toolkit == 'cocoa' || toolkit == 'windows'))
|
||||
[test_temporaryfile_stream.html]
|
||||
skip-if = !e10s
|
||||
support-files =
|
||||
blob_verify.sjs
|
||||
!/dom/canvas/test/captureStream_common.js
|
||||
|
|
|
@ -177,55 +177,24 @@ VideoData::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const
|
|||
return size;
|
||||
}
|
||||
|
||||
/* static */
|
||||
already_AddRefed<VideoData>
|
||||
VideoData::ShallowCopyUpdateDuration(const VideoData* aOther,
|
||||
int64_t aDuration)
|
||||
void
|
||||
VideoData::UpdateDuration(int64_t aDuration)
|
||||
{
|
||||
RefPtr<VideoData> v = new VideoData(aOther->mOffset,
|
||||
aOther->mTime,
|
||||
aDuration,
|
||||
aOther->mKeyframe,
|
||||
aOther->mTimecode,
|
||||
aOther->mDisplay,
|
||||
aOther->mFrameID);
|
||||
v->mImage = aOther->mImage;
|
||||
return v.forget();
|
||||
MOZ_ASSERT(aDuration >= 0);
|
||||
|
||||
mDuration = aDuration;
|
||||
}
|
||||
|
||||
/* static */
|
||||
already_AddRefed<VideoData>
|
||||
VideoData::ShallowCopyUpdateTimestamp(const VideoData* aOther,
|
||||
int64_t aTimestamp)
|
||||
void
|
||||
VideoData::UpdateTimestamp(int64_t aTimestamp)
|
||||
{
|
||||
NS_ENSURE_TRUE(aOther, nullptr);
|
||||
RefPtr<VideoData> v = new VideoData(aOther->mOffset,
|
||||
aTimestamp,
|
||||
aOther->GetEndTime() - aTimestamp,
|
||||
aOther->mKeyframe,
|
||||
aOther->mTimecode,
|
||||
aOther->mDisplay,
|
||||
aOther->mFrameID);
|
||||
v->mImage = aOther->mImage;
|
||||
return v.forget();
|
||||
}
|
||||
MOZ_ASSERT(aTimestamp >= 0);
|
||||
|
||||
/* static */
|
||||
already_AddRefed<VideoData>
|
||||
VideoData::ShallowCopyUpdateTimestampAndDuration(const VideoData* aOther,
|
||||
int64_t aTimestamp,
|
||||
int64_t aDuration)
|
||||
{
|
||||
NS_ENSURE_TRUE(aOther, nullptr);
|
||||
RefPtr<VideoData> v = new VideoData(aOther->mOffset,
|
||||
aTimestamp,
|
||||
aDuration,
|
||||
aOther->mKeyframe,
|
||||
aOther->mTimecode,
|
||||
aOther->mDisplay,
|
||||
aOther->mFrameID);
|
||||
v->mImage = aOther->mImage;
|
||||
return v.forget();
|
||||
int64_t updatedDuration = GetEndTime() - aTimestamp;
|
||||
MOZ_ASSERT(updatedDuration >= 0);
|
||||
|
||||
mTime = aTimestamp;
|
||||
mDuration = updatedDuration;
|
||||
}
|
||||
|
||||
/* static */
|
||||
|
|
|
@ -493,29 +493,6 @@ public:
|
|||
int64_t aTimecode,
|
||||
const IntRect& aPicture);
|
||||
|
||||
// Creates a new VideoData identical to aOther, but with a different
|
||||
// specified duration. All data from aOther is copied into the new
|
||||
// VideoData. The new VideoData's mImage field holds a reference to
|
||||
// aOther's mImage, i.e. the Image is not copied. This function is useful
|
||||
// in reader backends that can't determine the duration of a VideoData
|
||||
// until the next frame is decoded, i.e. it's a way to change the const
|
||||
// duration field on a VideoData.
|
||||
static already_AddRefed<VideoData> ShallowCopyUpdateDuration(const VideoData* aOther,
|
||||
int64_t aDuration);
|
||||
|
||||
// Creates a new VideoData identical to aOther, but with a different
|
||||
// specified timestamp. All data from aOther is copied into the new
|
||||
// VideoData, as ShallowCopyUpdateDuration() does.
|
||||
static already_AddRefed<VideoData> ShallowCopyUpdateTimestamp(const VideoData* aOther,
|
||||
int64_t aTimestamp);
|
||||
|
||||
// Creates a new VideoData identical to aOther, but with a different
|
||||
// specified timestamp and duration. All data from aOther is copied
|
||||
// into the new VideoData, as ShallowCopyUpdateDuration() does.
|
||||
static already_AddRefed<VideoData>
|
||||
ShallowCopyUpdateTimestampAndDuration(const VideoData* aOther, int64_t aTimestamp,
|
||||
int64_t aDuration);
|
||||
|
||||
// Initialize PlanarYCbCrImage. Only When aCopyData is true,
|
||||
// video data is copied to PlanarYCbCrImage.
|
||||
static bool SetVideoDataToImage(PlanarYCbCrImage* aVideoImage,
|
||||
|
@ -548,6 +525,9 @@ public:
|
|||
void MarkSentToCompositor();
|
||||
bool IsSentToCompositor() { return mSentToCompositor; }
|
||||
|
||||
void UpdateDuration(int64_t aDuration);
|
||||
void UpdateTimestamp(int64_t aTimestamp);
|
||||
|
||||
protected:
|
||||
~VideoData();
|
||||
|
||||
|
|
|
@ -70,7 +70,7 @@ public:
|
|||
MozPromise<RefPtr<MetadataHolder>, MediaResult, IsExclusive>;
|
||||
using MediaDataPromise =
|
||||
MozPromise<RefPtr<MediaData>, MediaResult, IsExclusive>;
|
||||
using SeekPromise = MozPromise<media::TimeUnit, nsresult, IsExclusive>;
|
||||
using SeekPromise = MozPromise<media::TimeUnit, MediaResult, IsExclusive>;
|
||||
|
||||
// Note that, conceptually, WaitForData makes sense in a non-exclusive sense.
|
||||
// But in the current architecture it's only ever used exclusively (by MDSM),
|
||||
|
|
|
@ -1060,8 +1060,8 @@ private:
|
|||
[this] (media::TimeUnit aUnit) {
|
||||
OnSeekResolved(aUnit);
|
||||
},
|
||||
[this] (nsresult aResult) {
|
||||
OnSeekRejected(aResult);
|
||||
[this] (const MediaResult& aError) {
|
||||
OnSeekRejected(aError);
|
||||
}));
|
||||
}
|
||||
|
||||
|
@ -1110,11 +1110,11 @@ private:
|
|||
}
|
||||
}
|
||||
|
||||
void OnSeekRejected(nsresult aResult) {
|
||||
void OnSeekRejected(const MediaResult& aError) {
|
||||
mSeekRequest.Complete();
|
||||
|
||||
MOZ_ASSERT(NS_FAILED(aResult), "Cancels should also disconnect mSeekRequest");
|
||||
OnSeekTaskRejected(aResult);
|
||||
MOZ_ASSERT(NS_FAILED(aError), "Cancels should also disconnect mSeekRequest");
|
||||
OnSeekTaskRejected(aError);
|
||||
}
|
||||
|
||||
void RequestAudioData()
|
||||
|
@ -1242,10 +1242,8 @@ private:
|
|||
} else {
|
||||
if (target >= video->mTime && video->GetEndTime() >= target) {
|
||||
// The seek target lies inside this frame's time slice. Adjust the frame's
|
||||
// start time to match the seek target. We do this by replacing the
|
||||
// first frame with a shallow copy which has the new timestamp.
|
||||
RefPtr<VideoData> temp = VideoData::ShallowCopyUpdateTimestamp(video.get(), target);
|
||||
video = temp;
|
||||
// start time to match the seek target.
|
||||
video->UpdateTimestamp(target);
|
||||
}
|
||||
mFirstVideoFrameAfterSeek = nullptr;
|
||||
|
||||
|
@ -1292,7 +1290,7 @@ private:
|
|||
SeekCompleted();
|
||||
}
|
||||
|
||||
void OnSeekTaskRejected(MediaResult aError)
|
||||
void OnSeekTaskRejected(const MediaResult& aError)
|
||||
{
|
||||
if (mIsAudioQueueFinished) {
|
||||
AudioQueue().Finish();
|
||||
|
|
|
@ -141,9 +141,8 @@ bool AndroidMediaReader::DecodeVideoFrame(bool &aKeyframeSkip,
|
|||
int64_t durationUs;
|
||||
mPlugin->GetDuration(mPlugin, &durationUs);
|
||||
durationUs = std::max<int64_t>(durationUs - mLastVideoFrame->mTime, 0);
|
||||
RefPtr<VideoData> data = VideoData::ShallowCopyUpdateDuration(mLastVideoFrame,
|
||||
durationUs);
|
||||
mVideoQueue.Push(data);
|
||||
mLastVideoFrame->UpdateDuration(durationUs);
|
||||
mVideoQueue.Push(mLastVideoFrame);
|
||||
mLastVideoFrame = nullptr;
|
||||
}
|
||||
return false;
|
||||
|
@ -261,7 +260,7 @@ bool AndroidMediaReader::DecodeVideoFrame(bool &aKeyframeSkip,
|
|||
// timestamp of the previous frame. We can then return the previously
|
||||
// decoded frame, and it will have a valid timestamp.
|
||||
int64_t duration = v->mTime - mLastVideoFrame->mTime;
|
||||
mLastVideoFrame = VideoData::ShallowCopyUpdateDuration(mLastVideoFrame, duration);
|
||||
mLastVideoFrame->UpdateDuration(duration);
|
||||
|
||||
// We have the start time of the next frame, so we can push the previous
|
||||
// frame into the queue, except if the end time is below the threshold,
|
||||
|
|
|
@ -1231,8 +1231,13 @@ HTMLEditor::RemoveInlinePropertyImpl(nsIAtom* aProperty,
|
|||
if (!cancel && !handled) {
|
||||
// Loop through the ranges in the selection
|
||||
uint32_t rangeCount = selection->RangeCount();
|
||||
// Since ranges might be modified by SplitStyleAboveRange, we need hold
|
||||
// current ranges
|
||||
AutoTArray<OwningNonNull<nsRange>, 8> arrayOfRanges;
|
||||
for (uint32_t rangeIdx = 0; rangeIdx < rangeCount; ++rangeIdx) {
|
||||
OwningNonNull<nsRange> range = *selection->GetRangeAt(rangeIdx);
|
||||
arrayOfRanges.AppendElement(*selection->GetRangeAt(rangeIdx));
|
||||
}
|
||||
for (auto& range : arrayOfRanges) {
|
||||
if (aProperty == nsGkAtoms::name) {
|
||||
// Promote range if it starts or end in a named anchor and we want to
|
||||
// remove named anchors
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<script>
|
||||
addEventListener('DOMContentLoaded', function(){
|
||||
document.documentElement.className = 'lizard';
|
||||
setTimeout(function(){
|
||||
document.execCommand('selectAll', false, null);
|
||||
document.designMode = 'on';
|
||||
document.execCommand('removeformat', false, null);
|
||||
}, 0);
|
||||
});
|
||||
</script>
|
||||
<style>
|
||||
.lizard{
|
||||
-webkit-user-select:all;
|
||||
}
|
||||
*{
|
||||
position:fixed;
|
||||
display:table-column;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<span>
|
||||
<span contenteditable>
|
||||
<span class=lizard></span>
|
||||
<span class=lizard></span>
|
||||
<span />
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</body>
|
||||
</html>
|
|
@ -69,4 +69,5 @@ load 1158651.html
|
|||
load 1244894.xhtml
|
||||
load 1264921.html
|
||||
load 1272490.html
|
||||
load 1317704.html
|
||||
load 1317718.html
|
||||
|
|
|
@ -215,6 +215,7 @@ CompositorD3D9::SetRenderTarget(CompositingRenderTarget *aRenderTarget)
|
|||
{
|
||||
MOZ_ASSERT(aRenderTarget && mDeviceManager);
|
||||
RefPtr<CompositingRenderTargetD3D9> oldRT = mCurrentRT;
|
||||
Unused << oldRT;
|
||||
mCurrentRT = static_cast<CompositingRenderTargetD3D9*>(aRenderTarget);
|
||||
mCurrentRT->BindRenderTarget(device());
|
||||
PrepareViewport(mCurrentRT->GetSize());
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include "MainThreadUtils.h"
|
||||
#include "mozilla/Attributes.h"
|
||||
#include "mozilla/DebugOnly.h"
|
||||
#include "mozilla/Unused.h"
|
||||
#include "mozilla/mscom/COMApartmentRegion.h"
|
||||
#include "mozilla/mscom/Utils.h"
|
||||
#include "nsCOMPtr.h"
|
||||
|
@ -33,6 +34,7 @@ public:
|
|||
MOZ_ASSERT(NS_IsMainThread());
|
||||
nsCOMPtr<nsIThread> thread = GetMTAThread();
|
||||
MOZ_ASSERT(thread);
|
||||
Unused << thread;
|
||||
}
|
||||
|
||||
template <typename FuncT>
|
||||
|
|
|
@ -40,7 +40,7 @@ WeakReferenceSupport::QueryInterface(REFIID riid, void** ppv)
|
|||
*ppv = nullptr;
|
||||
|
||||
// Raise the refcount for stabilization purposes during aggregation
|
||||
RefPtr<IUnknown> kungFuDeathGrip(static_cast<IUnknown*>(this));
|
||||
RefPtr<IUnknown> kungFuDeathGrip(this);
|
||||
|
||||
if (riid == IID_IUnknown || riid == IID_IWeakReferenceSource) {
|
||||
punk = static_cast<IUnknown*>(this);
|
||||
|
|
|
@ -178,6 +178,14 @@ else:
|
|||
env.setdefault('CC', compiler)
|
||||
env.setdefault('CXX', cxx)
|
||||
|
||||
rust_dir = os.path.join(DIR.tooltool, 'rustc')
|
||||
if os.path.exists(os.path.join(rust_dir, 'bin', 'rustc')):
|
||||
env.setdefault('RUSTC', os.path.join(rust_dir, 'bin', 'rustc'))
|
||||
env.setdefault('CARGO', os.path.join(rust_dir, 'bin', 'cargo'))
|
||||
else:
|
||||
env.setdefault('RUSTC', 'rustc')
|
||||
env.setdefault('CARGO', 'cargo')
|
||||
|
||||
if platform.system() == 'Darwin':
|
||||
os.environ['SOURCE'] = DIR.source
|
||||
set_vars_from_script(os.path.join(DIR.scripts, 'macbuildenv.sh'),
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
#include "mozilla/css/GroupRule.h"
|
||||
#include "mozilla/css/ImportRule.h"
|
||||
#include "nsCSSRules.h"
|
||||
#include "nsIMediaList.h"
|
||||
#include "nsMediaList.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsPresContext.h"
|
||||
#include "nsGkAtoms.h"
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
#include "nsXULPrototypeCache.h"
|
||||
#endif
|
||||
|
||||
#include "nsIMediaList.h"
|
||||
#include "nsMediaList.h"
|
||||
#include "nsIDOMStyleSheet.h"
|
||||
#include "nsError.h"
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include "mozilla/dom/MediaQueryList.h"
|
||||
#include "nsPresContext.h"
|
||||
#include "nsIMediaList.h"
|
||||
#include "nsMediaList.h"
|
||||
#include "nsCSSParser.h"
|
||||
#include "nsIDocument.h"
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#include "mozilla/StaticPtr.h"
|
||||
#include "nsCSSRuleProcessor.h"
|
||||
#include "nsExpirationTracker.h"
|
||||
#include "nsIMediaList.h"
|
||||
#include "nsMediaList.h"
|
||||
#include "nsIMemoryReporter.h"
|
||||
#include "nsTArray.h"
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#include "mozilla/CSSStyleSheet.h"
|
||||
|
||||
#include "mozAutoDocUpdate.h"
|
||||
#include "nsIMediaList.h"
|
||||
#include "nsMediaList.h"
|
||||
#include "nsNullPrincipal.h"
|
||||
|
||||
namespace mozilla {
|
||||
|
|
|
@ -80,8 +80,8 @@ public:
|
|||
typedef mozilla::LookAndFeel LookAndFeel;
|
||||
nscolor DefaultColor()
|
||||
{
|
||||
SERVO_DEFAULT(LookAndFeel::GetColor(LookAndFeel::eColorID_WindowForeground,
|
||||
NS_RGB(0x00, 0x00, 0x00)));
|
||||
// Workaround Bug 1323404
|
||||
SERVO_DEFAULT(NS_RGB(0x00, 0x00, 0x00));
|
||||
return mPresContext->DefaultColor();
|
||||
}
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
#include "nsNameSpaceManager.h"
|
||||
#include "nsXMLNameSpaceMap.h"
|
||||
#include "nsError.h"
|
||||
#include "nsIMediaList.h"
|
||||
#include "nsMediaList.h"
|
||||
#include "nsStyleUtil.h"
|
||||
#include "nsIPrincipal.h"
|
||||
#include "nsICSSUnprefixingService.h"
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
#include "nsAttrName.h"
|
||||
#include "nsTArray.h"
|
||||
#include "nsContentUtils.h"
|
||||
#include "nsIMediaList.h"
|
||||
#include "nsMediaList.h"
|
||||
#include "nsCSSRules.h"
|
||||
#include "nsStyleSet.h"
|
||||
#include "mozilla/dom/Element.h"
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include "mozilla/SheetType.h"
|
||||
#include "mozilla/UniquePtr.h"
|
||||
#include "nsExpirationTracker.h"
|
||||
#include "nsIMediaList.h"
|
||||
#include "nsMediaList.h"
|
||||
#include "nsIStyleRuleProcessor.h"
|
||||
#include "nsRuleWalker.h"
|
||||
#include "nsTArray.h"
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIDOMCSSStyleSheet.h"
|
||||
#include "nsIMediaList.h"
|
||||
#include "nsMediaList.h"
|
||||
#include "mozilla/dom/CSSRuleList.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsPresContext.h"
|
||||
|
|
|
@ -9,8 +9,8 @@
|
|||
* @media rules
|
||||
*/
|
||||
|
||||
#ifndef nsIMediaList_h_
|
||||
#define nsIMediaList_h_
|
||||
#ifndef nsMediaList_h_
|
||||
#define nsMediaList_h_
|
||||
|
||||
#include "nsAutoPtr.h"
|
||||
#include "nsIDOMMediaList.h"
|
||||
|
@ -315,4 +315,4 @@ protected:
|
|||
// changes
|
||||
mozilla::CSSStyleSheet* mStyleSheet;
|
||||
};
|
||||
#endif /* !defined(nsIMediaList_h_) */
|
||||
#endif /* !defined(nsMediaList_h_) */
|
|
@ -233,6 +233,7 @@ final class JellyBeanAsyncCodec implements AsyncCodec {
|
|||
} else if (result == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
|
||||
mOutputBuffers = mCodec.getOutputBuffers();
|
||||
} else if (result == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
|
||||
mOutputBuffers = mCodec.getOutputBuffers();
|
||||
mCallbackSender.notifyOutputFormat(mCodec.getOutputFormat());
|
||||
} else if (result == MediaCodec.INFO_TRY_AGAIN_LATER) {
|
||||
// When input ended, keep polling remaining output buffer until EOS.
|
||||
|
|
|
@ -540,7 +540,7 @@ size. -->
|
|||
<!-- Localization note (pref_compact_tabs): Label for setting that controls whether 1 wide column or
|
||||
2 narrower (compact) columns are used for tabs in the tabs tray in portrait mode on phones. -->
|
||||
<!ENTITY pref_compact_tabs "Compact tabs">
|
||||
<!ENTITY pref_compact_tabs_summary "Display two columns of tabs in the tabs tray in portrait mode">
|
||||
<!ENTITY pref_compact_tabs_summary2 "Arrange tabs in two columns in portrait mode">
|
||||
|
||||
<!-- Localization note (page_removed): This string appears in a toast message when
|
||||
any page is removed frome about:home. This includes pages that are in history,
|
||||
|
|
|
@ -431,7 +431,7 @@
|
|||
<string name="pref_scroll_title_bar_summary">&pref_scroll_title_bar_summary2;</string>
|
||||
|
||||
<string name="pref_compact_tabs">&pref_compact_tabs;</string>
|
||||
<string name="pref_compact_tabs_summary">&pref_compact_tabs_summary;</string>
|
||||
<string name="pref_compact_tabs_summary">&pref_compact_tabs_summary2;</string>
|
||||
|
||||
<string name="page_removed">&page_removed;</string>
|
||||
|
||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче