Merge m-c to m-i

This commit is contained in:
Phil Ringnalda 2015-03-07 19:39:49 -08:00
commit aafe5c8706
52 changed files with 422 additions and 148 deletions

View File

@ -1120,8 +1120,10 @@ pref("dom.requestSync.enabled", true);
pref("gfx.vsync.hw-vsync.enabled", true);
pref("gfx.vsync.compositor", true);
pref("gfx.touch.resample", true);
pref("gfx.vsync.refreshdriver", true);
#else
pref("gfx.vsync.hw-vsync.enabled", false);
pref("gfx.vsync.compositor", false);
pref("gfx.touch.resample", false);
pref("gfx.vsync.refreshdriver", false);
#endif

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="ef937d1aca7c4cf89ecb5cc43ae8c21c2000a9db">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="eab77fbc95bebc1fbaac1f4f1c163824d924c93d"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="373c9ddb916631facbae3d6f70fb82f3ff501411"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2e85143db5d5f6edc4c2b97263c02b558fee757e"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>

View File

@ -19,7 +19,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="eab77fbc95bebc1fbaac1f4f1c163824d924c93d"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="373c9ddb916631facbae3d6f70fb82f3ff501411"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2e85143db5d5f6edc4c2b97263c02b558fee757e"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="93f9ba577f68d772093987c2f1c0a4ae293e1802"/>

View File

@ -17,7 +17,7 @@
</project>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="eab77fbc95bebc1fbaac1f4f1c163824d924c93d"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="373c9ddb916631facbae3d6f70fb82f3ff501411"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2e85143db5d5f6edc4c2b97263c02b558fee757e"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="c42985975f2bbc42859b9136ed348186d989b93d"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="86bd499afd662d5320a675f5da97656c742299c4"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="ef937d1aca7c4cf89ecb5cc43ae8c21c2000a9db">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="eab77fbc95bebc1fbaac1f4f1c163824d924c93d"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="373c9ddb916631facbae3d6f70fb82f3ff501411"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2e85143db5d5f6edc4c2b97263c02b558fee757e"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="52775e03a2d8532429dff579cb2cd56718e488c3">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="eab77fbc95bebc1fbaac1f4f1c163824d924c93d"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="373c9ddb916631facbae3d6f70fb82f3ff501411"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2e85143db5d5f6edc4c2b97263c02b558fee757e"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>

View File

@ -19,7 +19,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="eab77fbc95bebc1fbaac1f4f1c163824d924c93d"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="373c9ddb916631facbae3d6f70fb82f3ff501411"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2e85143db5d5f6edc4c2b97263c02b558fee757e"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="93f9ba577f68d772093987c2f1c0a4ae293e1802"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="ef937d1aca7c4cf89ecb5cc43ae8c21c2000a9db">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="eab77fbc95bebc1fbaac1f4f1c163824d924c93d"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="373c9ddb916631facbae3d6f70fb82f3ff501411"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2e85143db5d5f6edc4c2b97263c02b558fee757e"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>

View File

@ -17,7 +17,7 @@
</project>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="eab77fbc95bebc1fbaac1f4f1c163824d924c93d"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="373c9ddb916631facbae3d6f70fb82f3ff501411"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2e85143db5d5f6edc4c2b97263c02b558fee757e"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="c42985975f2bbc42859b9136ed348186d989b93d"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="86bd499afd662d5320a675f5da97656c742299c4"/>

View File

@ -1,9 +1,9 @@
{
"git": {
"git_revision": "eab77fbc95bebc1fbaac1f4f1c163824d924c93d",
"git_revision": "373c9ddb916631facbae3d6f70fb82f3ff501411",
"remote": "https://git.mozilla.org/releases/gaia.git",
"branch": ""
},
"revision": "a0be455745a794e0083b01544a68ba3118ac3226",
"revision": "c7db5bba15e070f4068e46914193cd98ac6ae91f",
"repo_path": "integration/gaia-central"
}

View File

