Merge m-c to m-i
@ -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
|
||||
|
@ -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"/>
|
||||
|
@ -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"/>
|
||||
|
@ -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"/>
|
||||
|
@ -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"/>
|
||||
|
@ -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"/>
|
||||
|
@ -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"/>
|
||||
|
@ -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"/>
|
||||
|
@ -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"/>
|
||||
|
@ -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"
|
||||
}
|
||||
|
@ -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"/>
|
||||
|
@ -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"/>
|
||||
|
@ -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">
|
||||
|
@ -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);
|
||||
},
|
||||
|
@ -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"
|
||||
|
@ -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;
|
||||
|
@ -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();"/>
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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 {
|
||||
|
@ -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,
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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.
|
||||
*
|
||||
|
@ -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,
|
||||
|
23
js/xpconnect/tests/unit/test_callFunctionWithAsyncStack.js
Normal 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);
|
||||
}
|
@ -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]
|
||||
|
@ -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
|
||||
|
Before Width: | Height: | Size: 311 B |
BIN
mobile/android/base/resources/drawable-hdpi/dropshadow.9.png
Normal file
After Width: | Height: | Size: 455 B |
Before Width: | Height: | Size: 254 B |
BIN
mobile/android/base/resources/drawable-mdpi/dropshadow.9.png
Normal file
After Width: | Height: | Size: 287 B |
Before Width: | Height: | Size: 355 B |
BIN
mobile/android/base/resources/drawable-xhdpi/dropshadow.9.png
Normal file
After Width: | Height: | Size: 664 B |
BIN
mobile/android/base/resources/drawable-xxhdpi/dropshadow.9.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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 },
|
||||
|
@ -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}}'
|
||||
|
@ -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}}'
|
||||
|
@ -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;
|
||||
|
@ -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]
|
||||
|
72
toolkit/content/tests/browser/browser_isSynthetic.js
Normal 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);
|
||||
});
|
BIN
toolkit/content/tests/browser/empty.png
Normal file
After Width: | Height: | Size: 14 KiB |
@ -322,10 +322,6 @@
|
||||
break;
|
||||
}
|
||||
|
||||
case "DocumentInserted":
|
||||
this._isSyntheticDocument = data.synthetic;
|
||||
break;
|
||||
|
||||
case "FullZoomChange": {
|
||||
this._fullZoom = data.value;
|
||||
let event = document.createEvent("Events");
|
||||
|
@ -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);
|
||||
|
@ -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 {
|
||||
|
@ -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();
|
||||
};
|
||||
|
||||
|