mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-02 01:48:05 +00:00
Merge mozilla-central to mozilla-inbound
This commit is contained in:
commit
6a9193cd5b
@ -15,7 +15,7 @@
|
|||||||
<project name="platform_build" path="build" remote="b2g" revision="3ab0d9c70f0b2e1ededc679112c392303f037361">
|
<project name="platform_build" path="build" remote="b2g" revision="3ab0d9c70f0b2e1ededc679112c392303f037361">
|
||||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||||
</project>
|
</project>
|
||||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="ca6e91e09ef3ab417a0f6b6d6668d43597d85700"/>
|
<project name="gaia" path="gaia" remote="mozillaorg" revision="c5b03a9b40a37947d44a71eccd9017e76632f796"/>
|
||||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
||||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||||
@ -129,7 +129,7 @@
|
|||||||
<!-- Stock Android things -->
|
<!-- Stock Android things -->
|
||||||
<project name="platform/external/icu4c" path="external/icu4c" revision="2bb01561780583cc37bc667f0ea79f48a122d8a2"/>
|
<project name="platform/external/icu4c" path="external/icu4c" revision="2bb01561780583cc37bc667f0ea79f48a122d8a2"/>
|
||||||
<!-- dolphin specific things -->
|
<!-- dolphin specific things -->
|
||||||
<project name="device/sprd" path="device/sprd" revision="b007fe5fb2c214bd71133378248113e6e74ce4d9"/>
|
<project name="device/sprd" path="device/sprd" revision="14267a1ca51dcefe56d031245c6252c9d7402ce5"/>
|
||||||
<project name="platform/external/wpa_supplicant_8" path="external/wpa_supplicant_8" revision="4e58336019b5cbcfd134caf55b142236cf986618"/>
|
<project name="platform/external/wpa_supplicant_8" path="external/wpa_supplicant_8" revision="4e58336019b5cbcfd134caf55b142236cf986618"/>
|
||||||
<project name="platform/frameworks/av" path="frameworks/av" revision="4387fe988e5a1001f29ce05fcfda03ed2d32137b"/>
|
<project name="platform/frameworks/av" path="frameworks/av" revision="4387fe988e5a1001f29ce05fcfda03ed2d32137b"/>
|
||||||
<project name="platform/hardware/akm" path="hardware/akm" revision="6d3be412647b0eab0adff8a2768736cf4eb68039"/>
|
<project name="platform/hardware/akm" path="hardware/akm" revision="6d3be412647b0eab0adff8a2768736cf4eb68039"/>
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||||
</project>
|
</project>
|
||||||
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
|
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
|
||||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="ca6e91e09ef3ab417a0f6b6d6668d43597d85700"/>
|
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="c5b03a9b40a37947d44a71eccd9017e76632f796"/>
|
||||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
||||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||||
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="d5d3f93914558b6f168447b805cd799c8233e300"/>
|
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="d5d3f93914558b6f168447b805cd799c8233e300"/>
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
</project>
|
</project>
|
||||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="ca6e91e09ef3ab417a0f6b6d6668d43597d85700"/>
|
<project name="gaia" path="gaia" remote="mozillaorg" revision="c5b03a9b40a37947d44a71eccd9017e76632f796"/>
|
||||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
||||||
<project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
|
<project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
|
||||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="f11d3c6500659e3232fbe6fe7ea0204c40ab7fdd"/>
|
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="f11d3c6500659e3232fbe6fe7ea0204c40ab7fdd"/>
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
<project name="platform_build" path="build" remote="b2g" revision="3ab0d9c70f0b2e1ededc679112c392303f037361">
|
<project name="platform_build" path="build" remote="b2g" revision="3ab0d9c70f0b2e1ededc679112c392303f037361">
|
||||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||||
</project>
|
</project>
|
||||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="ca6e91e09ef3ab417a0f6b6d6668d43597d85700"/>
|
<project name="gaia" path="gaia" remote="mozillaorg" revision="c5b03a9b40a37947d44a71eccd9017e76632f796"/>
|
||||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
||||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||||
</project>
|
</project>
|
||||||
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
|
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
|
||||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="ca6e91e09ef3ab417a0f6b6d6668d43597d85700"/>
|
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="c5b03a9b40a37947d44a71eccd9017e76632f796"/>
|
||||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
||||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||||
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="d5d3f93914558b6f168447b805cd799c8233e300"/>
|
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="d5d3f93914558b6f168447b805cd799c8233e300"/>
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
<project name="platform_build" path="build" remote="b2g" revision="3ab0d9c70f0b2e1ededc679112c392303f037361">
|
<project name="platform_build" path="build" remote="b2g" revision="3ab0d9c70f0b2e1ededc679112c392303f037361">
|
||||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||||
</project>
|
</project>
|
||||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="ca6e91e09ef3ab417a0f6b6d6668d43597d85700"/>
|
<project name="gaia" path="gaia" remote="mozillaorg" revision="c5b03a9b40a37947d44a71eccd9017e76632f796"/>
|
||||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
||||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
</project>
|
</project>
|
||||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="ca6e91e09ef3ab417a0f6b6d6668d43597d85700"/>
|
<project name="gaia" path="gaia" remote="mozillaorg" revision="c5b03a9b40a37947d44a71eccd9017e76632f796"/>
|
||||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
||||||
<project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
|
<project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
|
||||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="f11d3c6500659e3232fbe6fe7ea0204c40ab7fdd"/>
|
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="f11d3c6500659e3232fbe6fe7ea0204c40ab7fdd"/>
|
||||||
|
@ -4,6 +4,6 @@
|
|||||||
"remote": "",
|
"remote": "",
|
||||||
"branch": ""
|
"branch": ""
|
||||||
},
|
},
|
||||||
"revision": "3d66911e8f085901b6302ec2b40bc89bc5322db4",
|
"revision": "24f27472ae6ddb6c819227cb3b7d398a6925ef86",
|
||||||
"repo_path": "integration/gaia-central"
|
"repo_path": "integration/gaia-central"
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||||
</project>
|
</project>
|
||||||
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
|
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
|
||||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="ca6e91e09ef3ab417a0f6b6d6668d43597d85700"/>
|
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="c5b03a9b40a37947d44a71eccd9017e76632f796"/>
|
||||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
||||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||||
<project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
|
<project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||||
</project>
|
</project>
|
||||||
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
|
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
|
||||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="ca6e91e09ef3ab417a0f6b6d6668d43597d85700"/>
|
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="c5b03a9b40a37947d44a71eccd9017e76632f796"/>
|
||||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
||||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
</project>
|
</project>
|
||||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="ca6e91e09ef3ab417a0f6b6d6668d43597d85700"/>
|
<project name="gaia" path="gaia" remote="mozillaorg" revision="c5b03a9b40a37947d44a71eccd9017e76632f796"/>
|
||||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
||||||
<project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
|
<project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
|
||||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="f11d3c6500659e3232fbe6fe7ea0204c40ab7fdd"/>
|
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="f11d3c6500659e3232fbe6fe7ea0204c40ab7fdd"/>
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||||
</project>
|
</project>
|
||||||
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
|
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
|
||||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="ca6e91e09ef3ab417a0f6b6d6668d43597d85700"/>
|
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="c5b03a9b40a37947d44a71eccd9017e76632f796"/>
|
||||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="8aee09c106f479f36c57b2a29af72d455e359211"/>
|
||||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||||
|
@ -444,6 +444,13 @@ panel[noactions] > richlistbox > richlistitem[type~="action"] > .ac-url-box > .a
|
|||||||
margin-left: -23px;
|
margin-left: -23px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Overlay a badge on top of the icon of additional open search providers
|
||||||
|
in the search panel. */
|
||||||
|
.addengine-item > .button-box > .button-icon {
|
||||||
|
-moz-binding: url("chrome://browser/content/urlbarBindings.xml#addengine-icon");
|
||||||
|
display: -moz-stack;
|
||||||
|
}
|
||||||
|
|
||||||
searchbar[oneoffui] {
|
searchbar[oneoffui] {
|
||||||
-moz-binding: url("chrome://browser/content/search/search.xml#searchbar-flare") !important;
|
-moz-binding: url("chrome://browser/content/search/search.xml#searchbar-flare") !important;
|
||||||
}
|
}
|
||||||
|
@ -3308,8 +3308,32 @@ const BrowserSearch = {
|
|||||||
|
|
||||||
if (hidden)
|
if (hidden)
|
||||||
browser.hiddenEngines = engines;
|
browser.hiddenEngines = engines;
|
||||||
else
|
else {
|
||||||
browser.engines = engines;
|
browser.engines = engines;
|
||||||
|
if (browser == gBrowser.selectedBrowser)
|
||||||
|
this.updateSearchButton();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the browser UI to show whether or not additional engines are
|
||||||
|
* available when a page is loaded or the user switches tabs to a page that
|
||||||
|
* has search engines.
|
||||||
|
*/
|
||||||
|
updateSearchButton: function() {
|
||||||
|
var searchBar = this.searchBar;
|
||||||
|
|
||||||
|
// The search bar binding might not be applied even though the element is
|
||||||
|
// in the document (e.g. when the navigation toolbar is hidden), so check
|
||||||
|
// for .searchButton specifically.
|
||||||
|
if (!searchBar || !searchBar.searchButton)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var engines = gBrowser.selectedBrowser.engines;
|
||||||
|
if (engines && engines.length > 0)
|
||||||
|
searchBar.setAttribute("addengines", "true");
|
||||||
|
else
|
||||||
|
searchBar.removeAttribute("addengines");
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -4326,6 +4350,7 @@ var XULBrowserWindow = {
|
|||||||
|
|
||||||
asyncUpdateUI: function () {
|
asyncUpdateUI: function () {
|
||||||
FeedHandler.updateFeeds();
|
FeedHandler.updateFeeds();
|
||||||
|
BrowserSearch.updateSearchButton();
|
||||||
},
|
},
|
||||||
|
|
||||||
// Left here for add-on compatibility, see bug 752434
|
// Left here for add-on compatibility, see bug 752434
|
||||||
|
@ -411,7 +411,7 @@ skip-if = buildapp == 'mulet' || e10s
|
|||||||
[browser_tabMatchesInAwesomebar.js]
|
[browser_tabMatchesInAwesomebar.js]
|
||||||
skip-if = e10s # Bug 1093206 - need to re-enable tests relying on swapFrameLoaders et al for e10s (test calls gBrowser.swapBrowsersAndCloseOther)
|
skip-if = e10s # Bug 1093206 - need to re-enable tests relying on swapFrameLoaders et al for e10s (test calls gBrowser.swapBrowsersAndCloseOther)
|
||||||
[browser_tabMatchesInAwesomebar_perwindowpb.js]
|
[browser_tabMatchesInAwesomebar_perwindowpb.js]
|
||||||
skip-if = e10s # Bug 1093373
|
skip-if = e10s || linux # Bug 1093373, bug 1104755
|
||||||
[browser_tab_drag_drop_perwindow.js]
|
[browser_tab_drag_drop_perwindow.js]
|
||||||
skip-if = buildapp == 'mulet'
|
skip-if = buildapp == 'mulet'
|
||||||
[browser_tab_dragdrop.js]
|
[browser_tab_dragdrop.js]
|
||||||
|
@ -1234,6 +1234,13 @@
|
|||||||
</handlers>
|
</handlers>
|
||||||
</binding>
|
</binding>
|
||||||
|
|
||||||
|
<!-- Used for additional open search providers in the search panel. -->
|
||||||
|
<binding id="addengine-icon" extends="xul:box">
|
||||||
|
<content>
|
||||||
|
<xul:image class="addengine-icon" xbl:inherits="src"/>
|
||||||
|
<xul:image class="addengine-badge"/>
|
||||||
|
</content>
|
||||||
|
</binding>
|
||||||
|
|
||||||
<binding id="urlbar-rich-result-popup" extends="chrome://global/content/bindings/autocomplete.xml#autocomplete-rich-result-popup">
|
<binding id="urlbar-rich-result-popup" extends="chrome://global/content/bindings/autocomplete.xml#autocomplete-rich-result-popup">
|
||||||
<implementation>
|
<implementation>
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||||
|
Components.utils.import("resource://gre/modules/PlacesUtils.jsm");
|
||||||
|
|
||||||
const ENGINE_FLAVOR = "text/x-moz-search-engine";
|
const ENGINE_FLAVOR = "text/x-moz-search-engine";
|
||||||
|
|
||||||
@ -52,8 +53,10 @@ var gSearchPane = {
|
|||||||
gEngineView._engineStore._engines.forEach(e => {
|
gEngineView._engineStore._engines.forEach(e => {
|
||||||
let item = list.appendItem(e.name);
|
let item = list.appendItem(e.name);
|
||||||
item.setAttribute("class", "menuitem-iconic searchengine-menuitem menuitem-with-favicon");
|
item.setAttribute("class", "menuitem-iconic searchengine-menuitem menuitem-with-favicon");
|
||||||
if (e.iconURI)
|
if (e.iconURI) {
|
||||||
item.setAttribute("image", e.iconURI.spec);
|
let uri = PlacesUtils.getImageURLForResolution(window, e.iconURI.spec);
|
||||||
|
item.setAttribute("image", uri);
|
||||||
|
}
|
||||||
item.engine = e;
|
item.engine = e;
|
||||||
if (e.name == currentEngine)
|
if (e.name == currentEngine)
|
||||||
list.selectedItem = item;
|
list.selectedItem = item;
|
||||||
@ -362,8 +365,10 @@ EngineView.prototype = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
getImageSrc: function(index, column) {
|
getImageSrc: function(index, column) {
|
||||||
if (column.id == "engineName" && this._engineStore.engines[index].iconURI)
|
if (column.id == "engineName" && this._engineStore.engines[index].iconURI) {
|
||||||
return this._engineStore.engines[index].iconURI.spec;
|
let uri = this._engineStore.engines[index].iconURI.spec;
|
||||||
|
return PlacesUtils.getImageURLForResolution(window, uri);
|
||||||
|
}
|
||||||
return "";
|
return "";
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||||
|
Components.utils.import("resource://gre/modules/PlacesUtils.jsm");
|
||||||
|
|
||||||
const ENGINE_FLAVOR = "text/x-moz-search-engine";
|
const ENGINE_FLAVOR = "text/x-moz-search-engine";
|
||||||
|
|
||||||
@ -45,8 +46,10 @@ var gSearchPane = {
|
|||||||
gEngineView._engineStore._engines.forEach(e => {
|
gEngineView._engineStore._engines.forEach(e => {
|
||||||
let item = list.appendItem(e.name);
|
let item = list.appendItem(e.name);
|
||||||
item.setAttribute("class", "menuitem-iconic searchengine-menuitem menuitem-with-favicon");
|
item.setAttribute("class", "menuitem-iconic searchengine-menuitem menuitem-with-favicon");
|
||||||
if (e.iconURI)
|
if (e.iconURI) {
|
||||||
item.setAttribute("image", e.iconURI.spec);
|
let uri = PlacesUtils.getImageURLForResolution(window, e.iconURI.spec);
|
||||||
|
item.setAttribute("image", uri);
|
||||||
|
}
|
||||||
item.engine = e;
|
item.engine = e;
|
||||||
if (e.name == currentEngine)
|
if (e.name == currentEngine)
|
||||||
list.selectedItem = item;
|
list.selectedItem = item;
|
||||||
@ -433,8 +436,10 @@ EngineView.prototype = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
getImageSrc: function(index, column) {
|
getImageSrc: function(index, column) {
|
||||||
if (column.id == "engineName" && this._engineStore.engines[index].iconURI)
|
if (column.id == "engineName" && this._engineStore.engines[index].iconURI) {
|
||||||
return this._engineStore.engines[index].iconURI.spec;
|
let uri = this._engineStore.engines[index].iconURI.spec;
|
||||||
|
return PlacesUtils.getImageURLForResolution(window, uri);
|
||||||
|
}
|
||||||
return "";
|
return "";
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -121,13 +121,17 @@
|
|||||||
|
|
||||||
// Make sure to break the cycle from _textbox to us. Otherwise we leak
|
// Make sure to break the cycle from _textbox to us. Otherwise we leak
|
||||||
// the world. But make sure it's actually pointing to us.
|
// the world. But make sure it's actually pointing to us.
|
||||||
if (this._textbox.mController.input == this)
|
// Also make sure the textbox has ever been constructed, otherwise the
|
||||||
|
// _textbox getter will cause the textbox constructor to run, add an
|
||||||
|
// observer, and leak the world too.
|
||||||
|
if (this._textboxInitialized && this._textbox.mController.input == this)
|
||||||
this._textbox.mController.input = null;
|
this._textbox.mController.input = null;
|
||||||
]]></body>
|
]]></body>
|
||||||
</method>
|
</method>
|
||||||
|
|
||||||
<field name="_stringBundle">document.getAnonymousElementByAttribute(this,
|
<field name="_stringBundle">document.getAnonymousElementByAttribute(this,
|
||||||
"anonid", "searchbar-stringbundle");</field>
|
"anonid", "searchbar-stringbundle");</field>
|
||||||
|
<field name="_textboxInitialized">false</field>
|
||||||
<field name="_textbox">document.getAnonymousElementByAttribute(this,
|
<field name="_textbox">document.getAnonymousElementByAttribute(this,
|
||||||
"anonid", "searchbar-textbox");</field>
|
"anonid", "searchbar-textbox");</field>
|
||||||
<field name="_popup">document.getAnonymousElementByAttribute(this,
|
<field name="_popup">document.getAnonymousElementByAttribute(this,
|
||||||
@ -270,6 +274,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
BrowserSearch.updateSearchButton();
|
||||||
]]></body>
|
]]></body>
|
||||||
</method>
|
</method>
|
||||||
|
|
||||||
@ -295,6 +300,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
BrowserSearch.updateSearchButton();
|
||||||
]]></body>
|
]]></body>
|
||||||
</method>
|
</method>
|
||||||
|
|
||||||
@ -605,6 +611,7 @@
|
|||||||
<xul:hbox class="searchbar-search-button-container">
|
<xul:hbox class="searchbar-search-button-container">
|
||||||
<xul:image class="searchbar-search-button"
|
<xul:image class="searchbar-search-button"
|
||||||
anonid="searchbar-search-button"
|
anonid="searchbar-search-button"
|
||||||
|
xbl:inherits="addengines"
|
||||||
tooltiptext="&searchEndCap.label;"/>
|
tooltiptext="&searchEndCap.label;"/>
|
||||||
</xul:hbox>
|
</xul:hbox>
|
||||||
<xul:button class="searchbar-engine-button"
|
<xul:button class="searchbar-engine-button"
|
||||||
@ -777,6 +784,7 @@
|
|||||||
cxmenu.appendChild(element);
|
cxmenu.appendChild(element);
|
||||||
|
|
||||||
this.controllers.appendController(this.searchbarController);
|
this.controllers.appendController(this.searchbarController);
|
||||||
|
document.getBindingParent(this)._textboxInitialized = true;
|
||||||
|
|
||||||
// Add observer for suggest preference
|
// Add observer for suggest preference
|
||||||
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
|
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
|
||||||
|
@ -72,6 +72,7 @@ browser.jar:
|
|||||||
skin/classic/browser/search-indicator-add-engine.png (../shared/search/search-indicator-add-engine.png)
|
skin/classic/browser/search-indicator-add-engine.png (../shared/search/search-indicator-add-engine.png)
|
||||||
skin/classic/browser/search-engine-placeholder.png (../shared/search/search-engine-placeholder.png)
|
skin/classic/browser/search-engine-placeholder.png (../shared/search/search-engine-placeholder.png)
|
||||||
skin/classic/browser/badge-add-engine.png (../shared/search/badge-add-engine.png)
|
skin/classic/browser/badge-add-engine.png (../shared/search/badge-add-engine.png)
|
||||||
|
skin/classic/browser/search-indicator-badge-add.png (../shared/search/search-indicator-badge-add.png)
|
||||||
skin/classic/browser/Secure.png
|
skin/classic/browser/Secure.png
|
||||||
skin/classic/browser/Security-broken.png
|
skin/classic/browser/Security-broken.png
|
||||||
skin/classic/browser/setDesktopBackground.css
|
skin/classic/browser/setDesktopBackground.css
|
||||||
|
@ -82,6 +82,10 @@ menuitem[cmd="cmd_clearhistory"][disabled] {
|
|||||||
margin: -2px -2px;
|
margin: -2px -2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.searchbar-search-button[addengines="true"] {
|
||||||
|
list-style-image: url("chrome://browser/skin/search-indicator-badge-add.png");
|
||||||
|
}
|
||||||
|
|
||||||
.searchbar-search-button:hover {
|
.searchbar-search-button:hover {
|
||||||
-moz-image-region: rect(0, 40px, 20px, 20px);
|
-moz-image-region: rect(0, 40px, 20px, 20px);
|
||||||
}
|
}
|
||||||
@ -202,10 +206,17 @@ searchbar[oneoffui] .search-go-button:-moz-locale-dir(rtl) > .toolbarbutton-icon
|
|||||||
color: HighlightText;
|
color: HighlightText;
|
||||||
}
|
}
|
||||||
|
|
||||||
.addengine-item > .button-box > .button-icon {
|
.addengine-icon {
|
||||||
width: 16px;
|
width: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.addengine-badge {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin: -7px -9px 7px 9px;
|
||||||
|
list-style-image: url("chrome://browser/skin/badge-add-engine.png");
|
||||||
|
}
|
||||||
|
|
||||||
.addengine-item > .button-box > .button-text {
|
.addengine-item > .button-box > .button-text {
|
||||||
-moz-box-flex: 1;
|
-moz-box-flex: 1;
|
||||||
text-align: start;
|
text-align: start;
|
||||||
|
@ -113,6 +113,8 @@ browser.jar:
|
|||||||
skin/classic/browser/search-engine-placeholder@2x.png (../shared/search/search-engine-placeholder@2x.png)
|
skin/classic/browser/search-engine-placeholder@2x.png (../shared/search/search-engine-placeholder@2x.png)
|
||||||
skin/classic/browser/badge-add-engine.png (../shared/search/badge-add-engine.png)
|
skin/classic/browser/badge-add-engine.png (../shared/search/badge-add-engine.png)
|
||||||
skin/classic/browser/badge-add-engine@2x.png (../shared/search/badge-add-engine@2x.png)
|
skin/classic/browser/badge-add-engine@2x.png (../shared/search/badge-add-engine@2x.png)
|
||||||
|
skin/classic/browser/search-indicator-badge-add.png (../shared/search/search-indicator-badge-add.png)
|
||||||
|
skin/classic/browser/search-indicator-badge-add@2x.png (../shared/search/search-indicator-badge-add@2x.png)
|
||||||
skin/classic/browser/Secure-Glyph.png
|
skin/classic/browser/Secure-Glyph.png
|
||||||
skin/classic/browser/Secure-Glyph@2x.png
|
skin/classic/browser/Secure-Glyph@2x.png
|
||||||
skin/classic/browser/slowStartup-16.png
|
skin/classic/browser/slowStartup-16.png
|
||||||
|
@ -63,6 +63,10 @@
|
|||||||
margin: 0 -3px;
|
margin: 0 -3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.searchbar-search-button[addengines="true"] {
|
||||||
|
list-style-image: url("chrome://browser/skin/search-indicator-badge-add.png");
|
||||||
|
}
|
||||||
|
|
||||||
.searchbar-search-button:hover {
|
.searchbar-search-button:hover {
|
||||||
-moz-image-region: rect(0, 40px, 20px, 20px);
|
-moz-image-region: rect(0, 40px, 20px, 20px);
|
||||||
}
|
}
|
||||||
@ -105,6 +109,10 @@ searchbar[oneoffui] .search-go-button:-moz-locale-dir(rtl) > .toolbarbutton-icon
|
|||||||
-moz-image-region: rect(0, 40px, 40px, 0);
|
-moz-image-region: rect(0, 40px, 40px, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.searchbar-search-button[addengines="true"] {
|
||||||
|
list-style-image: url("chrome://browser/skin/search-indicator-badge-add@2x.png");
|
||||||
|
}
|
||||||
|
|
||||||
.searchbar-search-button:hover {
|
.searchbar-search-button:hover {
|
||||||
-moz-image-region: rect(0, 80px, 40px, 40px);
|
-moz-image-region: rect(0, 80px, 40px, 40px);
|
||||||
}
|
}
|
||||||
@ -213,10 +221,17 @@ searchbar[oneoffui] .search-go-button:-moz-locale-dir(rtl) > .toolbarbutton-icon
|
|||||||
color: HighlightText;
|
color: HighlightText;
|
||||||
}
|
}
|
||||||
|
|
||||||
.addengine-item > .button-box > .button-icon {
|
.addengine-icon {
|
||||||
width: 16px;
|
width: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.addengine-badge {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin: -7px -9px 7px 9px;
|
||||||
|
list-style-image: url("chrome://browser/skin/badge-add-engine.png");
|
||||||
|
}
|
||||||
|
|
||||||
.addengine-item > .button-box > .button-text {
|
.addengine-item > .button-box > .button-text {
|
||||||
-moz-box-flex: 1;
|
-moz-box-flex: 1;
|
||||||
text-align: start;
|
text-align: start;
|
||||||
@ -228,6 +243,10 @@ searchbar[oneoffui] .search-go-button:-moz-locale-dir(rtl) > .toolbarbutton-icon
|
|||||||
}
|
}
|
||||||
|
|
||||||
@media (min-resolution: 2dppx) {
|
@media (min-resolution: 2dppx) {
|
||||||
|
.addengine-badge {
|
||||||
|
list-style-image: url("chrome://browser/skin/badge-add-engine@2x.png");
|
||||||
|
}
|
||||||
|
|
||||||
.addengine-item:not([image]) {
|
.addengine-item:not([image]) {
|
||||||
list-style-image: url("chrome://browser/skin/search-engine-placeholder@2x.png");
|
list-style-image: url("chrome://browser/skin/search-engine-placeholder@2x.png");
|
||||||
}
|
}
|
||||||
|
BIN
browser/themes/shared/search/search-indicator-badge-add.png
Normal file
BIN
browser/themes/shared/search/search-indicator-badge-add.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1000 B |
BIN
browser/themes/shared/search/search-indicator-badge-add@2x.png
Normal file
BIN
browser/themes/shared/search/search-indicator-badge-add@2x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.2 KiB |
@ -87,6 +87,7 @@ browser.jar:
|
|||||||
skin/classic/browser/search-indicator-add-engine.png (../shared/search/search-indicator-add-engine.png)
|
skin/classic/browser/search-indicator-add-engine.png (../shared/search/search-indicator-add-engine.png)
|
||||||
skin/classic/browser/search-engine-placeholder.png (../shared/search/search-engine-placeholder.png)
|
skin/classic/browser/search-engine-placeholder.png (../shared/search/search-engine-placeholder.png)
|
||||||
skin/classic/browser/badge-add-engine.png (../shared/search/badge-add-engine.png)
|
skin/classic/browser/badge-add-engine.png (../shared/search/badge-add-engine.png)
|
||||||
|
skin/classic/browser/search-indicator-badge-add.png (../shared/search/search-indicator-badge-add.png)
|
||||||
skin/classic/browser/Secure24.png
|
skin/classic/browser/Secure24.png
|
||||||
skin/classic/browser/setDesktopBackground.css
|
skin/classic/browser/setDesktopBackground.css
|
||||||
skin/classic/browser/slowStartup-16.png
|
skin/classic/browser/slowStartup-16.png
|
||||||
@ -538,6 +539,7 @@ browser.jar:
|
|||||||
skin/classic/aero/browser/search-indicator-add-engine.png (../shared/search/search-indicator-add-engine.png)
|
skin/classic/aero/browser/search-indicator-add-engine.png (../shared/search/search-indicator-add-engine.png)
|
||||||
skin/classic/aero/browser/search-engine-placeholder.png (../shared/search/search-engine-placeholder.png)
|
skin/classic/aero/browser/search-engine-placeholder.png (../shared/search/search-engine-placeholder.png)
|
||||||
skin/classic/aero/browser/badge-add-engine.png (../shared/search/badge-add-engine.png)
|
skin/classic/aero/browser/badge-add-engine.png (../shared/search/badge-add-engine.png)
|
||||||
|
skin/classic/aero/browser/search-indicator-badge-add.png (../shared/search/search-indicator-badge-add.png)
|
||||||
skin/classic/aero/browser/Secure24.png (Secure24-aero.png)
|
skin/classic/aero/browser/Secure24.png (Secure24-aero.png)
|
||||||
skin/classic/aero/browser/setDesktopBackground.css
|
skin/classic/aero/browser/setDesktopBackground.css
|
||||||
skin/classic/aero/browser/slowStartup-16.png
|
skin/classic/aero/browser/slowStartup-16.png
|
||||||
|
@ -93,6 +93,10 @@
|
|||||||
margin: -2px -2px;
|
margin: -2px -2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.searchbar-search-button[addengines="true"] {
|
||||||
|
list-style-image: url("chrome://browser/skin/search-indicator-badge-add.png");
|
||||||
|
}
|
||||||
|
|
||||||
.searchbar-search-button:hover {
|
.searchbar-search-button:hover {
|
||||||
-moz-image-region: rect(0, 40px, 20px, 20px);
|
-moz-image-region: rect(0, 40px, 20px, 20px);
|
||||||
}
|
}
|
||||||
@ -212,10 +216,17 @@ searchbar[oneoffui] .search-go-button:-moz-locale-dir(rtl) > .toolbarbutton-icon
|
|||||||
color: HighlightText;
|
color: HighlightText;
|
||||||
}
|
}
|
||||||
|
|
||||||
.addengine-item > .button-box > .button-icon {
|
.addengine-icon {
|
||||||
width: 16px;
|
width: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.addengine-badge {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin: -7px -9px 7px 9px;
|
||||||
|
list-style-image: url("chrome://browser/skin/badge-add-engine.png");
|
||||||
|
}
|
||||||
|
|
||||||
.addengine-item > .button-box > .button-text {
|
.addengine-item > .button-box > .button-text {
|
||||||
-moz-box-flex: 1;
|
-moz-box-flex: 1;
|
||||||
text-align: start;
|
text-align: start;
|
||||||
|
@ -214,6 +214,10 @@ static const char* sClipboardTextFlavors[] = { kUnicodeMime };
|
|||||||
|
|
||||||
using base::ChildPrivileges;
|
using base::ChildPrivileges;
|
||||||
using base::KillProcess;
|
using base::KillProcess;
|
||||||
|
|
||||||
|
#ifdef MOZ_CRASHREPORTER
|
||||||
|
using namespace CrashReporter;
|
||||||
|
#endif
|
||||||
using namespace mozilla::dom::bluetooth;
|
using namespace mozilla::dom::bluetooth;
|
||||||
using namespace mozilla::dom::cellbroadcast;
|
using namespace mozilla::dom::cellbroadcast;
|
||||||
using namespace mozilla::dom::devicestorage;
|
using namespace mozilla::dom::devicestorage;
|
||||||
@ -1797,7 +1801,16 @@ ContentParent::ActorDestroy(ActorDestroyReason why)
|
|||||||
NS_ConvertUTF16toUTF8(mAppManifestURL));
|
NS_ConvertUTF16toUTF8(mAppManifestURL));
|
||||||
}
|
}
|
||||||
|
|
||||||
crashReporter->GenerateCrashReport(this, nullptr);
|
if (mCreatedPairedMinidumps) {
|
||||||
|
// We killed the child with KillHard, so two minidumps should already
|
||||||
|
// exist - one for the content process, and one for the browser process.
|
||||||
|
// The "main" minidump of this crash report is the content processes,
|
||||||
|
// and we use GenerateChildData to annotate our crash report with
|
||||||
|
// information about the child process.
|
||||||
|
crashReporter->GenerateChildData(nullptr);
|
||||||
|
} else {
|
||||||
|
crashReporter->GenerateCrashReport(this, nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
nsAutoString dumpID(crashReporter->ChildDumpID());
|
nsAutoString dumpID(crashReporter->ChildDumpID());
|
||||||
props->SetPropertyAsAString(NS_LITERAL_STRING("dumpID"), dumpID);
|
props->SetPropertyAsAString(NS_LITERAL_STRING("dumpID"), dumpID);
|
||||||
@ -1933,6 +1946,7 @@ ContentParent::InitializeMembers()
|
|||||||
mCalledClose = false;
|
mCalledClose = false;
|
||||||
mCalledCloseWithError = false;
|
mCalledCloseWithError = false;
|
||||||
mCalledKillHard = false;
|
mCalledKillHard = false;
|
||||||
|
mCreatedPairedMinidumps = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ContentParent::ContentParent(mozIApplication* aApp,
|
ContentParent::ContentParent(mozIApplication* aApp,
|
||||||
@ -3090,10 +3104,32 @@ ContentParent::KillHard()
|
|||||||
}
|
}
|
||||||
mCalledKillHard = true;
|
mCalledKillHard = true;
|
||||||
mForceKillTask = nullptr;
|
mForceKillTask = nullptr;
|
||||||
// This ensures the process is eventually killed, but doesn't
|
|
||||||
// immediately KILLITWITHFIRE because we want to get a minidump if
|
#if defined(MOZ_CRASHREPORTER) && !defined(MOZ_B2G)
|
||||||
// possible. After a timeout though, the process is forceably
|
if (ManagedPCrashReporterParent().Length() > 0) {
|
||||||
// killed.
|
CrashReporterParent* crashReporter =
|
||||||
|
static_cast<CrashReporterParent*>(ManagedPCrashReporterParent()[0]);
|
||||||
|
|
||||||
|
// We're about to kill the child process associated with this
|
||||||
|
// ContentParent. Something has gone wrong to get us here,
|
||||||
|
// so we generate a minidump to be potentially submitted in
|
||||||
|
// a crash report. ContentParent::ActorDestroy is where the
|
||||||
|
// actual report gets generated, once the child process has
|
||||||
|
// finally died.
|
||||||
|
if (crashReporter->GeneratePairedMinidump(this)) {
|
||||||
|
mCreatedPairedMinidumps = true;
|
||||||
|
// GeneratePairedMinidump created two minidumps for us - the main
|
||||||
|
// one is for the content process we're about to kill, and the other
|
||||||
|
// one is for the main browser process. That second one is the extra
|
||||||
|
// minidump tagging along, so we have to tell the crash reporter that
|
||||||
|
// it exists and is being appended.
|
||||||
|
nsAutoCString additionalDumps("browser");
|
||||||
|
crashReporter->AnnotateCrashReport(
|
||||||
|
NS_LITERAL_CSTRING("additional_minidumps"),
|
||||||
|
additionalDumps);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (!KillProcess(OtherProcess(), 1, false)) {
|
if (!KillProcess(OtherProcess(), 1, false)) {
|
||||||
NS_WARNING("failed to kill subprocess!");
|
NS_WARNING("failed to kill subprocess!");
|
||||||
}
|
}
|
||||||
|
@ -795,6 +795,7 @@ private:
|
|||||||
bool mCalledClose;
|
bool mCalledClose;
|
||||||
bool mCalledCloseWithError;
|
bool mCalledCloseWithError;
|
||||||
bool mCalledKillHard;
|
bool mCalledKillHard;
|
||||||
|
bool mCreatedPairedMinidumps;
|
||||||
|
|
||||||
friend class CrashReporterParent;
|
friend class CrashReporterParent;
|
||||||
|
|
||||||
|
@ -2491,26 +2491,75 @@ this.GECKO_NETWORK_STATE_CONNECTED = 1;
|
|||||||
this.GECKO_NETWORK_STATE_DISCONNECTING = 2;
|
this.GECKO_NETWORK_STATE_DISCONNECTING = 2;
|
||||||
this.GECKO_NETWORK_STATE_DISCONNECTED = 3;
|
this.GECKO_NETWORK_STATE_DISCONNECTED = 3;
|
||||||
|
|
||||||
|
// 3GPP 24.008 Annex H.
|
||||||
this.CALL_FAIL_UNOBTAINABLE_NUMBER = 1;
|
this.CALL_FAIL_UNOBTAINABLE_NUMBER = 1;
|
||||||
|
this.CALL_FAIL_NO_ROUTE_TO_DESTINATION = 3;
|
||||||
|
this.CALL_FAIL_CHANNEL_UNACCEPTABLE = 6;
|
||||||
|
this.CALL_FAIL_OPERATOR_DETERMINED_BARRING = 8;
|
||||||
this.CALL_FAIL_NORMAL = 16;
|
this.CALL_FAIL_NORMAL = 16;
|
||||||
this.CALL_FAIL_BUSY = 17;
|
this.CALL_FAIL_BUSY = 17;
|
||||||
this.CALL_FAIL_NO_USER_RESPONDING = 18;
|
this.CALL_FAIL_NO_USER_RESPONDING = 18;
|
||||||
this.CALL_FAIL_USER_ALERTING = 19;
|
this.CALL_FAIL_USER_ALERTING = 19;
|
||||||
this.CALL_FAIL_CALL_REJECTED = 21;
|
this.CALL_FAIL_CALL_REJECTED = 21;
|
||||||
this.CALL_FAIL_NUMBER_CHANGED = 22;
|
this.CALL_FAIL_NUMBER_CHANGED = 22;
|
||||||
|
this.CALL_FAIL_CALL_REJECTED_DESTINATION_FEATURE = 24;
|
||||||
this.CALL_FAIL_CALL_PRE_EMPTION = 25;
|
this.CALL_FAIL_CALL_PRE_EMPTION = 25;
|
||||||
this.CALL_FAIL_DEST_OUT_OF_ORDER = 27;
|
this.CALL_FAIL_DEST_OUT_OF_ORDER = 27;
|
||||||
this.CALL_FAIL_INVALID_FORMAT = 28;
|
this.CALL_FAIL_INVALID_FORMAT = 28;
|
||||||
this.CALL_FAIL_FACILITY_REJECTED = 29;
|
this.CALL_FAIL_FACILITY_REJECTED = 29;
|
||||||
|
this.CALL_FAIL_RESPONSE_TO_STATUS_ENQUIRY = 30;
|
||||||
|
this.CALL_FAIL_NORMAL_UNSPECIFIED = 31;
|
||||||
this.CALL_FAIL_CONGESTION = 34;
|
this.CALL_FAIL_CONGESTION = 34;
|
||||||
this.CALL_FAIL_NETWORK_OUT_OF_ORDER = 38;
|
this.CALL_FAIL_NETWORK_OUT_OF_ORDER = 38;
|
||||||
this.CALL_FAIL_NETWORK_TEMP_FAILURE = 41;
|
this.CALL_FAIL_NETWORK_TEMP_FAILURE = 41;
|
||||||
|
this.CALL_FAIL_SWITCHING_EQUIP_CONGESTION = 42;
|
||||||
|
this.CALL_FAIL_ACCESS_INFO_DISCARDED = 43;
|
||||||
|
this.CALL_FAIL_REQUESTED_CHANNEL_NOT_AVAILABLE = 44;
|
||||||
|
this.CALL_FAIL_RESOURCE_UNAVAILABLE = 47;
|
||||||
|
this.CALL_FAIL_QOS_UNAVAILABLE = 49;
|
||||||
|
this.CALL_FAIL_REQUESTED_FACILITY_NOT_SUBSCRIBED = 50;
|
||||||
|
this.CALL_FAIL_INCOMING_CALLS_BARRED_WITHIN_CUG = 55;
|
||||||
|
this.CALL_FAIL_BEARER_CAPABILITY_NOT_AUTHORIZED = 57;
|
||||||
|
this.CALL_FAIL_BEARER_CAPABILITY_NOT_AVAILABLE = 58;
|
||||||
|
this.CALL_FAIL_SERVICE_NOT_AVAILABLE = 63;
|
||||||
|
this.CALL_FAIL_BEARER_NOT_IMPLEMENTED = 65;
|
||||||
this.CALL_FAIL_ACM_LIMIT_EXCEEDED = 68;
|
this.CALL_FAIL_ACM_LIMIT_EXCEEDED = 68;
|
||||||
|
this.CALL_FAIL_REQUESTED_FACILITY_NOT_IMPLEMENTED = 69;
|
||||||
|
this.CALL_FAIL_UNRESTRICTED_BEARER_NOT_AVAILABLE = 70;
|
||||||
|
this.CALL_FAIL_SERVICE_NOT_IMPLEMENTED = 79;
|
||||||
|
this.CALL_FAIL_INVALID_TRANSACTION_ID = 81;
|
||||||
|
this.CALL_FAIL_USER_NOT_CUG_MEMBER = 87;
|
||||||
|
this.CALL_FAIL_INCOMPATIBLE_DESTINATION = 88;
|
||||||
|
this.CALL_FAIL_INVALID_TRANSIT_NETWORK_SELECTION = 91;
|
||||||
|
this.CALL_FAIL_SEMANTICALLY_INCORRECT_MESSAGE = 95;
|
||||||
|
this.CALL_FAIL_INVALID_MANDATORY_INFO = 96;
|
||||||
|
this.CALL_FAIL_MESSAGE_TYPE_NOT_IMPLEMENTED = 97;
|
||||||
|
this.CALL_FAIL_MESSAGE_TYPE_INCOMPATIBLE_PROTOCOL_STATE = 98;
|
||||||
|
this.CALL_FAIL_INFO_ELEMENT_NOT_IMPLEMENTED = 99;
|
||||||
|
this.CALL_FAIL_CONDITIONAL_IE_ERROR = 100;
|
||||||
|
this.CALL_FAIL_MESSAGE_INCOMPABITLE_PROTOCOL_STATE = 101;
|
||||||
|
this.CALL_FAIL_RECOVERY_ON_TIMER_EXPIRY = 102;
|
||||||
|
this.CALL_FAIL_PROTOCOL_ERROR = 111;
|
||||||
|
this.CALL_FAIL_INTERWORKING = 127;
|
||||||
|
// AOSP ril.h
|
||||||
this.CALL_FAIL_CALL_BARRED = 240;
|
this.CALL_FAIL_CALL_BARRED = 240;
|
||||||
this.CALL_FAIL_FDN_BLOCKED = 241;
|
this.CALL_FAIL_FDN_BLOCKED = 241;
|
||||||
this.CALL_FAIL_IMSI_UNKNOWN_IN_VLR = 242;
|
this.CALL_FAIL_IMSI_UNKNOWN_IN_VLR = 242;
|
||||||
this.CALL_FAIL_IMEI_NOT_ACCEPTED = 243;
|
this.CALL_FAIL_IMEI_NOT_ACCEPTED = 243;
|
||||||
|
this.CALL_FAIL_DIAL_MODIFIED_TO_USSD = 244; // STK Call Control
|
||||||
|
this.CALL_FAIL_DIAL_MODIFIED_TO_SS = 245;
|
||||||
this.CALL_FAIL_DIAL_MODIFIED_TO_DIAL = 246;
|
this.CALL_FAIL_DIAL_MODIFIED_TO_DIAL = 246;
|
||||||
|
this.CALL_FAIL_CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000;
|
||||||
|
this.CALL_FAIL_CDMA_DROP = 1001;
|
||||||
|
this.CALL_FAIL_CDMA_INTERCEPT = 1002;
|
||||||
|
this.CALL_FAIL_CDMA_REORDER = 1003;
|
||||||
|
this.CALL_FAIL_CDMA_SO_REJECT = 1004;
|
||||||
|
this.CALL_FAIL_CDMA_RETRY_ORDER = 1005;
|
||||||
|
this.CALL_FAIL_CDMA_ACCESS_FAILURE = 1006;
|
||||||
|
this.CALL_FAIL_CDMA_PREEMPTED = 1007;
|
||||||
|
this.CALL_FAIL_CDMA_NOT_EMERGENCY = 1008; // For non-emergency number dialed
|
||||||
|
// during emergency callback mode
|
||||||
|
this.CALL_FAIL_CDMA_ACCESS_BLOCKED = 1009;
|
||||||
this.CALL_FAIL_ERROR_UNSPECIFIED = 0xffff;
|
this.CALL_FAIL_ERROR_UNSPECIFIED = 0xffff;
|
||||||
|
|
||||||
// See nsIMobileConnection::MOBILE_RADIO_STATE_*
|
// See nsIMobileConnection::MOBILE_RADIO_STATE_*
|
||||||
@ -2666,50 +2715,139 @@ NETWORK_CREG_TO_GECKO_MOBILE_CONNECTION_STATE[NETWORK_CREG_STATE_DENIED_EMERGENC
|
|||||||
NETWORK_CREG_TO_GECKO_MOBILE_CONNECTION_STATE[NETWORK_CREG_STATE_UNKNOWN_EMERGENCY_CALLS] = GECKO_MOBILE_CONNECTION_STATE_UNKNOWN;
|
NETWORK_CREG_TO_GECKO_MOBILE_CONNECTION_STATE[NETWORK_CREG_STATE_UNKNOWN_EMERGENCY_CALLS] = GECKO_MOBILE_CONNECTION_STATE_UNKNOWN;
|
||||||
|
|
||||||
|
|
||||||
this.GECKO_CALL_ERROR_BAD_NUMBER = "BadNumberError";
|
this.GECKO_CALL_ERROR_BAD_NUMBER = "BadNumberError";
|
||||||
this.GECKO_CALL_ERROR_NORMAL_CALL_CLEARING = "NormalCallClearingError";
|
this.GECKO_CALL_ERROR_NO_ROUTE_TO_DESTINATION = "NoRouteToDestinationError";
|
||||||
this.GECKO_CALL_ERROR_BUSY = "BusyError";
|
this.GECKO_CALL_ERROR_CHANNEL_UNACCEPTABLE = "ChannelUnacceptableError";
|
||||||
this.GECKO_CALL_ERROR_NO_USER_RESPONDING = "NoUserRespondingError";
|
this.GECKO_CALL_ERROR_OPERATOR_DETERMINED_BARRING = "OperatorDeterminedBarringError";
|
||||||
this.GECKO_CALL_ERROR_USER_ALERTING = "UserAlertingNoAnswerError";
|
this.GECKO_CALL_ERROR_NORMAL_CALL_CLEARING = "NormalCallClearingError";
|
||||||
this.GECKO_CALL_ERROR_REJECTED = "CallRejectedError";
|
this.GECKO_CALL_ERROR_BUSY = "BusyError";
|
||||||
this.GECKO_CALL_ERROR_NUMBER_CHANGED = "NumberChangedError";
|
this.GECKO_CALL_ERROR_NO_USER_RESPONDING = "NoUserRespondingError";
|
||||||
this.GECKO_CALL_ERROR_PRE_EMPTION = "PreEmptionError";
|
this.GECKO_CALL_ERROR_USER_ALERTING = "UserAlertingNoAnswerError";
|
||||||
this.GECKO_CALL_ERROR_DEST_OUT_OF_ORDER = "DestinationOutOfOrderError";
|
this.GECKO_CALL_ERROR_REJECTED = "CallRejectedError";
|
||||||
this.GECKO_CALL_ERROR_INVALID_NUMBER_FORMAT = "InvalidNumberFormatError";
|
this.GECKO_CALL_ERROR_NUMBER_CHANGED = "NumberChangedError";
|
||||||
this.GECKO_CALL_ERROR_FACILITY_REJECTED = "FacilityRejectedError";
|
this.GECKO_CALL_ERROR_REJECTED_DETINATION_FEATURE = "CallRejectedDestinationFeature";
|
||||||
this.GECKO_CALL_ERROR_CONGESTION = "CongestionError";
|
this.GECKO_CALL_ERROR_PRE_EMPTION = "PreEmptionError";
|
||||||
this.GECKO_CALL_ERROR_NETWORK_OUT_OF_ORDER = "NetworkOutOfOrderError";
|
this.GECKO_CALL_ERROR_DEST_OUT_OF_ORDER = "DestinationOutOfOrderError";
|
||||||
this.GECKO_CALL_ERROR_NETWORK_TEMP_FAILURE = "NetworkTempFailureError";
|
this.GECKO_CALL_ERROR_INVALID_NUMBER_FORMAT = "InvalidNumberFormatError";
|
||||||
this.GECKO_CALL_ERROR_INCOMING_CALL_EXCEEDED = "IncomingCallExceededError";
|
this.GECKO_CALL_ERROR_FACILITY_REJECTED = "FacilityRejectedError";
|
||||||
this.GECKO_CALL_ERROR_BARRED = "BarredError";
|
this.GECKO_CALL_ERROR_RESPONSE_TO_STATUS_ENQUIRY = "ResponseToStatusEnquiryError";
|
||||||
this.GECKO_CALL_ERROR_FDN_BLOCKED = "FDNBlockedError";
|
this.GECKO_CALL_ERROR_CONGESTION = "CongestionError";
|
||||||
this.GECKO_CALL_ERROR_SUBSCRIBER_UNKNOWN = "SubscriberUnknownError";
|
this.GECKO_CALL_ERROR_NETWORK_OUT_OF_ORDER = "NetworkOutOfOrderError";
|
||||||
this.GECKO_CALL_ERROR_DEVICE_NOT_ACCEPTED = "DeviceNotAcceptedError";
|
this.GECKO_CALL_ERROR_NETWORK_TEMP_FAILURE = "NetworkTempFailureError";
|
||||||
|
this.GECKO_CALL_ERROR_SWITCHING_EQUIP_CONGESTION = "SwitchingEquipCongestionError";
|
||||||
|
this.GECKO_CALL_ERROR_ACCESS_INFO_DISCARDED = "AccessInfoDiscardedError";
|
||||||
|
this.GECKO_CALL_ERROR_REQUESTED_CHANNEL_NOT_AVAILABLE = "RequestedChannelNotAvailableError";
|
||||||
|
this.GECKO_CALL_ERROR_RESOURCE_UNAVAILABLE = "ResourceUnavailableError";
|
||||||
|
this.GECKO_CALL_ERROR_QOS_UNAVAILABLE = "QosUnavailableError";
|
||||||
|
this.GECKO_CALL_ERROR_REQUESTED_FACILITY_NOT_SUBSCRIBED = "RequestedFacilityNotSubscribedError";
|
||||||
|
this.GECKO_CALL_ERROR_INCOMING_CALLS_BARRED_WITHIN_CUG = "IncomingCallsBarredWithinCugError";
|
||||||
|
this.GECKO_CALL_ERROR_BEARER_CAPABILITY_NOT_AUTHORIZED = "BearerCapabilityNotAuthorizedError";
|
||||||
|
this.GECKO_CALL_ERROR_BEARER_CAPABILITY_NOT_AVAILABLE = "BearerCapabilityNotAvailableError";
|
||||||
|
this.GECKO_CALL_ERROR_BEARER_NOT_IMPLEMENTED = "BearerNotImplementedError";
|
||||||
|
this.GECKO_CALL_ERROR_SERVICE_NOT_AVAILABLE = "ServiceNotAvailableError";
|
||||||
|
this.GECKO_CALL_ERROR_INCOMING_CALL_EXCEEDED = "IncomingCallExceededError";
|
||||||
|
this.GECKO_CALL_ERROR_REQUESTED_FACILITY_NOT_IMPLEMENTED = "RequestedFacilityNotImplementedError";
|
||||||
|
this.GECKO_CALL_ERROR_UNRESTRICTED_BEARER_NOT_AVAILABLE = "UnrestrictedBearerNotAvailableError";
|
||||||
|
this.GECKO_CALL_ERROR_SERVICE_NOT_IMPLEMENTED = "ServiceNotImplementedError";
|
||||||
|
this.GECKO_CALL_ERROR_INVALID_TRANSACTION_ID = "InvalidTransactionIdError";
|
||||||
|
this.GECKO_CALL_ERROR_USER_NOT_CUG_MEMBER = "NotCugMemberError";
|
||||||
|
this.GECKO_CALL_ERROR_INCOMPATIBLE_DESTINATION = "IncompatibleDestinationError";
|
||||||
|
this.GECKO_CALL_ERROR_INVALID_TRANSIT_NETWORK_SELECTION = "InvalidTransitNetworkSelectionError";
|
||||||
|
this.GECKO_CALL_ERROR_SEMANTICALLY_INCORRECT_MESSAGE = "SemanticallyIncorrectMessageError";
|
||||||
|
this.GECKO_CALL_ERROR_INVALID_MANDATORY_INFO = "InvalidMandatoryInfoError";
|
||||||
|
this.GECKO_CALL_ERROR_MESSAGE_TYPE_NOT_IMPLEMENTED = "MessageTypeNotImplementedError";
|
||||||
|
this.GECKO_CALL_ERROR_MESSAGE_TYPE_INCOMPATIBLE_PROTOCOL_STATE = "MessageTypeIncompatibleProtocolStateError";
|
||||||
|
this.GECKO_CALL_ERROR_INFO_ELEMENT_NOT_IMPLEMENTED = "InfoElementNotImplementedError";
|
||||||
|
this.GECKO_CALL_ERROR_CONDITIONAL_IE = "ConditionalIeError";
|
||||||
|
this.GECKO_CALL_ERROR_MESSAGE_INCOMPATIBLE_PROTOCOL_STATE = "MessageIncompatibleProtocolStateError";
|
||||||
|
this.GECKO_CALL_ERROR_RECOVERY_ON_TIMER_EXPIRY = "RecoveryOnTimerExpiryError";
|
||||||
|
this.GECKO_CALL_ERROR_PROTOCOL = "ProtocolError";
|
||||||
|
this.GECKO_CALL_ERROR_INTERWORKING = "InterworkingError";
|
||||||
|
this.GECKO_CALL_ERROR_BARRED = "BarredError";
|
||||||
|
this.GECKO_CALL_ERROR_FDN_BLOCKED = "FDNBlockedError";
|
||||||
|
this.GECKO_CALL_ERROR_SUBSCRIBER_UNKNOWN = "SubscriberUnknownError";
|
||||||
|
this.GECKO_CALL_ERROR_DEVICE_NOT_ACCEPTED = "DeviceNotAcceptedError";
|
||||||
this.GECKO_CALL_ERROR_MODIFIED_TO_DIAL_FAILED = "ModifiedDialError";
|
this.GECKO_CALL_ERROR_MODIFIED_TO_DIAL_FAILED = "ModifiedDialError";
|
||||||
this.GECKO_CALL_ERROR_UNSPECIFIED = "UnspecifiedError";
|
this.GECKO_CALL_ERROR_CDMA_LOCKED_UNTIL_POWER_CYCLE = "CdmaLockedUntilPowerCycleError";
|
||||||
|
this.GECKO_CALL_ERROR_CDMA_DROP = "CdmaDropError";
|
||||||
|
this.GECKO_CALL_ERROR_CDMA_INTERCEPT = "CdmaInterceptError";
|
||||||
|
this.GECKO_CALL_ERROR_CDMA_REORDER = "CdmaReorderError";
|
||||||
|
this.GECKO_CALL_ERROR_CDMA_SO_REJECT = "CdmaSoRejectError";
|
||||||
|
this.GECKO_CALL_ERROR_CDMA_RETRY_ORDER = "CdmaRetryOrderError";
|
||||||
|
this.GECKO_CALL_ERROR_CDMA_ACCESS_FAILURE = "CdmaAcessError";
|
||||||
|
this.GECKO_CALL_ERROR_CDMA_PREEMPTED = "CdmaPreemptedError";
|
||||||
|
this.GECKO_CALL_ERROR_CDMA_NOT_EMERGENCY = "CdmaNotEmergencyError";
|
||||||
|
this.GECKO_CALL_ERROR_CDMA_ACCESS_BLOCKED = "CdmaAccessBlockedError";
|
||||||
|
this.GECKO_CALL_ERROR_UNSPECIFIED = "UnspecifiedError";
|
||||||
|
|
||||||
this.RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR = {};
|
this.RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR = {};
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_UNOBTAINABLE_NUMBER] = GECKO_CALL_ERROR_BAD_NUMBER;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_UNOBTAINABLE_NUMBER] = GECKO_CALL_ERROR_BAD_NUMBER;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_NORMAL] = GECKO_CALL_ERROR_NORMAL_CALL_CLEARING;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_NO_ROUTE_TO_DESTINATION] = GECKO_CALL_ERROR_NO_ROUTE_TO_DESTINATION;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_BUSY] = GECKO_CALL_ERROR_BUSY;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CHANNEL_UNACCEPTABLE] = GECKO_CALL_ERROR_CHANNEL_UNACCEPTABLE;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_NO_USER_RESPONDING] = GECKO_CALL_ERROR_NO_USER_RESPONDING;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_OPERATOR_DETERMINED_BARRING] = GECKO_CALL_ERROR_OPERATOR_DETERMINED_BARRING;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_USER_ALERTING] = GECKO_CALL_ERROR_USER_ALERTING;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_NORMAL] = GECKO_CALL_ERROR_NORMAL_CALL_CLEARING;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CALL_REJECTED] = GECKO_CALL_ERROR_REJECTED;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_BUSY] = GECKO_CALL_ERROR_BUSY;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_NUMBER_CHANGED] = GECKO_CALL_ERROR_NUMBER_CHANGED;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_NO_USER_RESPONDING] = GECKO_CALL_ERROR_NO_USER_RESPONDING;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CALL_PRE_EMPTION] = GECKO_CALL_ERROR_PRE_EMPTION;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_USER_ALERTING] = GECKO_CALL_ERROR_USER_ALERTING;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_DEST_OUT_OF_ORDER] = GECKO_CALL_ERROR_DEST_OUT_OF_ORDER;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CALL_REJECTED] = GECKO_CALL_ERROR_REJECTED;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_INVALID_FORMAT] = GECKO_CALL_ERROR_INVALID_NUMBER_FORMAT;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_NUMBER_CHANGED] = GECKO_CALL_ERROR_NUMBER_CHANGED;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_FACILITY_REJECTED] = GECKO_CALL_ERROR_FACILITY_REJECTED;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CALL_REJECTED_DESTINATION_FEATURE] = GECKO_CALL_ERROR_REJECTED_DETINATION_FEATURE;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CONGESTION] = GECKO_CALL_ERROR_CONGESTION;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CALL_PRE_EMPTION] = GECKO_CALL_ERROR_PRE_EMPTION;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_NETWORK_OUT_OF_ORDER] = GECKO_CALL_ERROR_NETWORK_OUT_OF_ORDER;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_DEST_OUT_OF_ORDER] = GECKO_CALL_ERROR_DEST_OUT_OF_ORDER;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_NETWORK_TEMP_FAILURE] = GECKO_CALL_ERROR_NETWORK_TEMP_FAILURE;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_INVALID_FORMAT] = GECKO_CALL_ERROR_INVALID_NUMBER_FORMAT;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_ACM_LIMIT_EXCEEDED] = GECKO_CALL_ERROR_INCOMING_CALL_EXCEEDED;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_FACILITY_REJECTED] = GECKO_CALL_ERROR_FACILITY_REJECTED;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CALL_BARRED] = GECKO_CALL_ERROR_BARRED;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_RESPONSE_TO_STATUS_ENQUIRY] = GECKO_CALL_ERROR_RESPONSE_TO_STATUS_ENQUIRY;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_FDN_BLOCKED] = GECKO_CALL_ERROR_FDN_BLOCKED;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_NORMAL_UNSPECIFIED] = GECKO_CALL_ERROR_NORMAL_CALL_CLEARING;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_IMSI_UNKNOWN_IN_VLR] = GECKO_CALL_ERROR_SUBSCRIBER_UNKNOWN;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CONGESTION] = GECKO_CALL_ERROR_CONGESTION;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_IMEI_NOT_ACCEPTED] = GECKO_CALL_ERROR_DEVICE_NOT_ACCEPTED;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_NETWORK_OUT_OF_ORDER] = GECKO_CALL_ERROR_NETWORK_OUT_OF_ORDER;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_NETWORK_TEMP_FAILURE] = GECKO_CALL_ERROR_NETWORK_TEMP_FAILURE;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_SWITCHING_EQUIP_CONGESTION] = GECKO_CALL_ERROR_SWITCHING_EQUIP_CONGESTION;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_ACCESS_INFO_DISCARDED] = GECKO_CALL_ERROR_ACCESS_INFO_DISCARDED;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_REQUESTED_CHANNEL_NOT_AVAILABLE] = GECKO_CALL_ERROR_REQUESTED_CHANNEL_NOT_AVAILABLE;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_RESOURCE_UNAVAILABLE] = GECKO_CALL_ERROR_RESOURCE_UNAVAILABLE;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_QOS_UNAVAILABLE] = GECKO_CALL_ERROR_QOS_UNAVAILABLE;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_REQUESTED_FACILITY_NOT_SUBSCRIBED] = GECKO_CALL_ERROR_REQUESTED_FACILITY_NOT_SUBSCRIBED;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_INCOMING_CALLS_BARRED_WITHIN_CUG] = GECKO_CALL_ERROR_INCOMING_CALLS_BARRED_WITHIN_CUG;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_BEARER_CAPABILITY_NOT_AUTHORIZED] = GECKO_CALL_ERROR_BEARER_CAPABILITY_NOT_AUTHORIZED;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_BEARER_CAPABILITY_NOT_AVAILABLE] = GECKO_CALL_ERROR_BEARER_CAPABILITY_NOT_AVAILABLE;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_SERVICE_NOT_AVAILABLE] = GECKO_CALL_ERROR_SERVICE_NOT_AVAILABLE;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_BEARER_NOT_IMPLEMENTED] = GECKO_CALL_ERROR_BEARER_NOT_IMPLEMENTED;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_ACM_LIMIT_EXCEEDED] = GECKO_CALL_ERROR_INCOMING_CALL_EXCEEDED;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_REQUESTED_FACILITY_NOT_IMPLEMENTED] = GECKO_CALL_ERROR_REQUESTED_FACILITY_NOT_IMPLEMENTED;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_UNRESTRICTED_BEARER_NOT_AVAILABLE] = GECKO_CALL_ERROR_UNRESTRICTED_BEARER_NOT_AVAILABLE;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_SERVICE_NOT_IMPLEMENTED] = GECKO_CALL_ERROR_SERVICE_NOT_IMPLEMENTED;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_INVALID_TRANSACTION_ID] = GECKO_CALL_ERROR_INVALID_TRANSACTION_ID;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_USER_NOT_CUG_MEMBER] = GECKO_CALL_ERROR_USER_NOT_CUG_MEMBER;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_INCOMPATIBLE_DESTINATION] = GECKO_CALL_ERROR_INCOMPATIBLE_DESTINATION;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_INVALID_TRANSIT_NETWORK_SELECTION] = GECKO_CALL_ERROR_INVALID_TRANSIT_NETWORK_SELECTION;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_SEMANTICALLY_INCORRECT_MESSAGE] = GECKO_CALL_ERROR_SEMANTICALLY_INCORRECT_MESSAGE;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_INVALID_MANDATORY_INFO] = GECKO_CALL_ERROR_INVALID_MANDATORY_INFO;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_MESSAGE_TYPE_NOT_IMPLEMENTED] = GECKO_CALL_ERROR_MESSAGE_TYPE_NOT_IMPLEMENTED;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_MESSAGE_TYPE_INCOMPATIBLE_PROTOCOL_STATE] = GECKO_CALL_ERROR_MESSAGE_TYPE_INCOMPATIBLE_PROTOCOL_STATE;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_INFO_ELEMENT_NOT_IMPLEMENTED] = GECKO_CALL_ERROR_INFO_ELEMENT_NOT_IMPLEMENTED;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CONDITIONAL_IE_ERROR] = GECKO_CALL_ERROR_CONDITIONAL_IE;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_MESSAGE_INCOMPABITLE_PROTOCOL_STATE] = GECKO_CALL_ERROR_MESSAGE_INCOMPATIBLE_PROTOCOL_STATE;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_RECOVERY_ON_TIMER_EXPIRY] = GECKO_CALL_ERROR_RECOVERY_ON_TIMER_EXPIRY;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_PROTOCOL_ERROR] = GECKO_CALL_ERROR_PROTOCOL;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_INTERWORKING] = GECKO_CALL_ERROR_INTERWORKING;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CALL_BARRED] = GECKO_CALL_ERROR_BARRED;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_FDN_BLOCKED] = GECKO_CALL_ERROR_FDN_BLOCKED;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_IMSI_UNKNOWN_IN_VLR] = GECKO_CALL_ERROR_SUBSCRIBER_UNKNOWN;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_IMEI_NOT_ACCEPTED] = GECKO_CALL_ERROR_DEVICE_NOT_ACCEPTED;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_DIAL_MODIFIED_TO_USSD] = GECKO_CALL_ERROR_MODIFIED_TO_DIAL_FAILED;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_DIAL_MODIFIED_TO_SS] = GECKO_CALL_ERROR_MODIFIED_TO_DIAL_FAILED;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_DIAL_MODIFIED_TO_DIAL] = GECKO_CALL_ERROR_MODIFIED_TO_DIAL_FAILED;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_DIAL_MODIFIED_TO_DIAL] = GECKO_CALL_ERROR_MODIFIED_TO_DIAL_FAILED;
|
||||||
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_ERROR_UNSPECIFIED] = GECKO_CALL_ERROR_UNSPECIFIED;
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CDMA_LOCKED_UNTIL_POWER_CYCLE] = GECKO_CALL_ERROR_CDMA_LOCKED_UNTIL_POWER_CYCLE;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CDMA_DROP] = GECKO_CALL_ERROR_CDMA_DROP;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CDMA_INTERCEPT] = GECKO_CALL_ERROR_CDMA_INTERCEPT;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CDMA_REORDER] = GECKO_CALL_ERROR_CDMA_REORDER;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CDMA_SO_REJECT] = GECKO_CALL_ERROR_CDMA_SO_REJECT;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CDMA_RETRY_ORDER] = GECKO_CALL_ERROR_CDMA_RETRY_ORDER;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CDMA_ACCESS_FAILURE] = GECKO_CALL_ERROR_CDMA_ACCESS_FAILURE;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CDMA_PREEMPTED] = GECKO_CALL_ERROR_CDMA_PREEMPTED;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CDMA_NOT_EMERGENCY] = GECKO_CALL_ERROR_CDMA_NOT_EMERGENCY;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CDMA_ACCESS_BLOCKED] = GECKO_CALL_ERROR_CDMA_ACCESS_BLOCKED;
|
||||||
|
RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_ERROR_UNSPECIFIED] = GECKO_CALL_ERROR_UNSPECIFIED;
|
||||||
|
|
||||||
this.GECKO_DATACALL_ERROR_OPERATOR_BARRED = "OperatorBarredError";
|
this.GECKO_DATACALL_ERROR_OPERATOR_BARRED = "OperatorBarredError";
|
||||||
this.GECKO_DATACALL_ERROR_INSUFFICIENT_RESOURCES = "InsufficientResourcesError";
|
this.GECKO_DATACALL_ERROR_INSUFFICIENT_RESOURCES = "InsufficientResourcesError";
|
||||||
|
@ -3894,7 +3894,8 @@ RilObject.prototype = {
|
|||||||
* Helpers for processing call state changes.
|
* Helpers for processing call state changes.
|
||||||
*/
|
*/
|
||||||
_processCalls: function(newCalls, failCause) {
|
_processCalls: function(newCalls, failCause) {
|
||||||
if (DEBUG) this.context.debug("_processCalls: " + JSON.stringify(newCalls));
|
if (DEBUG) this.context.debug("_processCalls: " + JSON.stringify(newCalls) +
|
||||||
|
" failCause: " + failCause);
|
||||||
|
|
||||||
// Let's get the failCause first if there are removed calls. Otherwise, we
|
// Let's get the failCause first if there are removed calls. Otherwise, we
|
||||||
// need to trigger another async request when removing call and it cause
|
// need to trigger another async request when removing call and it cause
|
||||||
@ -5455,7 +5456,16 @@ RilObject.prototype[REQUEST_UDUB] = function REQUEST_UDUB(length, options) {
|
|||||||
RilObject.prototype[REQUEST_LAST_CALL_FAIL_CAUSE] = function REQUEST_LAST_CALL_FAIL_CAUSE(length, options) {
|
RilObject.prototype[REQUEST_LAST_CALL_FAIL_CAUSE] = function REQUEST_LAST_CALL_FAIL_CAUSE(length, options) {
|
||||||
let Buf = this.context.Buf;
|
let Buf = this.context.Buf;
|
||||||
let num = length ? Buf.readInt32() : 0;
|
let num = length ? Buf.readInt32() : 0;
|
||||||
let failCause = num ? RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[Buf.readInt32()] : null;
|
let failCause = null;
|
||||||
|
|
||||||
|
if (num) {
|
||||||
|
let causeNum = Buf.readInt32();
|
||||||
|
// To make _processCalls work as design, failCause couldn't be "undefined."
|
||||||
|
// See Bug 1112550 for details.
|
||||||
|
failCause = RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[causeNum] || null;
|
||||||
|
}
|
||||||
|
if (DEBUG) this.context.debug("Last call fail cause: " + failCause);
|
||||||
|
|
||||||
if (options.callback) {
|
if (options.callback) {
|
||||||
options.callback(failCause);
|
options.callback(failCause);
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ user_pref("b2g.system_manifest_url","app://test-container.gaiamobile.org/manifes
|
|||||||
user_pref("b2g.system_startup_url","app://test-container.gaiamobile.org/index.html");
|
user_pref("b2g.system_startup_url","app://test-container.gaiamobile.org/index.html");
|
||||||
user_pref("dom.ipc.browser_frames.oop_by_default", false);
|
user_pref("dom.ipc.browser_frames.oop_by_default", false);
|
||||||
user_pref("dom.ipc.tabs.disabled", false);
|
user_pref("dom.ipc.tabs.disabled", false);
|
||||||
|
user_pref("dom.ipc.tabs.shutdownTimeoutSecs", 0);
|
||||||
user_pref("dom.mozBrowserFramesEnabled", "%(OOP)s");
|
user_pref("dom.mozBrowserFramesEnabled", "%(OOP)s");
|
||||||
user_pref("dom.mozBrowserFramesWhitelist","app://test-container.gaiamobile.org,http://mochi.test:8888");
|
user_pref("dom.mozBrowserFramesWhitelist","app://test-container.gaiamobile.org,http://mochi.test:8888");
|
||||||
user_pref("dom.testing.datastore_enabled_for_hosted_apps", true);
|
user_pref("dom.testing.datastore_enabled_for_hosted_apps", true);
|
||||||
|
@ -279,3 +279,5 @@ user_pref("media.eme.enabled", true);
|
|||||||
user_pref("browser.displayedE10SPrompt.1", 5);
|
user_pref("browser.displayedE10SPrompt.1", 5);
|
||||||
// Don't use auto-enabled e10s
|
// Don't use auto-enabled e10s
|
||||||
user_pref("browser.tabs.remote.autostart.1", false);
|
user_pref("browser.tabs.remote.autostart.1", false);
|
||||||
|
// Don't forceably kill content processes after a timeout
|
||||||
|
user_pref("dom.ipc.tabs.shutdownTimeoutSecs", 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user