@ -17,7 +17,7 @@
</project>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="eab77fbc95bebc1fbaac1f4f1c163824d924c93d"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="373c9ddb916631facbae3d6f70fb82f3ff501411"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2e85143db5d5f6edc4c2b97263c02b558fee757e"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="c42985975f2bbc42859b9136ed348186d989b93d"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="86bd499afd662d5320a675f5da97656c742299c4"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="52775e03a2d8532429dff579cb2cd56718e488c3">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="eab77fbc95bebc1fbaac1f4f1c163824d924c93d"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="373c9ddb916631facbae3d6f70fb82f3ff501411"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2e85143db5d5f6edc4c2b97263c02b558fee757e"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0"?>
<blocklist xmlns="http://www.mozilla.org/2006/addons-blocklist" lastupdate="1424991539000">
<blocklist xmlns="http://www.mozilla.org/2006/addons-blocklist" lastupdate="1425509726000">
<emItems>
<emItem blockID="i58" id="webmaster@buzzzzvideos.info">
<versionRange minVersion="0" maxVersion="*">
@ -185,12 +185,10 @@
<prefs>
</prefs>
</emItem>
<emItem blockID="i758" id="toolbar10853@findwide.com">
<emItem blockID="i672" id="/^(saamazon@mybrowserbar\.com)|(saebay@mybrowserbar\.com)$/">
<versionRange minVersion="0" maxVersion="*" severity="1">
</versionRange>
<prefs>
<pref>browser.startup.homepage</pref>
<pref>browser.search.defaultenginename</pref>
</prefs>
</emItem>
<emItem blockID="i668" id="/^(matchersite(pro(srcs?)?)?\@matchersite(pro(srcs?)?)?\.com)|((pro)?sitematcher(_srcs?|pro|site|sitesrc|-generic)?\@(pro)?sitematcher(_srcs?|pro|site|sitesrc|-generic)?\.com)$/">
@ -378,10 +376,6 @@
</versionRange>
<prefs>
</prefs>
</emItem>
<emItem blockID="i48" id="admin@youtubespeedup.com">
<prefs>
</prefs>
</emItem>
<emItem blockID="i344" id="lrcsTube@hansanddeta.com">
<versionRange minVersion="0" maxVersion="*" severity="1">
@ -395,7 +389,7 @@
<prefs>
</prefs>
</emItem>
<emItem blockID="i860" id="PrivDog@AdTrustMedia.com">
<emItem blockID="i404" id="{a9bb9fa0-4122-4c75-bd9a-bc27db3f9155}">
<versionRange minVersion="0" maxVersion="*" severity="1">
</versionRange>
<prefs>
@ -531,6 +525,14 @@
</versionRange>
<prefs>
</prefs>
</emItem>
<emItem blockID="i768" id="{f2548724-373f-45fe-be6a-3a85e87b7711}">
<versionRange minVersion="0" maxVersion="*" severity="3">
</versionRange>
<prefs>
<pref>browser.startup.homepage</pref>
<pref>browser.search.defaultenginename</pref>
</prefs>
</emItem>
<emItem blockID="i172" id="info@bflix.info">
<versionRange minVersion="0" maxVersion="*" severity="3">
@ -856,10 +858,8 @@
<prefs>
</prefs>
</emItem>
<emItem blockID="i672" id="/^(saamazon@mybrowserbar\.com)|(saebay@mybrowserbar\.com)$/">
<versionRange minVersion="0" maxVersion="*" severity="1">
</versionRange>
<prefs>
<emItem blockID="i48" id="admin@youtubespeedup.com">
<prefs>
</prefs>
</emItem>
<emItem blockID="i218" id="ffxtlbr@claro.com">
@ -1395,12 +1395,10 @@
<prefs>
</prefs>
</emItem>
<emItem blockID="i768" id="{f2548724-373f-45fe-be6a-3a85e87b7711}">
<emItem blockID="i870" id="M1uwW0@47z8gRpK8sULXXLivB.com">
<versionRange minVersion="0" maxVersion="*" severity="3">
</versionRange>
<prefs>
<pref>browser.startup.homepage</pref>
<pref>browser.search.defaultenginename</pref>
</prefs>
</emItem>
<emItem blockID="i246" id="support@vide1flash2.com">
@ -1596,6 +1594,12 @@
</versionRange>
<prefs>
</prefs>
</emItem>
<emItem blockID="i872" id="search-snacks@search-snacks.com">
<versionRange minVersion="0" maxVersion="*" severity="1">
</versionRange>
<prefs>
</prefs>
</emItem>
<emItem blockID="i852" id="6lIy@T.edu">
<versionRange minVersion="0" maxVersion="*" severity="1">
@ -2097,6 +2101,14 @@
</versionRange>
<prefs>
</prefs>
</emItem>
<emItem blockID="i874" id="/^toolbar[0-9]*@findwide\.com$/">
<versionRange minVersion="0" maxVersion="*" severity="1">
</versionRange>
<prefs>
<pref>browser.startup.homepage</pref>
<pref>browser.search.defaultenginename</pref>
</prefs>
</emItem>
<emItem blockID="i588" id="quick_start@gmail.com">
<versionRange minVersion="0" maxVersion="*" severity="3">
@ -2176,12 +2188,6 @@
</versionRange>
<prefs>
</prefs>
</emItem>
<emItem blockID="i404" id="{a9bb9fa0-4122-4c75-bd9a-bc27db3f9155}">
<versionRange minVersion="0" maxVersion="*" severity="1">
</versionRange>
<prefs>
</prefs>
</emItem>
<emItem blockID="i868" id="{6e7f6f9f-8ce6-4611-add2-05f0f7049ee6}">
<versionRange minVersion="0" maxVersion="*" severity="1">
@ -2307,14 +2313,6 @@
</versionRange>
<prefs>
</prefs>
</emItem>
<emItem blockID="i760" id="toolbar11093@freshy.com">
<versionRange minVersion="0" maxVersion="*" severity="1">
</versionRange>
<prefs>
<pref>browser.startup.homepage</pref>
<pref>browser.search.defaultenginename</pref>
</prefs>
</emItem>
<emItem blockID="i324" id="/^((34qEOefiyYtRJT@IM5Munavn\.com)|(Mro5Fm1Qgrmq7B@ByrE69VQfZvZdeg\.com)|(KtoY3KGxrCe5ie@yITPUzbBtsHWeCdPmGe\.com)|(9NgIdLK5Dq4ZMwmRo6zk@FNt2GCCLGyUuOD\.com)|(NNux7bWWW@RBWyXdnl6VGls3WAwi\.com)|(E3wI2n@PEHTuuNVu\.com)|(2d3VuWrG6JHBXbQdbr@3BmSnQL\.com))$/">
<versionRange minVersion="0" maxVersion="*" severity="3">

View File

