зеркало из https://github.com/mozilla/gecko-dev.git
Merge mozilla-central to mozilla-inbound
This commit is contained in:
Коммит
46e8691586
|
@ -12,7 +12,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="80d6405725788327102cab36e8d8c017cf25fb23"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="ec159aac19ff25912f1d68ffb44b29f797583ef5"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="15e8982284c4560f9c74c2b9fe8bb361ebfe0cb6"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="d11f524d00cacf5ba0dfbf25e4aa2158b1c3a036"/>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
</project>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="80d6405725788327102cab36e8d8c017cf25fb23"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="ec159aac19ff25912f1d68ffb44b29f797583ef5"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="15e8982284c4560f9c74c2b9fe8bb361ebfe0cb6"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="3d5c964015967ca8c86abe6dbbebee3cb82b1609"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="8c449b53328059e9b55bb34baec9b27a15055a7e"/>
|
||||
|
|
|
@ -12,7 +12,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="80d6405725788327102cab36e8d8c017cf25fb23"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="ec159aac19ff25912f1d68ffb44b29f797583ef5"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="15e8982284c4560f9c74c2b9fe8bb361ebfe0cb6"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="d11f524d00cacf5ba0dfbf25e4aa2158b1c3a036"/>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"revision": "b2b0a8234336f7004812bf27e4053957cecad492",
|
||||
"revision": "d1729e9d8fcc010e42ef73befa93d3c07a4304c6",
|
||||
"repo_path": "/integration/gaia-central"
|
||||
}
|
||||
|
|
|
@ -11,7 +11,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="80d6405725788327102cab36e8d8c017cf25fb23"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="ec159aac19ff25912f1d68ffb44b29f797583ef5"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="15e8982284c4560f9c74c2b9fe8bb361ebfe0cb6"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="84f2f2fce22605e17d511ff1767e54770067b5b5"/>
|
||||
|
|
|
@ -10,7 +10,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="80d6405725788327102cab36e8d8c017cf25fb23"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="ec159aac19ff25912f1d68ffb44b29f797583ef5"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="15e8982284c4560f9c74c2b9fe8bb361ebfe0cb6"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="84f2f2fce22605e17d511ff1767e54770067b5b5"/>
|
||||
|
|
|
@ -12,7 +12,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="80d6405725788327102cab36e8d8c017cf25fb23"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="ec159aac19ff25912f1d68ffb44b29f797583ef5"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="15e8982284c4560f9c74c2b9fe8bb361ebfe0cb6"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="84f2f2fce22605e17d511ff1767e54770067b5b5"/>
|
||||
|
|
|
@ -11,7 +11,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="80d6405725788327102cab36e8d8c017cf25fb23"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="ec159aac19ff25912f1d68ffb44b29f797583ef5"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="15e8982284c4560f9c74c2b9fe8bb361ebfe0cb6"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="84f2f2fce22605e17d511ff1767e54770067b5b5"/>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
</project>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="80d6405725788327102cab36e8d8c017cf25fb23"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="ec159aac19ff25912f1d68ffb44b29f797583ef5"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="15e8982284c4560f9c74c2b9fe8bb361ebfe0cb6"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="3d5c964015967ca8c86abe6dbbebee3cb82b1609"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="8c449b53328059e9b55bb34baec9b27a15055a7e"/>
|
||||
|
|
|
@ -11,7 +11,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="80d6405725788327102cab36e8d8c017cf25fb23"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="ec159aac19ff25912f1d68ffb44b29f797583ef5"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="15e8982284c4560f9c74c2b9fe8bb361ebfe0cb6"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="84f2f2fce22605e17d511ff1767e54770067b5b5"/>
|
||||
|
|
|
@ -890,14 +890,14 @@ chatbox:-moz-full-screen-ancestor > .chat-titlebar {
|
|||
}
|
||||
|
||||
/* Customize mode */
|
||||
#navigator-toolbox > toolbar,
|
||||
#navigator-toolbox,
|
||||
#content-deck {
|
||||
transition-property: margin-left, margin-right;
|
||||
transition-duration: 150ms;
|
||||
transition-timing-function: ease-out;
|
||||
}
|
||||
|
||||
#tab-view-deck[fastcustomizeanimation] #navigator-toolbox > toolbar,
|
||||
#tab-view-deck[fastcustomizeanimation] #navigator-toolbox,
|
||||
#tab-view-deck[fastcustomizeanimation] #content-deck {
|
||||
transition-duration: 1ms;
|
||||
transition-timing-function: linear;
|
||||
|
|
|
@ -542,6 +542,11 @@
|
|||
defaultset="tabbrowser-tabs,new-tab-button,alltabs-button,tabs-closebutton"
|
||||
collapsed="true">
|
||||
|
||||
#ifdef XP_LINUX
|
||||
<hbox id="private-browsing-indicator"
|
||||
skipintoolbarset="true"/>
|
||||
#endif
|
||||
|
||||
<tabs id="tabbrowser-tabs"
|
||||
class="tabbrowser-tabs"
|
||||
tabbrowser="content"
|
||||
|
@ -628,7 +633,7 @@
|
|||
overflowtarget="widget-overflow-list"
|
||||
context="toolbar-context-menu">
|
||||
|
||||
<hbox id="nav-bar-customization-target" class="customization-target" flex="1">
|
||||
<hbox id="nav-bar-customization-target" flex="1">
|
||||
<toolbaritem id="urlbar-container" flex="400" persist="width"
|
||||
forwarddisabled="true" title="&locationItem.title;" removable="false"
|
||||
cui-areatype="toolbar"
|
||||
|
|
|
@ -794,6 +794,10 @@ let CustomizableUIInternal = {
|
|||
}
|
||||
|
||||
gBuildAreas.get(aArea).add(aNode);
|
||||
|
||||
// Give a class to all customize targets to be used for styling in Customize Mode
|
||||
let customizableNode = this.getCustomizeTargetForArea(aArea, window);
|
||||
customizableNode.classList.add("customization-target");
|
||||
},
|
||||
|
||||
registerBuildWindow: function(aWindow) {
|
||||
|
|
|
@ -1475,6 +1475,7 @@ CustomizeMode.prototype = {
|
|||
this._cancelDragActive(this._dragOverItem);
|
||||
this._dragOverItem = null;
|
||||
}
|
||||
this._updateToolbarCustomizationOutline(this.window);
|
||||
this._showPanelCustomizationPlaceholders();
|
||||
},
|
||||
|
||||
|
@ -1511,6 +1512,7 @@ CustomizeMode.prototype = {
|
|||
this._setGridDragActive(aItem, draggedItem, aValue);
|
||||
} else {
|
||||
let targetArea = this._getCustomizableParent(aItem);
|
||||
this._updateToolbarCustomizationOutline(window, targetArea);
|
||||
let makeSpaceImmediately = false;
|
||||
if (!gDraggingInToolbars.has(targetArea.id)) {
|
||||
gDraggingInToolbars.add(targetArea.id);
|
||||
|
@ -1545,6 +1547,7 @@ CustomizeMode.prototype = {
|
|||
}
|
||||
},
|
||||
_cancelDragActive: function(aItem, aNextItem, aNoTransition) {
|
||||
this._updateToolbarCustomizationOutline(aItem.ownerDocument.defaultView);
|
||||
let currentArea = this._getCustomizableParent(aItem);
|
||||
if (!currentArea) {
|
||||
return;
|
||||
|
@ -1771,7 +1774,36 @@ CustomizeMode.prototype = {
|
|||
while (oldPlaceholders.length) {
|
||||
contents.removeChild(oldPlaceholders[0]);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Update toolbar customization targets during drag events to add or remove
|
||||
* outlines to indicate that an area is customizable.
|
||||
*
|
||||
* @param aWindow The XUL window in which outlines should be updated.
|
||||
* @param {Element} [aToolbarArea=null] The element of the customizable toolbar area to add the
|
||||
* outline to. If aToolbarArea is falsy, the outline will be
|
||||
* removed from all toolbar areas.
|
||||
*/
|
||||
_updateToolbarCustomizationOutline: function(aWindow, aToolbarArea = null) {
|
||||
// Remove the attribute from existing customization targets
|
||||
for (let area of CustomizableUI.areas) {
|
||||
if (CustomizableUI.getAreaType(area) != CustomizableUI.TYPE_TOOLBAR) {
|
||||
continue;
|
||||
}
|
||||
let target = CustomizableUI.getCustomizeTargetForArea(area, aWindow);
|
||||
target.removeAttribute("customizing-dragovertarget");
|
||||
}
|
||||
|
||||
// Now set the attribute on the desired target
|
||||
if (aToolbarArea) {
|
||||
if (CustomizableUI.getAreaType(aToolbarArea.id) != CustomizableUI.TYPE_TOOLBAR)
|
||||
return;
|
||||
let target = CustomizableUI.getCustomizeTargetForArea(aToolbarArea.id, aWindow);
|
||||
target.setAttribute("customizing-dragovertarget", true);
|
||||
}
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
function __dumpDragData(aEvent, caller) {
|
||||
|
|
|
@ -2031,17 +2031,10 @@ chatbox {
|
|||
border-left: 3px solid transparent;
|
||||
}
|
||||
|
||||
#main-window[customizing] #navigator-toolbox::after {
|
||||
margin-left: 2em;
|
||||
margin-right: 2em;
|
||||
}
|
||||
|
||||
/* End customization mode */
|
||||
|
||||
|
||||
#main-window[privatebrowsingmode=temporary] #TabsToolbar::before {
|
||||
display: -moz-box;
|
||||
content: "";
|
||||
#main-window[privatebrowsingmode=temporary] #private-browsing-indicator {
|
||||
background: url("chrome://browser/skin/privatebrowsing-mask.png") center no-repeat;
|
||||
width: 40px;
|
||||
}
|
||||
|
|
|
@ -2577,7 +2577,7 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker {
|
|||
|
||||
@media (min-resolution: 2dppx) {
|
||||
/* image preloading hack from shared/tabs.inc.css */
|
||||
#TabsToolbar::before {
|
||||
#tabbrowser-tabs::before {
|
||||
background-image:
|
||||
url(chrome://browser/skin/tabbrowser/tab-background-end@2x.png),
|
||||
url(chrome://browser/skin/tabbrowser/tab-background-middle@2x.png),
|
||||
|
@ -4176,11 +4176,6 @@ window > chatbox {
|
|||
}
|
||||
}
|
||||
|
||||
#main-window[customizing] #navigator-toolbox::after {
|
||||
margin-left: 2em;
|
||||
margin-right: 2em;
|
||||
}
|
||||
|
||||
/* End customization mode */
|
||||
|
||||
#main-window[privatebrowsingmode=temporary] {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
margin: 0 2em 2em;
|
||||
}
|
||||
|
||||
#main-window:-moz-any([customize-entering],[customize-entered]) #navigator-toolbox > toolbar {
|
||||
#main-window:-moz-any([customize-entering],[customize-entered]) #navigator-toolbox {
|
||||
margin-left: 2em;
|
||||
margin-right: 2em;
|
||||
}
|
||||
|
@ -17,17 +17,50 @@
|
|||
pointer-events: none;
|
||||
}
|
||||
|
||||
#nav-bar[customize-entered] > #nav-bar-customization-target {
|
||||
margin: 1px 3px;
|
||||
}
|
||||
|
||||
#nav-bar[customize-entered] > #nav-bar-customization-target,
|
||||
#main-window[customize-entered] .customization-target:not(#PanelUI-contents)::before,
|
||||
#PanelUI-contents > .panel-customization-placeholder {
|
||||
-moz-outline-radius: 2.5px;
|
||||
outline: 1px dashed transparent;
|
||||
}
|
||||
|
||||
#main-window[customizing-movingItem] #nav-bar-customization-target,
|
||||
#main-window[customizing-movingItem] .panel-customization-placeholder {
|
||||
#main-window[customize-entered] .customization-target:not(#PanelUI-contents)::before {
|
||||
/* Prevent jumping of tabs when switching a window between inactive and active (bug 853415). */
|
||||
-moz-box-ordinal-group: 0;
|
||||
content: "";
|
||||
display: -moz-box;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
outline-offset: -2px;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Shift the TabsToolbar outline up 2px since the #nav-bar is shifted up by 1px and the
|
||||
#TabsToolbar::after is a pixel higher to draw the bottom border of the tabstrip so this makes the
|
||||
offset from the bottom effectively the same as other targets (-2px). */
|
||||
#main-window[customize-entered] #TabsToolbar.customization-target::before {
|
||||
top: -2px;
|
||||
}
|
||||
|
||||
/* The parents of the outline pseudo-elements need to be positioned so that the outline is positioned relative to it. */
|
||||
#main-window[customize-entered] .customization-target:not(#PanelUI-contents):hover,
|
||||
#main-window[customize-entered] .customization-target[customizing-dragovertarget]:not(#PanelUI-contents),
|
||||
#main-window[customize-entered] #nav-bar-customization-target.customization-target {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Most target outlines are shown on hover and drag over but the panel menu uses
|
||||
placeholders instead. */
|
||||
#main-window[customize-entered] .customization-target:not(#PanelUI-contents):hover::before,
|
||||
#main-window[customize-entered] .customization-target[customizing-dragovertarget]:not(#PanelUI-contents)::before,
|
||||
/* nav-bar and panel outlines are always shown */
|
||||
#main-window[customize-entered] #nav-bar-customization-target.customization-target::before {
|
||||
outline-color: rgb(102,102,102);
|
||||
}
|
||||
|
||||
#main-window[customize-entered] .panel-customization-placeholder {
|
||||
outline-color: #bbb;
|
||||
}
|
||||
|
||||
|
@ -36,7 +69,7 @@
|
|||
outline-offset: -5px;
|
||||
}
|
||||
|
||||
#main-window[customize-entered] .customization-target {
|
||||
#main-window[customize-entered] .customization-target:not(#PanelUI-contents) {
|
||||
min-width: 100px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
%define tabCurveHalfWidth 15px
|
||||
|
||||
/* image preloading hack */
|
||||
#TabsToolbar::before {
|
||||
#tabbrowser-tabs::before {
|
||||
/* Because of bug 853415, we need to ordinal this to the first position: */
|
||||
-moz-box-ordinal-group: 0;
|
||||
content: '';
|
||||
|
|
|
@ -2502,11 +2502,6 @@ chatbox {
|
|||
background-clip: padding-box;
|
||||
}
|
||||
|
||||
#main-window[customizing] #navigator-toolbox::after {
|
||||
margin-left: 2em;
|
||||
margin-right: 2em;
|
||||
}
|
||||
|
||||
/* End customization mode */
|
||||
|
||||
#main-window[privatebrowsingmode=temporary] #private-browsing-indicator {
|
||||
|
|
|
@ -6940,7 +6940,7 @@ dnl our own linker.
|
|||
if test "$OS_TARGET" = Android; then
|
||||
WRAP_LDFLAGS="${WRAP_LDFLAGS} -L$_objdir/dist/lib -lmozglue"
|
||||
WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=PR_GetEnv,--wrap=PR_SetEnv"
|
||||
if test -z "$gonkdir" -o "$ANDROID_VERSION" -le 18; then
|
||||
if test "$MOZ_WIDGET_TOOLKIT" = android; then
|
||||
WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=getaddrinfo,--wrap=freeaddrinfo,--wrap=gai_strerror"
|
||||
fi
|
||||
if test -z "$gonkdir"; then
|
||||
|
|
|
@ -105,7 +105,7 @@ support-files =
|
|||
# process. Default is OOP.
|
||||
[test_browserElement_NoAttr.html]
|
||||
[test_browserElement_NoPref.html]
|
||||
[test_browserElement_NoWhitelist.html]
|
||||
[test_browserElement_NoPermission.html]
|
||||
[test_browserElement_inproc_Alert.html]
|
||||
[test_browserElement_inproc_AlertInFrame.html]
|
||||
[test_browserElement_inproc_AppFramePermission.html]
|
||||
|
|
|
@ -14,7 +14,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=710231
|
|||
|
||||
<!--
|
||||
Test that an iframe with the |mozbrowser| attribute does not emit
|
||||
mozbrowserX events when this page is not in the whitelist.
|
||||
mozbrowserX events when this page does not have the "browser" permission.
|
||||
-->
|
||||
|
||||
<script type="application/javascript;version=1.7">
|
||||
|
@ -23,9 +23,6 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=710231
|
|||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
function runTest() {
|
||||
browserElementTestHelpers.setEnabledPref(true);
|
||||
browserElementTestHelpers.addPermissionForUrl('http://foobar.com');
|
||||
|
||||
var iframe = document.createElement('iframe');
|
||||
SpecialPowers.wrap(iframe).mozbrowser = true;
|
||||
document.body.appendChild(iframe);
|
||||
|
@ -42,6 +39,8 @@ function runTest() {
|
|||
iframe.src = browserElementTestHelpers.emptyPage1;
|
||||
}
|
||||
|
||||
browserElementTestHelpers.setEnabledPref(true);
|
||||
SpecialPowers.removePermission("browser", document);
|
||||
addEventListener('testready', runTest);
|
||||
|
||||
</script>
|
|
@ -23,7 +23,6 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=710231
|
|||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
function runTest() {
|
||||
browserElementTestHelpers.setEnabledPref(false);
|
||||
|
||||
var iframe = document.createElement('iframe');
|
||||
SpecialPowers.wrap(iframe).mozbrowser = true;
|
||||
|
@ -41,6 +40,7 @@ function runTest() {
|
|||
iframe.src = browserElementTestHelpers.emptyPage1;
|
||||
}
|
||||
|
||||
browserElementTestHelpers.setEnabledPref(false);
|
||||
addEventListener('testready', runTest);
|
||||
|
||||
</script>
|
||||
|
|
|
@ -283,6 +283,7 @@ NetworkService.prototype = {
|
|||
let options = {
|
||||
cmd: "setDNS",
|
||||
ifname: networkInterface.name,
|
||||
domain: "mozilla." + networkInterface.name + ".doman",
|
||||
dns1_str: networkInterface.dns1,
|
||||
dns2_str: networkInterface.dns2
|
||||
};
|
||||
|
@ -296,6 +297,7 @@ NetworkService.prototype = {
|
|||
ifname: network.name,
|
||||
oldIfname: (oldInterface && oldInterface !== network) ? oldInterface.name : null,
|
||||
gateway_str: network.gateway,
|
||||
domain: "mozilla." + network.name + ".doman",
|
||||
dns1_str: network.dns1,
|
||||
dns2_str: network.dns2
|
||||
};
|
||||
|
|
|
@ -205,6 +205,11 @@ CommandFunc NetworkUtils::sNetworkInterfaceSetAlarmChain[] = {
|
|||
NetworkUtils::networkInterfaceAlarmSuccess
|
||||
};
|
||||
|
||||
CommandFunc NetworkUtils::sSetDnsChain[] = {
|
||||
NetworkUtils::setDefaultInterface,
|
||||
NetworkUtils::setInterfaceDns
|
||||
};
|
||||
|
||||
/**
|
||||
* Helper function to get the bit length from given mask.
|
||||
*/
|
||||
|
@ -738,6 +743,26 @@ void NetworkUtils::disableNat(CommandChain* aChain,
|
|||
doCommand(command, aChain, aCallback);
|
||||
}
|
||||
|
||||
void NetworkUtils::setDefaultInterface(CommandChain* aChain,
|
||||
CommandCallback aCallback,
|
||||
NetworkResultOptions& aResult)
|
||||
{
|
||||
char command[MAX_COMMAND_SIZE];
|
||||
snprintf(command, MAX_COMMAND_SIZE - 1, "resolver setdefaultif %s", GET_CHAR(mIfname));
|
||||
|
||||
doCommand(command, aChain, aCallback);
|
||||
}
|
||||
|
||||
void NetworkUtils::setInterfaceDns(CommandChain* aChain,
|
||||
CommandCallback aCallback,
|
||||
NetworkResultOptions& aResult)
|
||||
{
|
||||
char command[MAX_COMMAND_SIZE];
|
||||
snprintf(command, MAX_COMMAND_SIZE - 1, "resolver setifdns %s %s %s %s", GET_CHAR(mIfname), GET_CHAR(mDomain), GET_CHAR(mDns1_str), GET_CHAR(mDns2_str));
|
||||
|
||||
doCommand(command, aChain, aCallback);
|
||||
}
|
||||
|
||||
#undef GET_CHAR
|
||||
#undef GET_FIELD
|
||||
|
||||
|
@ -868,6 +893,11 @@ void NetworkUtils::wifiOperationModeSuccess(CommandChain* aChain,
|
|||
postMessage(aChain->getParams(), aResult);
|
||||
}
|
||||
|
||||
void NetworkUtils::setDnsFail(NetworkParams& aOptions, NetworkResultOptions& aResult)
|
||||
{
|
||||
postMessage(aOptions, aResult);
|
||||
}
|
||||
|
||||
#undef ASSIGN_FIELD
|
||||
#undef ASSIGN_FIELD_VALUE
|
||||
|
||||
|
@ -1054,6 +1084,11 @@ bool NetworkUtils::setDNS(NetworkParams& aOptions)
|
|||
snprintf(num, PROPERTY_VALUE_MAX - 1, "%d", atoi(dnschange) + 1);
|
||||
property_set("net.dnschange", num);
|
||||
|
||||
// DNS needs to be set through netd since JellyBean (4.3).
|
||||
if (SDK_VERSION >= 18) {
|
||||
RUN_CHAIN(aOptions, sSetDnsChain, setDnsFail)
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ public:
|
|||
NetworkParams(const NetworkParams& aOther) {
|
||||
mIp = aOther.mIp;
|
||||
mCmd = aOther.mCmd;
|
||||
mDomain = aOther.mDomain;
|
||||
mDns1_str = aOther.mDns1_str;
|
||||
mDns2_str = aOther.mDns2_str;
|
||||
mGateway = aOther.mGateway;
|
||||
|
@ -106,6 +107,7 @@ public:
|
|||
|
||||
COPY_FIELD(mId)
|
||||
COPY_FIELD(mCmd)
|
||||
COPY_OPT_STRING_FIELD(mDomain, EmptyString())
|
||||
COPY_OPT_STRING_FIELD(mDns1_str, EmptyString())
|
||||
COPY_OPT_STRING_FIELD(mDns2_str, EmptyString())
|
||||
COPY_OPT_STRING_FIELD(mGateway, EmptyString())
|
||||
|
@ -156,6 +158,7 @@ public:
|
|||
|
||||
int32_t mId;
|
||||
nsString mCmd;
|
||||
nsString mDomain;
|
||||
nsString mDns1_str;
|
||||
nsString mDns2_str;
|
||||
nsString mGateway;
|
||||
|
@ -299,6 +302,7 @@ private:
|
|||
static CommandFunc sNetworkInterfaceEnableAlarmChain[];
|
||||
static CommandFunc sNetworkInterfaceDisableAlarmChain[];
|
||||
static CommandFunc sNetworkInterfaceSetAlarmChain[];
|
||||
static CommandFunc sSetDnsChain[];
|
||||
|
||||
/**
|
||||
* Individual netd command stored in command chain.
|
||||
|
@ -331,6 +335,8 @@ private:
|
|||
static void setDnsForwarders(PARAMS);
|
||||
static void enableNat(PARAMS);
|
||||
static void disableNat(PARAMS);
|
||||
static void setDefaultInterface(PARAMS);
|
||||
static void setInterfaceDns(PARAMS);
|
||||
static void wifiTetheringSuccess(PARAMS);
|
||||
static void usbTetheringSuccess(PARAMS);
|
||||
static void networkInterfaceStatsSuccess(PARAMS);
|
||||
|
@ -351,6 +357,7 @@ private:
|
|||
static void setDhcpServerFail(PARAMS);
|
||||
static void networkInterfaceStatsFail(PARAMS);
|
||||
static void networkInterfaceAlarmFail(PARAMS);
|
||||
static void setDnsFail(PARAMS);
|
||||
#undef PARAMS
|
||||
|
||||
/**
|
||||
|
|
|
@ -15,6 +15,7 @@ dictionary NetworkCommandOptions
|
|||
// "removeHostRoutes".
|
||||
DOMString ip; // for "removeNetworkRoute", "setWifiTethering".
|
||||
DOMString netmask; // for "removeNetworkRoute".
|
||||
DOMString domain; // for "setDNS"
|
||||
DOMString dns1_str; // for "setDNS", "setDefaultRouteAndDNS".
|
||||
DOMString dns2_str; // for "setDNS", "setDefaultRouteAndDNS".
|
||||
DOMString oldIfname; // for "setDefaultRouteAndDNS".
|
||||
|
|
|
@ -502,6 +502,14 @@ branding.res = TOPSRCDIR + '/' + CONFIG['MOZ_BRANDING_DIRECTORY'] + '/res'
|
|||
main = add_android_eclipse_project('Fennec', OBJDIR + '/AndroidManifest.xml')
|
||||
main.package_name = 'org.mozilla.gecko'
|
||||
|
||||
# These values were extracted from an existing Eclipse project. Use
|
||||
# Project > Resource > Resource Filters and inspect the resulting
|
||||
# .project file to modify this list.
|
||||
main.filtered_resources += [
|
||||
'1.0-projectRelativePath-matches-false-false-*org/mozilla/gecko/resources/**',
|
||||
'1.0-projectRelativePath-matches-false-false-*org/mozilla/gecko/tests/**',
|
||||
]
|
||||
|
||||
main.recursive_make_targets += ['.aapt.deps'] # Captures dependencies on Android manifest and all resources.
|
||||
main.recursive_make_targets += [OBJDIR + '/generated/' + f for f in mgjar.generated_sources]
|
||||
main.recursive_make_targets += [OBJDIR + '/generated/' + f for f in gbjar.generated_sources]
|
||||
|
|
|
@ -21,6 +21,6 @@
|
|||
|
||||
<instrumentation
|
||||
android:label="@string/app_name"
|
||||
android:name="org.mozilla.browser.harness.BrowserInstrumentationTestRunner"
|
||||
android:name="org.mozilla.gecko.browser.harness.BrowserInstrumentationTestRunner"
|
||||
android:targetPackage="@ANDROID_BROWSER_TARGET_PACKAGE_NAME@" />
|
||||
</manifest>
|
||||
|
|
|
@ -25,8 +25,7 @@ if not CONFIG['LIBXUL_SDK']:
|
|||
add_tier_dir('base', ['mfbt'])
|
||||
|
||||
if not CONFIG['JS_STANDALONE']:
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gonk'):
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk' and CONFIG['ANDROID_VERSION'] <= '18':
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
|
||||
add_tier_dir('base', ['other-licenses/android'])
|
||||
|
||||
if CONFIG['MOZ_MEMORY']:
|
||||
|
|
|
@ -6,7 +6,9 @@ from __future__ import unicode_literals
|
|||
|
||||
import itertools
|
||||
import os
|
||||
import time
|
||||
import types
|
||||
import xml.dom.minidom as minidom
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
from mozpack.copier import FileCopier
|
||||
|
@ -24,6 +26,14 @@ from ..makeutil import Makefile
|
|||
from ..util import ensureParentDir
|
||||
|
||||
|
||||
def pretty_print(element):
|
||||
"""Return a pretty-printed XML string for an Element.
|
||||
"""
|
||||
s = ET.tostring(element, 'utf-8')
|
||||
# minidom wraps element in a Document node; firstChild strips it.
|
||||
return minidom.parseString(s).firstChild.toprettyxml(indent=' ')
|
||||
|
||||
|
||||
class AndroidEclipseBackend(CommonBackend):
|
||||
"""Backend that generates Android Eclipse project files.
|
||||
"""
|
||||
|
@ -114,6 +124,37 @@ class AndroidEclipseBackend(CommonBackend):
|
|||
e.set('path', name)
|
||||
return e
|
||||
|
||||
def _Element_for_filtered_resources(self, filtered_resources):
|
||||
"""Turn a list of filtered resource arguments like
|
||||
['1.0-projectRelativePath-matches-false-false-*org/mozilla/gecko/resources/**']
|
||||
into an XML Element, like:
|
||||
<filteredResources>
|
||||
<filter>
|
||||
<id>1393009101322</id>
|
||||
<name></name>
|
||||
<type>30</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-projectRelativePath-matches-false-false-*org/mozilla/gecko/resources/**</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
</filteredResources>
|
||||
|
||||
The id is random; the values are magic."""
|
||||
|
||||
id = int(1000 * time.time())
|
||||
filteredResources = ET.Element('filteredResources')
|
||||
for arg in sorted(filtered_resources):
|
||||
e = ET.SubElement(filteredResources, 'filter')
|
||||
ET.SubElement(e, 'id').text = str(id)
|
||||
id += 1
|
||||
ET.SubElement(e, 'name')
|
||||
ET.SubElement(e, 'type').text = '30' # It's magic!
|
||||
matcher = ET.SubElement(e, 'matcher')
|
||||
ET.SubElement(matcher, 'id').text = 'org.eclipse.ui.ide.multiFilter'
|
||||
ET.SubElement(matcher, 'arguments').text = str(arg)
|
||||
return filteredResources
|
||||
|
||||
def _manifest_for_project(self, srcdir, project):
|
||||
manifest = InstallManifest()
|
||||
|
||||
|
@ -192,6 +233,11 @@ class AndroidEclipseBackend(CommonBackend):
|
|||
defines['IDE_PROJECT_LIBRARY_REFERENCES'] = '\n'.join(
|
||||
'android.library.reference.%s=%s' % (i + 1, ref)
|
||||
for i, ref in enumerate(sorted(data.included_projects)))
|
||||
if data.filtered_resources:
|
||||
filteredResources = self._Element_for_filtered_resources(data.filtered_resources)
|
||||
defines['IDE_PROJECT_FILTERED_RESOURCES'] = pretty_print(filteredResources).strip()
|
||||
else:
|
||||
defines['IDE_PROJECT_FILTERED_RESOURCES'] = ''
|
||||
|
||||
copier = FileCopier()
|
||||
finder = FileFinder(template_directory)
|
||||
|
|
|
@ -49,4 +49,5 @@
|
|||
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
@IDE_PROJECT_FILTERED_RESOURCES@
|
||||
</projectDescription>
|
||||
|
|
|
@ -597,6 +597,7 @@ class AndroidEclipseProjectData(object):
|
|||
'included_projects',
|
||||
'referenced_projects',
|
||||
'_classpathentries',
|
||||
'filtered_resources',
|
||||
)
|
||||
|
||||
def __init__(self, name):
|
||||
|
@ -611,6 +612,7 @@ class AndroidEclipseProjectData(object):
|
|||
self.included_projects = []
|
||||
self.referenced_projects = []
|
||||
self._classpathentries = []
|
||||
self.filtered_resources = []
|
||||
|
||||
def add_classpathentry(self, path, srcdir, dstdir, exclude_patterns=[], ignore_warnings=False):
|
||||
cpe = ClassPathEntry()
|
||||
|
|
|
@ -53,6 +53,9 @@ let FormWrapper = {
|
|||
},
|
||||
|
||||
_updateSpinningly: function(changes) {
|
||||
if (!Svc.FormHistory.enabled) {
|
||||
return; // update isn't going to do anything.
|
||||
}
|
||||
let cb = Async.makeSpinningCallback();
|
||||
let callbacks = {
|
||||
handleCompletion: function(reason) {
|
||||
|
|
|
@ -5,6 +5,7 @@ _("Make sure the form store follows the Store api and correctly accesses the bac
|
|||
Cu.import("resource://services-sync/engines/forms.js");
|
||||
Cu.import("resource://services-sync/service.js");
|
||||
Cu.import("resource://services-sync/util.js");
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
function run_test() {
|
||||
let baseuri = "http://fake/uri/";
|
||||
|
@ -129,4 +130,22 @@ function run_test() {
|
|||
for (let id in store.getAllIDs()) {
|
||||
do_throw("Shouldn't get any ids!");
|
||||
}
|
||||
|
||||
_("Ensure we work if formfill is disabled.");
|
||||
Services.prefs.setBoolPref("browser.formfill.enable", false);
|
||||
try {
|
||||
// a search
|
||||
for (let id in store.getAllIDs()) {
|
||||
do_throw("Shouldn't get any ids!");
|
||||
}
|
||||
// an update.
|
||||
applyEnsureNoFailures([{
|
||||
id: Utils.makeGUID(),
|
||||
name: "some",
|
||||
value: "entry"
|
||||
}]);
|
||||
} finally {
|
||||
Services.prefs.clearUserPref("browser.formfill.enable");
|
||||
store.wipe();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -773,6 +773,8 @@ function expireOldEntriesVacuum(aExpireTime, aBeginningCount) {
|
|||
}
|
||||
|
||||
this.FormHistory = {
|
||||
get enabled() Prefs.enabled,
|
||||
|
||||
search : function formHistorySearch(aSelectTerms, aSearchData, aCallbacks) {
|
||||
// if no terms selected, select everything
|
||||
aSelectTerms = (aSelectTerms) ? aSelectTerms : validFields;
|
||||
|
|
Загрузка…
Ссылка в новой задаче