@ -461,14 +461,11 @@ function findChildShell(aDocument, aDocShell, aSoughtURI) {
var gPopupBlockerObserver = {
_reportButton: null,
onReportButtonEvent: function (aEvent)
onReportButtonClick: function (aEvent)
{
if ((aEvent.type == "click" && aEvent.button != 0) ||
(aEvent.target != this._reportButton) ||
(aEvent.type == "keypress" && aEvent.charCode != Ci.nsIDOMKeyEvent.DOM_VK_SPACE &&
aEvent.keyCode != Ci.nsIDOMKeyEvent.DOM_VK_RETURN)) {
return; // We're only interested in left click and space and enter keypresses
}
if (aEvent.button != 0 || aEvent.target != this._reportButton)
return;
document.getElementById("blockedPopupOptions")
.openPopup(this._reportButton, "after_end", 0, 2, false, false, aEvent);
},

View File

@ -822,12 +822,11 @@
<label class="urlbar-display urlbar-display-switchtab" value="&urlbar.switchToTab.label;"/>
</box>
<hbox id="urlbar-icons">
<toolbarbutton id="page-report-button"
class="tabbable urlbar-icon"
hidden="true"
tooltiptext="&pageReportIcon.tooltip;"
onclick="gPopupBlockerObserver.onReportButtonEvent(event);"
onkeypress="gPopupBlockerObserver.onReportButtonEvent(event);"/>
<image id="page-report-button"
class="urlbar-icon"
hidden="true"
tooltiptext="&pageReportIcon.tooltip;"
onclick="gPopupBlockerObserver.onReportButtonClick(event);"/>
<toolbarbutton id="reader-mode-button"
class="tabbable"
hidden="true"

View File

@ -98,11 +98,19 @@ pageInfoTreeView.prototype = {
this,
this.data,
treecol.index,
function textComparator(a, b) { return a.toLowerCase().localeCompare(b.toLowerCase()); },
function textComparator(a, b) { return (a || "").toLowerCase().localeCompare((b || "").toLowerCase()); },
this.sortcol,
this.sortdir
);
Array.forEach(tree.columns, function(col) {
col.element.removeAttribute("sortActive");
col.element.removeAttribute("sortDirection");
});
treecol.element.setAttribute("sortActive", "true");
treecol.element.setAttribute("sortDirection", this.sortdir ?
"ascending" : "descending");
this.sortcol = treecol.index;
},
@ -112,7 +120,7 @@ pageInfoTreeView.prototype = {
isContainer: function(index) { return false; },
isContainerOpen: function(index) { return false; },
isSeparator: function(index) { return false; },
isSorted: function() { },
isSorted: function() { return this.sortcol > -1 },
canDrop: function(index, orientation) { return false; },
drop: function(row, orientation) { return false; },
getParentIndex: function(index) { return 0; },
@ -187,10 +195,11 @@ gImageView.onPageMediaSort = function(columnname) {
var treecol = tree.columns.getNamedColumn(columnname);
var comparator;
if (treecol.index == COL_IMAGE_SIZE || treecol.index == COL_IMAGE_COUNT) {
var index = treecol.index;
if (index == COL_IMAGE_SIZE || index == COL_IMAGE_COUNT) {
comparator = function numComparator(a, b) { return a - b; };
} else {
comparator = function textComparator(a, b) { return a.toLowerCase().localeCompare(b.toLowerCase()); };
comparator = function textComparator(a, b) { return (a || "").toLowerCase().localeCompare((b || "").toLowerCase()); };
}
this.sortdir =
@ -198,13 +207,21 @@ gImageView.onPageMediaSort = function(columnname) {
tree,
this,
this.data,
treecol.index,
index,
comparator,
this.sortcol,
this.sortdir
);
this.sortcol = treecol.index;
Array.forEach(tree.columns, function(col) {
col.element.removeAttribute("sortActive");
col.element.removeAttribute("sortDirection");
});
treecol.element.setAttribute("sortActive", "true");
treecol.element.setAttribute("sortDirection", this.sortdir ?
"ascending" : "descending");
this.sortcol = index;
};
var gImageHash = { };
@ -1240,6 +1257,14 @@ function doCopy()
}
}
function doSelectAllMedia()
{
var tree = document.getElementById("imagetree");
if (tree)
tree.view.selection.selectAll();
}
function doSelectAll()
{
var elem = document.commandDispatcher.focusedElement;

View File

@ -235,6 +235,9 @@
<label control="thepreviewimage" value="&mediaPreview;" class="header"/>
</vbox>
<spacer id="imageSaveBoxSpacer" flex="1"/>
<button label="&selectall.label;" accesskey="&selectall.accesskey;"
id="selectallbutton"
oncommand="doSelectAllMedia();"/>
<button label="&mediaSaveAs;" accesskey="&mediaSaveAs.accesskey;"
icon="save" id="imagesaveasbutton"
oncommand="saveMedia();"/>

View File

@ -516,18 +516,33 @@ function openPreferences(paneID, extraArgs)
if (getBoolPref("browser.preferences.inContent")) {
let win = Services.wm.getMostRecentWindow("navigator:browser");
if (!win) {
return;
}
let friendlyCategoryName = internalPrefCategoryNameToFriendlyName(paneID);
let preferencesURL = "about:preferences" +
(friendlyCategoryName ? "#" + friendlyCategoryName : "");
let newLoad = !win.switchToTabHavingURI(preferencesURL, true, {ignoreFragment: true});
let browser = win.gBrowser.selectedBrowser;
let newLoad = true;
let browser = null;
if (!win) {
const Cc = Components.classes;
const Ci = Components.interfaces;
let windowArguments = Cc["@mozilla.org/supports-array;1"]
.createInstance(Ci.nsISupportsArray);
let supportsStringPrefURL = Cc["@mozilla.org/supports-string;1"]
.createInstance(Ci.nsISupportsString);
supportsStringPrefURL.data = preferencesURL;
windowArguments.AppendElement(supportsStringPrefURL);
win = Services.ww.openWindow(null, Services.prefs.getCharPref("browser.chromeURL"),
"_blank", "chrome,dialog=no,all", windowArguments);
} else {
newLoad = !win.switchToTabHavingURI(preferencesURL, true, {ignoreFragment: true});
browser = win.gBrowser.selectedBrowser;
}
if (newLoad) {
Services.obs.addObserver(function advancedPaneLoadedObs(prefWin, topic, data) {
if (!browser) {
browser = win.gBrowser.selectedBrowser;
}
if (prefWin != browser.contentWindow) {
return;
}

View File

@ -37,6 +37,7 @@ static RedirEntry kRedirMap[] = {
#ifdef MOZ_SAFE_BROWSING
{ "blocked", "chrome://browser/content/blockedSite.xhtml",
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
nsIAboutModule::URI_CAN_LOAD_IN_CHILD |
nsIAboutModule::ALLOW_SCRIPT |
nsIAboutModule::HIDE_FROM_ABOUTABOUT },
#endif

View File

@ -1616,15 +1616,9 @@ richlistitem[type~="action"][actiontype="switchtab"] > .ac-url-box > .ac-action-
/* Popup blocker button */
#page-report-button {
-moz-appearance: none;
padding: 0;
list-style-image: url("chrome://browser/skin/Info.png");
}
#page-report-button:focus {
outline: 1px dotted;
}
/* Reader mode button */
#reader-mode-button {

View File

@ -2501,21 +2501,10 @@ richlistitem[type~="action"][actiontype="switchtab"][selected="true"] > .ac-url-
/* POPUP BLOCKER BUTTON */
#page-report-button {
-moz-appearance: none;
padding: 0;
border-width: 0;
list-style-image: url("chrome://browser/skin/urlbar-popup-blocked.png");
-moz-image-region: rect(0, 16px, 16px, 0);
}
#page-report-button > .toolbarbutton-icon {
width: 16px;
}
#page-report-button:focus {
@hudButtonFocused@
}
#page-report-button:hover:active,
#page-report-button[open="true"] {
-moz-image-region: rect(0, 32px, 16px, 16px);
@ -2525,6 +2514,7 @@ richlistitem[type~="action"][actiontype="switchtab"][selected="true"] > .ac-url-
#page-report-button {
list-style-image: url("chrome://browser/skin/urlbar-popup-blocked@2x.png");
-moz-image-region: rect(0, 32px, 32px, 0);
width: 22px;
}
#page-report-button:hover:active,

View File

@ -1563,14 +1563,10 @@ richlistitem[type~="action"][actiontype="switchtab"] > .ac-url-box > .ac-action-
/* popup blocker button */
#page-report-button {
-moz-appearance: none;
padding: 0;
border-width: 0;
list-style-image: url("chrome://browser/skin/urlbar-popup-blocked.png");
-moz-image-region: rect(0, 16px, 16px, 0);
}
#page-report-button:focus,
#page-report-button:hover {
-moz-image-region: rect(0, 32px, 16px, 16px);
}

View File

@ -256,8 +256,10 @@ protected:
}
nsCOMPtr<nsIStackFrame> mCaller;
nsCOMPtr<nsIStackFrame> mAsyncCaller;
nsString mFilename;
nsString mFunname;
nsString mAsyncCause;
int32_t mLineno;
int32_t mColNo;
uint32_t mLanguage;
@ -280,7 +282,7 @@ StackFrame::~StackFrame()
{
}
NS_IMPL_CYCLE_COLLECTION(StackFrame, mCaller)
NS_IMPL_CYCLE_COLLECTION(StackFrame, mCaller, mAsyncCaller)
NS_IMPL_CYCLE_COLLECTING_ADDREF(StackFrame)
NS_IMPL_CYCLE_COLLECTING_RELEASE(StackFrame)
@ -305,8 +307,11 @@ public:
NS_IMETHOD GetLanguageName(nsACString& aLanguageName) MOZ_OVERRIDE;
NS_IMETHOD GetFilename(nsAString& aFilename) MOZ_OVERRIDE;
NS_IMETHOD GetName(nsAString& aFunction) MOZ_OVERRIDE;
NS_IMETHOD GetAsyncCause(nsAString& aAsyncCause) MOZ_OVERRIDE;
NS_IMETHOD GetAsyncCaller(nsIStackFrame** aAsyncCaller) MOZ_OVERRIDE;
NS_IMETHOD GetCaller(nsIStackFrame** aCaller) MOZ_OVERRIDE;
NS_IMETHOD GetFormattedStack(nsAString& aStack) MOZ_OVERRIDE;
NS_IMETHOD GetNativeSavedFrame(JS::MutableHandle<JS::Value> aSavedFrame) MOZ_OVERRIDE;
protected:
virtual bool IsJSFrame() const MOZ_OVERRIDE {
@ -326,6 +331,8 @@ private:
bool mFunnameInitialized;
bool mLinenoInitialized;
bool mColNoInitialized;
bool mAsyncCauseInitialized;
bool mAsyncCallerInitialized;
bool mCallerInitialized;
bool mFormattedStackInitialized;
};
@ -336,6 +343,8 @@ JSStackFrame::JSStackFrame(JS::Handle<JSObject*> aStack)
, mFunnameInitialized(false)
, mLinenoInitialized(false)
, mColNoInitialized(false)
, mAsyncCauseInitialized(false)
, mAsyncCallerInitialized(false)
, mCallerInitialized(false)
, mFormattedStackInitialized(false)
{
@ -578,6 +587,84 @@ NS_IMETHODIMP StackFrame::GetSourceLine(nsACString& aSourceLine)
return NS_OK;
}
/* readonly attribute AString asyncCause; */
NS_IMETHODIMP JSStackFrame::GetAsyncCause(nsAString& aAsyncCause)
{
NS_ENSURE_TRUE(mStack, NS_ERROR_NOT_AVAILABLE);
ThreadsafeAutoJSContext cx;
JS::Rooted<JSString*> asyncCause(cx);
bool canCache = false, useCachedValue = false;
GetValueIfNotCached(cx, mStack, JS::GetSavedFrameAsyncCause,
mAsyncCauseInitialized, &canCache, &useCachedValue,
&asyncCause);
if (useCachedValue) {
return StackFrame::GetAsyncCause(aAsyncCause);
}
if (asyncCause) {
nsAutoJSString str;
if (!str.init(cx, asyncCause)) {
return NS_ERROR_OUT_OF_MEMORY;
}
aAsyncCause = str;
} else {
aAsyncCause.SetIsVoid(true);
}
if (canCache) {
mAsyncCause = aAsyncCause;
mAsyncCauseInitialized = true;
}
return NS_OK;
}
NS_IMETHODIMP StackFrame::GetAsyncCause(nsAString& aAsyncCause)
{
// The async cause must be set to null if empty.
if (mAsyncCause.IsEmpty()) {
aAsyncCause.SetIsVoid(true);
} else {
aAsyncCause.Assign(mAsyncCause);
}
return NS_OK;
}
/* readonly attribute nsIStackFrame asyncCaller; */
NS_IMETHODIMP JSStackFrame::GetAsyncCaller(nsIStackFrame** aAsyncCaller)
{
NS_ENSURE_TRUE(mStack, NS_ERROR_NOT_AVAILABLE);
ThreadsafeAutoJSContext cx;
JS::Rooted<JSObject*> asyncCallerObj(cx);
bool canCache = false, useCachedValue = false;
GetValueIfNotCached(cx, mStack, JS::GetSavedFrameAsyncParent,
mAsyncCallerInitialized, &canCache, &useCachedValue,
&asyncCallerObj);
if (useCachedValue) {
return StackFrame::GetAsyncCaller(aAsyncCaller);
}
nsCOMPtr<nsIStackFrame> asyncCaller =
asyncCallerObj ? new JSStackFrame(asyncCallerObj) : nullptr;
asyncCaller.forget(aAsyncCaller);
if (canCache) {
mAsyncCaller = *aAsyncCaller;
mAsyncCallerInitialized = true;
}
return NS_OK;
}
NS_IMETHODIMP StackFrame::GetAsyncCaller(nsIStackFrame** aAsyncCaller)
{
NS_IF_ADDREF(*aAsyncCaller = mAsyncCaller);
return NS_OK;
}
/* readonly attribute nsIStackFrame caller; */
NS_IMETHODIMP JSStackFrame::GetCaller(nsIStackFrame** aCaller)
{
@ -664,6 +751,19 @@ NS_IMETHODIMP StackFrame::GetFormattedStack(nsAString& aStack)
return NS_OK;
}
/* readonly attribute jsval nativeSavedFrame; */
NS_IMETHODIMP JSStackFrame::GetNativeSavedFrame(JS::MutableHandle<JS::Value> aSavedFrame)
{
aSavedFrame.setObjectOrNull(mStack);
return NS_OK;
}
NS_IMETHODIMP StackFrame::GetNativeSavedFrame(JS::MutableHandle<JS::Value> aSavedFrame)
{
aSavedFrame.setNull();
return NS_OK;
}
/* AUTF8String toString (); */
NS_IMETHODIMP StackFrame::ToString(nsACString& _retval)
{

View File

@ -122,7 +122,7 @@ interface ScheduledGCCallback : nsISupports
/**
* interface of Components.utils
*/
[scriptable, uuid(2617a800-63c1-11e4-9803-0800200c9a66)]
[scriptable, uuid(0354f8b4-08c6-4074-a466-2b6524b64ca3)]
interface nsIXPCComponents_Utils : nsISupports
{
@ -361,6 +361,20 @@ interface nsIXPCComponents_Utils : nsISupports
[implicit_jscontext]
jsval getJSTestingFunctions();
/*
* To be called from JS only.
*
* Call 'function', using the provided stack as the async stack responsible
* for the call, and propagate its return value or the exception it throws.
* The function is called with no arguments, and 'this' is 'undefined'.
*
* The code in the function will see the given stack frame as the
* asyncCaller of its own stack frame, instead of the current caller.
*/
[implicit_jscontext]
jsval callFunctionWithAsyncStack(in jsval function, in nsIStackFrame stack,
in AString asyncCause);
/*
* To be called from JS only.
*

View File

@ -2901,6 +2901,47 @@ nsXPCComponents_Utils::GetJSTestingFunctions(JSContext *cx,
return NS_OK;
}
/* jsval callFunctionWithStack(in jsval function, in nsIStackFrame stack,
in AString asyncCause); */
NS_IMETHODIMP
nsXPCComponents_Utils::CallFunctionWithAsyncStack(HandleValue function,
nsIStackFrame *stack,
const nsAString &asyncCause,
JSContext *cx,
MutableHandleValue retval)
{
nsresult rv;
if (!stack || asyncCause.IsEmpty()) {
return NS_ERROR_INVALID_ARG;
}
JS::Rooted<JS::Value> asyncStack(cx);
rv = stack->GetNativeSavedFrame(&asyncStack);
if (NS_FAILED(rv))
return rv;
if (!asyncStack.isObject()) {
JS_ReportError(cx, "Must use a native JavaScript stack frame");
return NS_ERROR_INVALID_ARG;
}
JS::Rooted<JSObject*> asyncStackObj(cx, &asyncStack.toObject());
JS::Rooted<JSString*> asyncCauseString(cx, JS_NewUCStringCopyN(cx, asyncCause.BeginReading(),
asyncCause.Length()));
if (!asyncCauseString)
return NS_ERROR_OUT_OF_MEMORY;
JS::AutoSetAsyncStackForNewCalls sas(cx, asyncStackObj, asyncCauseString);
if (!JS_CallFunctionValue(cx, JS::NullPtr(), function,
JS::HandleValueArray::empty(), retval))
{
return NS_ERROR_XPC_JAVASCRIPT_ERROR;
}
return NS_OK;
}
/* void getGlobalForObject(); */
NS_IMETHODIMP
nsXPCComponents_Utils::GetGlobalForObject(HandleValue object,

View File

@ -0,0 +1,23 @@
function run_test() {
function getAsyncStack() {
return Components.stack;
}
// asyncCause may contain non-ASCII characters.
let testAsyncCause = "Tes" + String.fromCharCode(355) + "String";
Components.utils.callFunctionWithAsyncStack(function asyncCallback() {
let stack = Components.stack;
do_check_eq(stack.name, "asyncCallback");
do_check_eq(stack.caller.name, null);
do_check_eq(stack.asyncCause, null);
do_check_eq(stack.asyncCaller.name, "getAsyncStack");
do_check_eq(stack.asyncCaller.asyncCause, testAsyncCause);
do_check_eq(stack.asyncCaller.asyncCaller, null);
do_check_eq(stack.asyncCaller.caller.name, "run_test");
do_check_eq(stack.asyncCaller.caller.asyncCause, null);
}, getAsyncStack(), testAsyncCause);
}

View File

@ -55,6 +55,7 @@ support-files =
[test_bug1081990.js]
[test_bug1110546.js]
[test_bug_442086.js]
[test_callFunctionWithAsyncStack.js]
[test_file.js]
[test_blob.js]
[test_blob2.js]

View File

@ -3,10 +3,12 @@
== min-height-1.html min-height-1-ref.html
== max-width-1.html max-width-1-ref.html
== max-height-1.html max-height-1-ref.html
== width-special-values-block.html width-special-values-block-ref.html
# bug 1019840 skip width-special-values-image & width-special-values-block on b2g
# due to a race condition in imgRequestProxyCode
skip-if(B2G) == width-special-values-block.html width-special-values-block-ref.html
== width-special-values-float.html width-special-values-block-ref.html
== width-special-values-image-block.html width-special-values-image-block-ref.html
== width-special-values-image.html width-special-values-image-ref.html
skip-if(B2G) == width-special-values-image.html width-special-values-image-ref.html
== width-special-values-block-intrinsic.html width-special-values-block-intrinsic-ref.html
== width-special-values-float-intrinsic.html width-special-values-block-intrinsic-ref.html
== minmax-width-special-values-block-intrinsic.html minmax-width-special-values-block-intrinsic-ref.html

Binary file not shown.

Before

Width:  |  Height:  |  Size: 311 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 254 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -3,15 +3,20 @@
- 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/. -->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/doorhanger_width"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="@drawable/anchored_popup_bg">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/dropshadow"
android:padding="3dp">
<LinearLayout android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"/>
<ScrollView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/anchored_popup_bg">
</ScrollView>
<LinearLayout android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"/>
</ScrollView>
</LinearLayout>

View File

@ -6,6 +6,7 @@
<resources>
<dimen name="arrow_popup_container_width">400dp</dimen>
<dimen name="doorhanger_offsetY">2dp</dimen>
<dimen name="browser_toolbar_height">56dp</dimen>
<dimen name="browser_toolbar_button_padding">16dp</dimen>

View File

@ -6,8 +6,6 @@
<resources>
<dimen name="browser_toolbar_height">56dp</dimen>
<dimen name="doorhanger_offsetX">5dp</dimen>
<dimen name="doorhanger_offsetY">2dp</dimen>
<dimen name="remote_tab_child_row_height">56dp</dimen>
<dimen name="remote_tab_group_row_height">34dp</dimen>
<dimen name="tabs_counter_size">26sp</dimen>

View File

@ -97,7 +97,7 @@
<dimen name="doorhanger_spinner_textsize">9sp</dimen>
<dimen name="doorhanger_padding">15dp</dimen>
<dimen name="doorhanger_offsetX">10dp</dimen>
<dimen name="doorhanger_offsetY">3dp</dimen>
<dimen name="doorhanger_offsetY">7dp</dimen>
<dimen name="flow_layout_spacing">6dp</dimen>
<dimen name="menu_item_icon">21dp</dimen>

View File

@ -1081,4 +1081,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
static const int32_t kUnknownId = -1;
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1433589369180000);
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1434194312527000);

View File

@ -16,12 +16,15 @@ atavio.at: could not connect to host
atavio.ch: could not connect to host
au.search.yahoo.com: did not receive HSTS header
auth.mail.ru: did not receive HSTS header
auto4trade.nl: did not receive HSTS header
az.search.yahoo.com: did not receive HSTS header
azprep.us: could not connect to host
bagelsbakery.com: did not receive HSTS header
barcodeberlin.com: did not receive HSTS header
bccx.com: could not connect to host
bcm.com.au: max-age too low: 0
be.search.yahoo.com: did not receive HSTS header
bentertain.de: could not connect to host
betnet.fr: could not connect to host
bi.search.yahoo.com: did not receive HSTS header
bigshinylock.minazo.net: could not connect to host
@ -39,7 +42,6 @@ browserid.org: did not receive HSTS header
business.medbank.com.mt: could not connect to host
ca.search.yahoo.com: did not receive HSTS header
calibreapp.com: did not receive HSTS header
calomel.org: did not receive HSTS header
calyxinstitute.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 134" data: no]
carlolly.co.uk: could not connect to host
cd.search.yahoo.com: did not receive HSTS header
@ -69,6 +71,7 @@ crowdcurity.com: did not receive HSTS header
crowdjuris.com: could not connect to host
crypto.is: max-age too low: 7776000
csawctf.poly.edu: could not connect to host
cspbuilder.info: could not connect to host
ct.search.yahoo.com: did not receive HSTS header
cujanovic.com: did not receive HSTS header
cyanogenmod.xxx: could not connect to host
@ -90,7 +93,6 @@ drive.google.com: did not receive HSTS header (error ignored - included regardle
dropcam.com: did not receive HSTS header
dzlibs.io: could not connect to host
e-aut.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 134" data: no]
ed.gs: did not receive HSTS header
edmodo.com: did not receive HSTS header
egit.co: could not connect to host
elnutricionista.es: did not receive HSTS header
@ -129,7 +131,7 @@ googleplex.com: could not connect to host (error ignored - included regardless)
goto.google.com: did not receive HSTS header (error ignored - included regardless)
gparent.org: did not receive HSTS header
gr.search.yahoo.com: did not receive HSTS header
grandmascookieblog.com: did not receive HSTS header
grandmascookieblog.com: could not connect to host
greplin.com: could not connect to host
groups.google.com: did not receive HSTS header (error ignored - included regardless)
gunnarhafdal.com: could not connect to host
@ -158,11 +160,12 @@ interserved.com: did not receive HSTS header
iop.intuit.com: max-age too low: 86400
irccloud.com: did not receive HSTS header
it.search.yahoo.com: did not receive HSTS header
jonathan.ir: did not receive HSTS header
janoberst.com: did not receive HSTS header
jottit.com: could not connect to host
k-dev.de: could not connect to host
keepclean.me: could not connect to host
keymaster.lookout.com: did not receive HSTS header
kirkforcongress.com: did not receive HSTS header
kirkforcongress.com: could not connect to host
kirkforsenate.com: could not connect to host
kitsta.com: could not connect to host
kiwiirc.com: max-age too low: 5256000
@ -228,6 +231,7 @@ nodari.com.ar: [Exception... "Component returned failure code: 0x80004005 (NS_ER
noexpect.org: could not connect to host
np.search.yahoo.com: did not receive HSTS header
npw.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 134" data: no]
null-sec.ru: could not connect to host
nz.search.yahoo.com: did not receive HSTS header
openshift.redhat.com: did not receive HSTS header
otakurepublic.com: did not receive HSTS header
@ -236,7 +240,6 @@ pa.search.yahoo.com: did not receive HSTS header
passwordbox.com: did not receive HSTS header
passwords.google.com: did not receive HSTS header (error ignored - included regardless)
pe.search.yahoo.com: did not receive HSTS header
petrolplus.ru: did not receive HSTS header
ph.search.yahoo.com: did not receive HSTS header
piratenlogin.de: could not connect to host
pisidia.de: did not receive HSTS header
@ -244,6 +247,7 @@ pk.search.yahoo.com: did not receive HSTS header
pl.search.yahoo.com: did not receive HSTS header
platform.lookout.com: could not connect to host
play.google.com: did not receive HSTS header (error ignored - included regardless)
pmg-offshore-company.com: did not receive HSTS header
polymathematician.com: could not connect to host
pr.search.yahoo.com: did not receive HSTS header
pressfreedomfoundation.org: did not receive HSTS header
@ -257,7 +261,7 @@ rapidresearch.me: could not connect to host
redlatam.org: did not receive HSTS header
redports.org: could not connect to host
regar42.fr: could not connect to host
riftnetwork.net: could not connect to host
riftnetwork.net: did not receive HSTS header
riseup.net: did not receive HSTS header
rme.li: did not receive HSTS header
ro.search.yahoo.com: did not receive HSTS header
@ -266,6 +270,7 @@ ru.search.yahoo.com: did not receive HSTS header
rw.search.yahoo.com: did not receive HSTS header
sah3.net: could not connect to host
saturngames.co.uk: could not connect to host
savetheinternet.eu: did not receive HSTS header
script.google.com: did not receive HSTS header (error ignored - included regardless)
se.search.yahoo.com: did not receive HSTS header
search.yahoo.com: did not receive HSTS header
@ -275,9 +280,9 @@ seomobo.com: did not receive HSTS header
seowarp.net: max-age too low: 1576800
serverdensity.io: did not receive HSTS header
sg.search.yahoo.com: did not receive HSTS header
shadex.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 134" data: no]
shops.neonisi.com: could not connect to host
siammedia.co: did not receive HSTS header
sikayetvar.com: did not receive HSTS header
silentcircle.org: could not connect to host
simon.butcher.name: max-age too low: 2629743
simplyfixit.co.uk: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 134" data: no]
@ -310,7 +315,8 @@ tektoria.de: did not receive HSTS header
temehu.com: did not receive HSTS header
terrax.berlin: could not connect to host
th.search.yahoo.com: did not receive HSTS header
the-sky-of-valkyries.com: did not receive HSTS header
the-sky-of-valkyries.com: could not connect to host
thetomharling.com: did not receive HSTS header
thomasgriffin.io: did not receive HSTS header
tr.search.yahoo.com: did not receive HSTS header
translate.googleapis.com: did not receive HSTS header (error ignored - included regardless)
@ -330,7 +336,6 @@ vn.search.yahoo.com: did not receive HSTS header
vyncke.org: max-age too low: 2678400
wallet.google.com: did not receive HSTS header (error ignored - included regardless)
webmail.mayfirst.org: did not receive HSTS header
whonix.org: did not receive HSTS header
wikidsystems.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 134" data: no]
wiz.biz: could not connect to host
wohnungsbau-ludwigsburg.de: did not receive HSTS header

View File

@ -8,7 +8,7 @@
/*****************************************************************************/
#include <stdint.h>
const PRTime gPreloadListExpirationTime = INT64_C(1436008563185000);
const PRTime gPreloadListExpirationTime = INT64_C(1436613506897000);
class nsSTSPreload
{
@ -110,12 +110,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "atte.fi", true },
{ "auf-feindgebiet.de", true },
{ "authentication.io", true },
{ "auto4trade.nl", true },
{ "azabani.com", true },
{ "badges.fedoraproject.org", true },
{ "badges.stg.fedoraproject.org", true },
{ "baer.im", true },
{ "bagelsbakery.com", true },
{ "balcan-underground.net", true },
{ "baldwinkoo.com", true },
{ "balikonos.cz", true },
@ -195,6 +193,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ca.gparent.org", false },
{ "cackette.com", true },
{ "call.me", true },
{ "calomel.org", true },
{ "calories.org", true },
{ "camolist.com", true },
{ "cao.gov", true },
@ -341,6 +340,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ecg.fr", false },
{ "ecosystem.atlassian.net", true },
{ "ectora.com", true },
{ "ed.gs", true },
{ "edit.yahoo.com", false },
{ "eduroam.no", true },
{ "edyou.eu", true },
@ -550,7 +550,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "izdiwho.com", true },
{ "jackyyf.com", false },
{ "jakub-boucek.cz", true },
{ "janoberst.com", true },
{ "janus-engineering.de", true },
{ "jelmer.co.uk", true },
{ "jelmer.uk", true },
@ -565,6 +564,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "johners.me", true },
{ "jonas-keidel.de", true },
{ "jonaswitmer.ch", true },
{ "jonathan.ir", true },
{ "jonnybarnes.uk", true },
{ "julian-kipka.de", true },
{ "jwilsson.com", true },
@ -875,6 +875,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "perfectionis.me", true },
{ "personaldatabasen.no", true },
{ "pestici.de", true },
{ "petrolplus.ru", true },
{ "pharmaboard.de", true },
{ "philosopherswool.com", true },
{ "phoenix.dj", true },
@ -890,7 +891,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "plothost.com", true },
{ "plus.google.com", false },
{ "plus.sandbox.google.com", false },
{ "pmg-offshore-company.com", true },
{ "pmg-purchase.com", true },
{ "pmg-purchase.net", true },
{ "polymathematician.com", true },
@ -938,7 +938,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "redports.org", true },
{ "redteam-pentesting.de", true },
{ "reedloden.com", true },
{ "reg.ru", true },
{ "reg.ru", false },
{ "reishunger.de", true },
{ "release-monitoring.org", true },
{ "reliable-mail.de", true },
@ -957,7 +957,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "roland.io", true },
{ "romab.com", true },
{ "romans-place.me.uk", true },
{ "romulusapp.com", true },
{ "romulusapp.com", false },
{ "room-checkin24.de", true },
{ "rosenkeller.org", true },
{ "roundcube.mayfirst.org", false },
@ -980,7 +980,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sandbox.mydigipass.com", false },
{ "save.gov", true },
{ "saveaward.gov", true },
{ "savetheinternet.eu", true },
{ "savvytime.com", true },
{ "schachburg.de", true },
{ "schokokeks.org", false },
@ -1007,6 +1006,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "setuid.io", true },
{ "seyahatsagliksigortalari.com", true },
{ "shaaaaaaaaaaaaa.com", true },
{ "shadex.net", true },
{ "shakepeers.org", true },
{ "shellsec.pw", true },
{ "shenyuqi.com", true },
@ -1016,7 +1016,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "shodan.io", true },
{ "shopontarget.com", true },
{ "shortdiary.me", true },
{ "sikayetvar.com", true },
{ "silentcircle.com", false },
{ "simbolo.co.uk", false },
{ "simple.com", false },
@ -1117,7 +1116,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thepaymentscompany.com", true },
{ "therapynotes.com", true },
{ "theshadestore.com", true },
{ "thetomharling.com", true },
{ "thomastimepieces.com.au", true },
{ "thorncreek.net", false },
{ "thusoy.com", true },
@ -1242,6 +1240,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "when-release.ru", true },
{ "wherephoto.com", true },
{ "whocalld.com", true },
{ "whonix.org", true },
{ "wieninternational.at", true },
{ "wifirst.net", true },
{ "wiki.python.org", true },

View File

@ -14,6 +14,7 @@ scopes:
- scheduler:*
tasks:
- taskId: '{{#as_slugid}}decision task{{/as_slugid}}'
reruns: 3
task:
created: '{{now}}'
deadline: '{{#from_now}}1 day{{/from_now}}'

View File

@ -15,6 +15,7 @@ scopes:
tasks:
- taskId: '{{#as_slugid}}decision task{{/as_slugid}}'
reruns: 3
task:
created: '{{now}}'
deadline: '{{#from_now}}1 day{{/from_now}}'

View File

@ -140,6 +140,7 @@ let WebProgressListener = {
json.charset = content.document.characterSet;
json.mayEnableCharacterEncodingMenu = docShell.mayEnableCharacterEncodingMenu;
json.principal = content.document.nodePrincipal;
json.synthetic = content.document.mozSyntheticDocument;
}
sendAsyncMessage("Content:LocationChange", json, objects);
@ -326,22 +327,6 @@ addEventListener("ImageContentLoaded", function (aEvent) {
}
}, false);
let DocumentObserver = {
init: function() {
Services.obs.addObserver(this, "document-element-inserted", false);
addEventListener("unload", () => {
Services.obs.removeObserver(this, "document-element-inserted");
});
},
observe: function(aSubject, aTopic, aData) {
if (aSubject == content.document) {
sendAsyncMessage("DocumentInserted", {synthetic: aSubject.mozSyntheticDocument});
}
},
};
DocumentObserver.init();
const ZoomManager = {
get fullZoom() {
return this._cache.fullZoom;

View File

@ -18,6 +18,9 @@ skip-if = e10s
skip-if = e10s # Disabled for e10s: Bug ?????? - seems to be a timing issue with RemoteFinder.jsm messages coming later than the tests expect.
[browser_input_file_tooltips.js]
skip-if = e10s # Bug ?????? - test directly manipulates content (TypeError: doc.createElement is not a function)
[browser_isSynthetic.js]
support-files =
empty.png
[browser_keyevents_during_autoscrolling.js]
skip-if = e10s # Bug 921935 - focusmanager issues with e10s
[browser_save_resend_postdata.js]

View File

@ -0,0 +1,72 @@
function LocationChangeListener(browser) {
this.browser = browser;
browser.addProgressListener(this);
}
LocationChangeListener.prototype = {
wasSynthetic: false,
browser: null,
destroy: function() {
this.browser.removeProgressListener(this);
},
onLocationChange: function(webProgress, request, location, flags) {
this.wasSynthetic = this.browser.isSyntheticDocument;
},
QueryInterface: XPCOMUtils.generateQI([Ci.nsIWebProgressListener,
Ci.nsISupportsWeakReference])
}
const FILES = gTestPath.replace("browser_isSynthetic.js", "")
.replace("chrome://mochitests/content/", "http://example.com/");
function waitForPageShow(browser) {
return ContentTask.spawn(browser, null, function*() {
Cu.import("resource://gre/modules/PromiseUtils.jsm");
yield new Promise(resolve => {
let listener = () => {
removeEventListener("pageshow", listener, true);
resolve();
}
addEventListener("pageshow", listener, true);
});
});
}
add_task(function*() {
let tab = gBrowser.addTab("about:blank");
let browser = tab.linkedBrowser;
yield BrowserTestUtils.browserLoaded(browser);
let listener = new LocationChangeListener(browser);
is(browser.isSyntheticDocument, false, "Should not be synthetic");
let loadPromise = waitForPageShow(browser);
browser.loadURI("data:text/html;charset=utf-8,<html/>");
yield loadPromise;
is(listener.wasSynthetic, false, "Should not be synthetic");
is(browser.isSyntheticDocument, false, "Should not be synthetic");
loadPromise = waitForPageShow(browser);
browser.loadURI(FILES + "empty.png");
yield loadPromise;
is(listener.wasSynthetic, true, "Should be synthetic");
is(browser.isSyntheticDocument, true, "Should be synthetic");
loadPromise = waitForPageShow(browser);
browser.goBack();
yield loadPromise;
is(listener.wasSynthetic, false, "Should not be synthetic");
is(browser.isSyntheticDocument, false, "Should not be synthetic");
loadPromise = waitForPageShow(browser);
browser.goForward();
yield loadPromise;
is(listener.wasSynthetic, true, "Should be synthetic");
is(browser.isSyntheticDocument, true, "Should be synthetic");
listener.destroy();
gBrowser.removeTab(tab);
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -322,10 +322,6 @@
break;
}
case "DocumentInserted":
this._isSyntheticDocument = data.synthetic;
break;
case "FullZoomChange": {
this._fullZoom = data.value;
let event = document.createEvent("Events");

View File

@ -198,6 +198,7 @@ RemoteWebProgressManager.prototype = {
this._browser._imageDocument = null;
this._browser._mayEnableCharacterEncodingMenu = json.mayEnableCharacterEncodingMenu;
this._browser._contentPrincipal = json.principal;
this._browser._isSyntheticDocument = json.synthetic;
}
this._callProgressListeners("onLocationChange", webProgress, request, location, flags);

View File

@ -4636,7 +4636,7 @@ mozilla::BrowserTabsRemoteAutostart()
if (gSafeMode) {
LogE10sBlockedReason("Safe mode");
} else if (disabledForA11y) {
LogE10sBlockedReason("An accessibility tool is active");
LogE10sBlockedReason("An accessibility tool is or was active. See bug 1115956.");
} else if (disabledForIME) {
LogE10sBlockedReason("The keyboard being used has activated IME");
} else {

View File

@ -10,7 +10,7 @@
#include "nsISupports.idl"
[scriptable, uuid(8272a3d5-2a94-40c0-8ab6-be76583a0221)]
[scriptable, uuid(28bfb2a2-5ea6-4738-918b-049dc4d51f0b)]
interface nsIStackFrame : nsISupports
{
// see nsIProgrammingLanguage for list of language consts
@ -22,6 +22,8 @@ interface nsIStackFrame : nsISupports
readonly attribute int32_t lineNumber;
readonly attribute int32_t columnNumber;
readonly attribute AUTF8String sourceLine;
readonly attribute AString asyncCause;
readonly attribute nsIStackFrame asyncCaller;
readonly attribute nsIStackFrame caller;
// Returns a formatted stack string that looks like the sort of
@ -29,6 +31,10 @@ interface nsIStackFrame : nsISupports
// Only works on JS-language stack frames.
readonly attribute AString formattedStack;
// Returns the underlying SavedFrame object for native JavaScript stacks,
// or null if this is not a native JavaScript stack frame.
readonly attribute jsval nativeSavedFrame;
AUTF8String toString();
};