Merge latest green birch changeset and mozilla-central

This commit is contained in:
Ed Morley 2013-06-20 09:01:19 +01:00
Родитель 368e37faa8 1107c50e76
Коммит 867dc5785d
875 изменённых файлов: 6714 добавлений и 4151 удалений

Просмотреть файл

@ -7,7 +7,6 @@ topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
LIBRARY_NAME = IA2Marshal
DEFFILE = $(win_srcdir)/IA2Marshal.def
IA2DIR = $(topsrcdir)/other-licenses/ia2

Просмотреть файл

@ -48,3 +48,6 @@ interfaces_c.sort()
EXPORTS += headers
EXPORTS += interfaces_h
EXPORTS += interfaces_c
LIBRARY_NAME = 'IA2Marshal'

Просмотреть файл

@ -7,7 +7,6 @@ topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
LIBRARY_NAME = AccessibleMarshal
DEFFILE = $(win_srcdir)/AccessibleMarshal.def
include $(DEPTH)/config/autoconf.mk

Просмотреть файл

@ -15,3 +15,5 @@ EXPORTS += [
'ISimpleDOMText_i.c',
]
LIBRARY_NAME = 'AccessibleMarshal'

Просмотреть файл

@ -9,7 +9,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = accessibility_toolkit_s
EXPORT_LIBRARY = ..
LIBXUL_LIBRARY = 1

Просмотреть файл

@ -33,3 +33,5 @@ CPP_SOURCES += [
'nsMaiInterfaceValue.cpp',
]
LIBRARY_NAME = 'accessibility_toolkit_s'

Просмотреть файл

@ -9,7 +9,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = accessibility_base_s
LIBXUL_LIBRARY = 1
# we don't want the shared lib, but we want to force the creation of a static lib.

Просмотреть файл

@ -60,3 +60,6 @@ if a11y_log:
CPP_SOURCES += [
'Logging.cpp',
]
LIBRARY_NAME = 'accessibility_base_s'

Просмотреть файл

@ -9,7 +9,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = accessibility_generic_s
LIBXUL_LIBRARY = 1
# we don't want the shared lib, but we want to force the creation of a static lib.

Просмотреть файл

@ -27,3 +27,5 @@ CPP_SOURCES += [
'TextLeafAccessible.cpp',
]
LIBRARY_NAME = 'accessibility_generic_s'

Просмотреть файл

@ -10,7 +10,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = accessibility_html_s
LIBXUL_LIBRARY = 1
# we don't want the shared lib, but we want to force the creation of a static lib.

Просмотреть файл

@ -17,3 +17,5 @@ CPP_SOURCES += [
'HTMLTableAccessible.cpp',
]
LIBRARY_NAME = 'accessibility_html_s'

Просмотреть файл

@ -9,7 +9,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = accessibility_toolkit_s
EXPORT_LIBRARY = ..
LIBXUL_LIBRARY = 1

Просмотреть файл

@ -15,3 +15,5 @@ EXPORTS.mozilla.a11y += [
'HyperTextAccessibleWrap.h',
]
LIBRARY_NAME = 'accessibility_toolkit_s'

Просмотреть файл

@ -9,7 +9,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = accessibility_toolkit_s
EXPORT_LIBRARY = ..
LIBXUL_LIBRARY = 1

Просмотреть файл

@ -16,3 +16,5 @@ CPP_SOURCES += [
'Platform.cpp',
]
LIBRARY_NAME = 'accessibility_toolkit_s'

Просмотреть файл

@ -10,7 +10,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = accessibility_xpcom_s
LIBXUL_LIBRARY = 1
# we don't want the shared lib, but we want to force the creation of a static lib.

Просмотреть файл

@ -17,3 +17,5 @@ CPP_SOURCES += [
'xpcAccessibleTableCell.cpp',
]
LIBRARY_NAME = 'accessibility_xpcom_s'

Просмотреть файл

@ -10,7 +10,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = accessibility_xul_s
LIBXUL_LIBRARY = 1
# we don't want the shared lib, but we want to force the creation of a static lib.

Просмотреть файл

@ -21,3 +21,5 @@ CPP_SOURCES += [
'XULTreeGridAccessible.cpp',
]
LIBRARY_NAME = 'accessibility_xul_s'

1
aclocal.m4 поставляемый
Просмотреть файл

@ -29,6 +29,7 @@ builtin(include, build/autoconf/android.m4)dnl
builtin(include, build/autoconf/zlib.m4)dnl
builtin(include, build/autoconf/linux.m4)dnl
builtin(include, build/autoconf/python-virtualenv.m4)dnl
builtin(include, build/autoconf/winsdk.m4)dnl
MOZ_PROG_CHECKMSYS()

Просмотреть файл

@ -324,7 +324,10 @@ SocialUI = {
get _chromeless() {
// Is this a popup window that doesn't want chrome shown?
let docElem = document.documentElement;
let chromeless = docElem.getAttribute("chromehidden").indexOf("extrachrome") >= 0;
// extrachrome is not restored during session restore, so we need
// to check for the toolbar as well.
let chromeless = docElem.getAttribute("chromehidden").contains("extrachrome") ||
docElem.getAttribute('chromehidden').contains("toolbar");
// This property is "fixed" for a window, so avoid doing the check above
// multiple times...
delete this._chromeless;

Просмотреть файл

@ -7,6 +7,11 @@ let Cc = Components.classes;
let Ci = Components.interfaces;
let Cu = Components.utils;
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this,
"LoginManagerContent", "resource://gre/modules/LoginManagerContent.jsm");
// Bug 671101 - directly using webNavigation in this context
// causes docshells to leak
this.__defineGetter__("webNavigation", function () {
@ -28,3 +33,13 @@ addMessageListener("Browser:HideSessionRestoreButton", function (message) {
container.hidden = true;
}
});
addEventListener("DOMContentLoaded", function(event) {
LoginManagerContent.onContentLoaded(event);
});
addEventListener("DOMAutoComplete", function(event) {
LoginManagerContent.onUsernameInput(event);
});
addEventListener("blur", function(event) {
LoginManagerContent.onUsernameInput(event);
});

Просмотреть файл

@ -9,8 +9,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = browserabout_s
FORCE_STATIC_LIB = 1
USE_STATIC_LIBS = 1

Просмотреть файл

@ -14,3 +14,5 @@ CPP_SOURCES += [
'AboutRedirector.cpp',
]
LIBRARY_NAME = 'browserabout_s'

Просмотреть файл

@ -9,7 +9,6 @@ VPATH=@srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = browsercomps
SHORT_LIBNAME = brwsrcmp
IS_COMPONENT = 1
MODULE_NAME = nsBrowserCompsModule

Просмотреть файл

@ -14,3 +14,5 @@ CPP_SOURCES += [
'nsModule.cpp',
]
LIBRARY_NAME = 'browsercomps'

Просмотреть файл

@ -9,8 +9,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = browserdir_s
FORCE_STATIC_LIB = 1
USE_STATIC_LIBS = 1

Просмотреть файл

@ -16,3 +16,5 @@ CPP_SOURCES += [
'DirectoryProvider.cpp',
]
LIBRARY_NAME = 'browserdir_s'

Просмотреть файл

@ -9,8 +9,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = browser_feeds_s
FORCE_STATIC_LIB = 1
USE_STATIC_LIBS = 1

Просмотреть файл

@ -19,3 +19,6 @@ EXTRA_COMPONENTS += [
EXTRA_PP_COMPONENTS += [
'FeedWriter.js',
]
LIBRARY_NAME = 'browser_feeds_s'

Просмотреть файл

@ -9,8 +9,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = migration_s
FORCE_STATIC_LIB = 1
USE_STATIC_LIBS = 1

Просмотреть файл

@ -35,3 +35,6 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
EXTRA_PP_COMPONENTS += [
'SafariProfileMigrator.js',
]
LIBRARY_NAME = 'migration_s'

Просмотреть файл

@ -104,11 +104,15 @@ function run_test() {
// Create the left pane, and store its current status, it will be used
// as reference value.
gLeftPaneFolderId = PlacesUIUtils.leftPaneFolderId;
gReferenceJSON = folderToJSON(gLeftPaneFolderId);
// Kick-off tests.
do_test_pending();
do_timeout(0, run_next_test);
Task.spawn(function() {
gReferenceJSON = yield folderToJSON(gLeftPaneFolderId);
// Kick-off tests.
do_timeout(0, run_next_test);
});
}
function run_next_test() {
@ -121,11 +125,13 @@ function run_next_test() {
gLeftPaneFolderId = PlacesUIUtils.leftPaneFolderId;
PlacesUIUtils.__defineGetter__("allBookmarksFolderId", gAllBookmarksFolderIdGetter);
// Check the new left pane folder.
let leftPaneJSON = folderToJSON(gLeftPaneFolderId);
do_check_true(compareJSON(gReferenceJSON, leftPaneJSON));
do_check_eq(PlacesUtils.bookmarks.getItemTitle(gFolderId), "test");
// Go to next test.
do_timeout(0, run_next_test);
Task.spawn(function() {
let leftPaneJSON = yield folderToJSON(gLeftPaneFolderId);
do_check_true(compareJSON(gReferenceJSON, leftPaneJSON));
do_check_eq(PlacesUtils.bookmarks.getItemTitle(gFolderId), "test");
// Go to next test.
do_timeout(0, run_next_test);
});
}
else {
// All tests finished.
@ -138,20 +144,23 @@ function run_next_test() {
* Convert a folder item id to a JSON representation of it and its contents.
*/
function folderToJSON(aItemId) {
let query = PlacesUtils.history.getNewQuery();
query.setFolders([aItemId], 1);
let options = PlacesUtils.history.getNewQueryOptions();
options.queryType = Ci.nsINavHistoryQueryOptions.QUERY_TYPE_BOOKMARKS;
let root = PlacesUtils.history.executeQuery(query, options).root;
let writer = {
value: "",
write: function PU_wrapNode__write(aStr, aLen) {
this.value += aStr;
}
};
PlacesUtils.serializeNodeAsJSONToOutputStream(root, writer, false, false);
do_check_true(writer.value.length > 0);
return writer.value;
return Task.spawn(function() {
let query = PlacesUtils.history.getNewQuery();
query.setFolders([aItemId], 1);
let options = PlacesUtils.history.getNewQueryOptions();
options.queryType = Ci.nsINavHistoryQueryOptions.QUERY_TYPE_BOOKMARKS;
let root = PlacesUtils.history.executeQuery(query, options).root;
let writer = {
value: "",
write: function PU_wrapNode__write(aStr, aLen) {
this.value += aStr;
}
};
yield BookmarkJSONUtils.serializeNodeAsJSONToOutputStream(root, writer,
false, false);
do_check_true(writer.value.length > 0);
throw new Task.Result(writer.value);
});
}
/**

Просмотреть файл

@ -50,6 +50,16 @@ var gAdvancedPane = {
["autoMetro", "autoMetroIndent"].forEach(
function(id) document.getElementById(id).collapsed = true
);
} else {
let brandShortName =
document.getElementById("bundleBrand").getString("brandShortName");
let bundlePrefs = document.getElementById("bundlePreferences");
let autoDesktop = document.getElementById("autoDesktop");
autoDesktop.label =
bundlePrefs.getFormattedString("updateAutoDesktop.label",
[brandShortName]);
autoDesktop.accessKey =
bundlePrefs.getString("updateAutoDesktop.accessKey");
}
#endif
#endif

Просмотреть файл

@ -113,6 +113,7 @@
<stringbundle id="bundleShell" src="chrome://browser/locale/shellservice.properties"/>
<stringbundle id="bundleBrand" src="chrome://branding/locale/brand.properties"/>
#endif
<stringbundle id="bundlePreferences" src="chrome://browser/locale/preferences/preferences.properties"/>
<script type="application/javascript" src="chrome://browser/content/preferences/advanced.js"/>
@ -357,9 +358,10 @@
</hbox>
#endif
#endif
<radio value="auto"
label="&updateAuto.label;"
accesskey="&updateAuto.accesskey;"/>
<radio id="autoDesktop"
value="auto"
label="&updateAuto1.label;"
accesskey="&updateAuto1.accesskey;"/>
<hbox class="indent">
<checkbox id="warnIncompatible"
label="&updateAutoAddonWarn.label;"

Просмотреть файл

@ -42,6 +42,16 @@ var gAdvancedPane = {
["autoMetro", "autoMetroIndent"].forEach(
function(id) document.getElementById(id).collapsed = true
);
} else {
let brandShortName =
document.getElementById("bundleBrand").getString("brandShortName");
let bundlePrefs = document.getElementById("bundlePreferences");
let autoDesktop = document.getElementById("autoDesktop");
autoDesktop.label =
bundlePrefs.getFormattedString("updateAutoDesktop.label",
[brandShortName]);
autoDesktop.accessKey =
bundlePrefs.getString("updateAutoDesktop.accessKey");
}
#endif
#endif

Просмотреть файл

@ -129,6 +129,7 @@
<stringbundle id="bundleShell" src="chrome://browser/locale/shellservice.properties"/>
<stringbundle id="bundleBrand" src="chrome://branding/locale/brand.properties"/>
#endif
<stringbundle id="bundlePreferences" src="chrome://browser/locale/preferences/preferences.properties"/>
<hbox class="heading" data-category="paneAdvanced" hidden="true">
<image class="preference-icon" type="advanced"/>
@ -371,9 +372,10 @@
</hbox>
#endif
#endif
<radio value="auto"
label="&updateAuto.label;"
accesskey="&updateAuto.accesskey;"/>
<radio id="autoDesktop"
value="auto"
label="&updateAuto1.label;"
accesskey="&updateAuto1.accesskey;"/>
<hbox class="indent">
<checkbox id="warnIncompatible"
label="&updateAutoAddonWarn.label;"

Просмотреть файл

@ -13,25 +13,6 @@ include $(DEPTH)/config/autoconf.mk
FORCE_STATIC_LIB = 1
USE_STATIC_LIBS = 1
# TODO: Previously, LIBRARY_NAME was set as follows:
#ifdef CPPSRCS
#LIBRARY_NAME = shellservice_s
#endif
# But now we set CPPSRCS in moz.build, which isn't defined at this point.
# This can be simplified when LIBRARY_NAME is in moz.build as well.
ifeq ($(OS_ARCH),WINNT)
LIBRARY_NAME = shellservice_s
else
ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
LIBRARY_NAME = shellservice_s
else
ifdef MOZ_WIDGET_GTK
LIBRARY_NAME = shellservice_s
endif
endif
endif
DISABLED_EXTRA_COMPONENTS = nsSetDefaultBrowser.js nsSetDefaultBrowser.manifest
include $(topsrcdir)/config/rules.mk

Просмотреть файл

@ -19,6 +19,9 @@ elif CONFIG['MOZ_WIDGET_GTK']:
'nsGNOMEShellService.cpp',
]
if CPP_SOURCES:
LIBRARY_NAME = 'shellservice_s'
EXTRA_COMPONENTS += [
'nsSetDefaultBrowser.js',
'nsSetDefaultBrowser.manifest',

Просмотреть файл

@ -84,8 +84,11 @@
<!ENTITY updateTab.label "Update">
<!ENTITY updateApp.label "&brandShortName; updates:">
<!ENTITY updateAuto.label "Automatically install updates from desktop &brandShortName;">
<!ENTITY updateAuto.accesskey "A">
<!-- Note either updateAuto1 is used or (updateAutoMetro and updateAutoDesktop),
so re-using accesss key in updateAuto1 is OK. updateAutoDesktop can be found
in preferences.properties -->
<!ENTITY updateAuto1.label "Automatically install updates (recommended: improved security)">
<!ENTITY updateAuto1.accesskey "A">
<!ENTITY updateAutoMetro.label "Automatically update from desktop and Windows 8 style &brandShortName;">
<!ENTITY updateAutoMetro.accesskey "s">
<!ENTITY updateCheck.label "Check for updates, but let me choose whether to install them">

Просмотреть файл

@ -122,6 +122,11 @@ actualDiskCacheSize=Your web content cache is currently using %1$S %2$S of disk
# %2$S = unit (MB, KB, etc.)
actualAppCacheSize=Your application cache is currently using %1$S %2$S of disk space
###Preferences::Advanced::Update
#LOCALIZATION NOTE: The next string is for updating in Windows 8 only instead of updateAuto1.label. %S = brandShortName
updateAutoDesktop.label=Automatically install updates from desktop %S
updateAutoDesktop.accessKey=A
syncUnlink.title=Do you want to unlink your device?
syncUnlink.label=This device will no longer be associated with your Sync account. All of your personal data, both on this device and in your Sync account, will remain intact.
syncUnlinkConfirm.label=Unlink

Просмотреть файл

@ -0,0 +1,162 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/*
* Handles nav overlay button positioning.
*/
// minimum amount of movement using the mouse after which we cancel the button click handlers
const kOnClickMargin = 3;
var NavButtonSlider = {
_back: document.getElementById("overlay-back"),
_plus: document.getElementById("overlay-plus"),
_mouseMoveStarted: false,
_mouseDown: false,
_yPos: -1,
/*
* custom dragger, see input.js
*/
freeDrag: function freeDrag() {
return true;
},
isDraggable: function isDraggable(aTarget, aContent) {
return { x: false, y: true };
},
dragStart: function dragStart(aX, aY, aTarget, aScroller) {
return true;
},
dragStop: function dragStop(aDx, aDy, aScroller) {
return true;
},
dragMove: function dragMove(aDx, aDy, aScroller, aIsKenetic, aClientX, aClientY) {
// Note if aIsKenetic is true this is synthetic movement,
// we don't want that so return false.
if (aIsKenetic) {
return false;
}
this._updatePosition(aClientY);
// return true if we moved, false otherwise. The result
// is used in deciding if we should repaint between drags.
return true;
},
/*
* logic
*/
init: function init() {
// Touch drag support provided by input.js
this._back.customDragger = this;
this._plus.customDragger = this;
Elements.browsers.addEventListener("ContentSizeChanged", this, true);
let events = ["mousedown", "mouseup", "mousemove", "click"];
events.forEach(function (value) {
this._back.addEventListener(value, this, true);
this._plus.addEventListener(value, this, true);
}, this);
this._updateStops();
},
_updateStops: function () {
this._contentHeight = ContentAreaObserver.contentHeight;
this._imageHeight = 118;
this._topStop = this._imageHeight * .7;
this._bottomStop = this._contentHeight - (this._imageHeight * .7);
// Check to see if we need to move the slider into view
if (this._yPos != -1 &&
(this._topStop > this._yPos || this._bottomStop < this._yPos)) {
this._back.style.top = "50%";
this._plus.style.top = "50%";
}
},
_getPosition: function _getPosition() {
this._yPos = parseInt(getComputedStyle(this._back).top);
},
_setPosition: function _setPosition() {
this._back.style.top = this._yPos + "px";
this._plus.style.top = this._yPos + "px";
},
_updatePosition: function (aClientY) {
if (this._topStop > aClientY || this._bottomStop < aClientY)
return;
this._yPos = aClientY;
this._setPosition();
},
_updateOffset: function (aOffset) {
let newPos = this._yPos + aOffset;
if (this._topStop > newPos || this._bottomStop < newPos)
return;
this._yPos = newPos;
this._setPosition();
},
/*
* Events
*/
handleEvent: function handleEvent(aEvent) {
switch (aEvent.type) {
case "ContentSizeChanged":
this._updateStops();
break;
case "mousedown":
this._getPosition();
this._mouseDown = true;
this._mouseMoveStarted = false;
this._mouseY = aEvent.clientY;
aEvent.originalTarget.setCapture();
this._back.setAttribute("mousedrag", true);
this._plus.setAttribute("mousedrag", true);
break;
case "mouseup":
this._mouseDown = false;
this._back.removeAttribute("mousedrag");
this._plus.removeAttribute("mousedrag");
break;
case "mousemove":
// Check to be sure this is a drag operation
if (!this._mouseDown) {
return;
}
// Don't start a drag until we've passed a threshold
let dy = aEvent.clientY - this._mouseY;
if (!this._mouseMoveStarted && Math.abs(dy) < kOnClickMargin) {
return;
}
// Start dragging via the mouse
this._mouseMoveStarted = true;
this._mouseY = aEvent.clientY;
this._updateOffset(dy);
break;
case "click":
// Don't invoke the click action if we've moved the buttons via the mouse.
if (this._mouseMoveStarted) {
return;
}
if (aEvent.originalTarget == this._back) {
CommandUpdater.doCommand('cmd_back');
} else {
CommandUpdater.doCommand('cmd_newTab');
}
break;
}
},
};

Просмотреть файл

@ -8,7 +8,7 @@ var Appbar = {
get jsShellButton() { return document.getElementById('jsshell-button'); },
get starButton() { return document.getElementById('star-button'); },
get pinButton() { return document.getElementById('pin-button'); },
get moreButton() { return document.getElementById('more-button'); },
get menuButton() { return document.getElementById('menu-button'); },
// track selected/active richgrid/tilegroup - the context for contextual action buttons
activeTileset: null,
@ -111,7 +111,7 @@ var Appbar = {
}
},
onMoreButton: function(aEvent) {
onMenuButton: function(aEvent) {
var typesArray = ["find-in-page"];
try {
// If we have a valid http or https URI then show the view on desktop
@ -124,7 +124,7 @@ var Appbar = {
} catch(ex) {
}
var x = this.moreButton.getBoundingClientRect().left;
var x = this.menuButton.getBoundingClientRect().left;
var y = Elements.navbar.getBoundingClientRect().top;
ContextMenuUI.showContextMenu({
json: {

Просмотреть файл

@ -56,6 +56,15 @@
</implementation>
<handlers>
<handler event="click" phase="capturing">
<![CDATA[
// If the urlbar is not already focused, focus it and select the contents.
if (Elements.urlbarState.getAttribute("mode") != "edit") {
BrowserUI._editURI(true);
}
]]>
</handler>
<handler event="dblclick" phase="capturing">
<![CDATA[
let selectAll = Services.prefs.getBoolPref("browser.urlbar.doubleClickSelectsAll");

Просмотреть файл

@ -9,16 +9,6 @@
%browserDTD;
]>
<!-- ==================================================================
Events: When these elements are in chrome, they are not obscured
by the touch input overlay. When they are in content they may be
obscured depending on the type of input we receive.
chrome: regular mouse events, moz gesture events, tap events.
content: touch input - tap events and synthetic mouse events
generated by content code. mouse input - regular mouse events,
moz gesture events, tap events.
================================================================== -->
<bindings
xmlns="http://www.mozilla.org/xbl"
xmlns:xbl="http://www.mozilla.org/xbl"
@ -201,27 +191,13 @@
box.showContextMenu(this, event, false);
]]>
</handler>
</handlers>
</binding>
<binding id="textarea" extends="chrome://global/content/bindings/textbox.xml#textarea">
<handlers>
<handler event="contextmenu" phase="capturing">
<handler event="click" phase="capturing">
<![CDATA[
let box = this.inputField.parentNode;
box.showContextMenu(this, event, false);
]]>
</handler>
</handlers>
</binding>
<binding id="timed-textbox" extends="chrome://global/content/bindings/textbox.xml#timed-textbox">
<handlers>
<handler event="contextmenu" phase="capturing">
<![CDATA[
let box = this.inputField.parentNode;
box.showContextMenu(this, event, false);
]]>
if (event.mozInputSource == Ci.nsIDOMMouseEvent.MOZ_SOURCE_TOUCH) {
SelectionHelperUI.attachEditSession(ChromeSelectionHandler,
event.clientX, event.clientY);
}
]]>
</handler>
</handlers>
</binding>
@ -270,17 +246,6 @@
</handlers>
</binding>
<binding id="numberbox" extends="chrome://global/content/bindings/numberbox.xml#numberbox">
<handlers>
<handler event="contextmenu" phase="capturing">
<![CDATA[
let box = this.inputField.parentNode;
box.showContextMenu(this, event, false);
]]>
</handler>
</handlers>
</binding>
<binding id="input-box" extends="xul:box">
<implementation>
<method name="showContextMenu">
@ -322,5 +287,15 @@
]]></body>
</method>
</implementation>
<handlers>
<handler event="click" phase="capturing">
<![CDATA[
if (event.mozInputSource == Ci.nsIDOMMouseEvent.MOZ_SOURCE_TOUCH) {
SelectionHelperUI.attachEditSession(ChromeSelectionHandler,
event.clientX, event.clientY);
}
]]>
</handler>
</handlers>
</binding>
</bindings>

Просмотреть файл

@ -135,6 +135,7 @@ let ScriptContexts = {};
["SanitizeUI", "chrome://browser/content/sanitizeUI.js"],
["SSLExceptions", "chrome://browser/content/exceptions.js"],
["ItemPinHelper", "chrome://browser/content/helperui/ItemPinHelper.js"],
["NavButtonSlider", "chrome://browser/content/NavButtonSlider.js"],
#ifdef MOZ_SERVICES_SYNC
["Sync", "chrome://browser/content/sync.js"],
["SyncPairDevice", "chrome://browser/content/sync.js"],

Просмотреть файл

@ -110,6 +110,7 @@ var BrowserUI = {
FlyoutPanelsUI.init();
PageThumbs.init();
SettingsCharm.init();
NavButtonSlider.init();
// show the right toolbars, awesomescreen, etc for the os viewstate
BrowserUI._adjustDOMforViewState();
@ -783,26 +784,6 @@ var BrowserUI = {
onEvent: function(aEventName) {}
},
_urlbarClicked: function _urlbarClicked(aEvent) {
let touchEvent = aEvent.mozInputSource == Ci.nsIDOMMouseEvent.MOZ_SOURCE_TOUCH;
// If the urlbar is not already focused, focus it and select the contents.
if (Elements.urlbarState.getAttribute("mode") != "edit") {
this._editURI(true);
if (touchEvent) {
SelectionHelperUI.attachEditSession(ChromeSelectionHandler,
aEvent.clientX, aEvent.clientY);
}
return;
}
// tap caret handling
if (touchEvent) {
SelectionHelperUI.attachToCaret(ChromeSelectionHandler,
aEvent.clientX, aEvent.clientY);
}
},
_editURI: function _editURI(aShouldDismiss) {
this._edit.focus();
this._edit.select();

Просмотреть файл

@ -209,18 +209,7 @@ textbox {
-moz-binding: url("chrome://browser/content/bindings/bindings.xml#textbox");
}
textbox[multiline="true"] {
-moz-binding: url("chrome://browser/content/bindings/bindings.xml#textarea");
}
textbox[type="timed"] {
-moz-binding: url("chrome://browser/content/bindings/bindings.xml#timed-textbox");
}
/* used in about:config */
textbox[type="search"] {
-moz-binding: url("chrome://browser/content/bindings/bindings.xml#search-textbox");
}
textbox[type="number"] {
-moz-binding: url("chrome://browser/content/bindings/bindings.xml#numberbox");
}

Просмотреть файл

@ -239,9 +239,14 @@
<!-- Content touch selection overlay -->
<!-- onclick addresses dom bug 835175 -->
<box onclick="false" class="selection-overlay-hidden" id="content-selection-overlay"/>
</stack>
</stack>
</vbox>
<html:div id="overlay-back" class="overlay-button"
observes="cmd_back"></html:div>
<html:div id="overlay-plus" class="overlay-button"
observes="cmd_back"></html:div>
<!-- popup for content navigator helper -->
<appbar id="content-navigator" class="window-width content-navigator-box" orient="horizontal" pack="start">
<textbox id="find-helper-textbox" class="search-bar content-navigator-item" oncommand="FindHelperUI.search(this.value)" oninput="FindHelperUI.updateCommands(this.value);" type="search"/>
@ -313,10 +318,10 @@
<observes element="bcast_windowState" attribute="*"/>
<observes element="bcast_urlbarState" attribute="*"/>
<toolbarbutton id="back-button" command="cmd_back"/>
<toolbarbutton id="back-button" class="appbar-primary" command="cmd_back"/>
<toolbarbutton id="forward-button" class="appbar-primary" command="cmd_forward"/>
<hbox id="urlbar-container" flex="1" observes="bcast_urlbarState">
<toolbarbutton id="forward-button" command="cmd_forward"/>
<hbox id="urlbar" flex="1">
<box id="identity-box" role="button">
<hbox id="identity-box-inner" align="center" mousethrough="always">
@ -334,23 +339,22 @@
flex="1"
ontextentered="BrowserUI.handleUrlbarEnter(param);"
onkeydown="BrowserUI.navEditKeyPress();"
onclick="BrowserUI._urlbarClicked(event);"
onblur="BrowserUI._urlbarBlurred();"/>
</hbox>
</hbox>
<toolbarbutton id="tool-reload" oncommand="CommandUpdater.doCommand(event.shiftKey ? 'cmd_forceReload' : 'cmd_reload');"/>
<toolbarbutton id="tool-stop" command="cmd_stop"/>
<toolbarbutton id="reload-button" oncommand="CommandUpdater.doCommand(event.shiftKey ? 'cmd_forceReload' : 'cmd_reload');"/>
<toolbarbutton id="stop-button" command="cmd_stop"/>
</hbox>
<!-- developer buttons -->
<toolbarbutton id="console-button" oncommand="Appbar.onConsoleButton()"/>
<toolbarbutton id="jsshell-button" oncommand="Appbar.onJSShellButton()"/>
<toolbarbutton id="download-button" oncommand="Appbar.onDownloadButton()"/>
<toolbarbutton id="star-button" type="checkbox" oncommand="Appbar.onStarButton()"/>
<toolbarbutton id="pin-button" type="checkbox" oncommand="Appbar.onPinButton()"/>
<toolbarbutton id="more-button" onclick="Appbar.onMoreButton(event)"/>
</toolbar>
<toolbarbutton id="star-button" class="appbar-primary" type="checkbox" oncommand="Appbar.onStarButton()"/>
<toolbarbutton id="pin-button" class="appbar-primary" type="checkbox" oncommand="Appbar.onPinButton()"/>
<toolbarbutton id="menu-button" class="appbar-primary" oncommand="Appbar.onMenuButton(event)"/>
</toolbar>
</appbar>
<!-- Context button bar -->
@ -364,17 +368,8 @@
</toolbar>
</appbar>
<!-- Chrome touch selection overlay -->
<!-- onclick addresses dom bug 835175 -->
<box onclick="false" class="selection-overlay-hidden" id="chrome-selection-overlay"/>
<autoscroller class="autoscroller" id="autoscrollerid"/>
<html:div id="overlay-back" class="overlay-button"
observes="cmd_back" onclick="CommandUpdater.doCommand('cmd_back');"></html:div>
<html:div id="overlay-plus" class="overlay-button"
observes="cmd_back" onclick="CommandUpdater.doCommand('cmd_newTab');"></html:div>
<flyoutpanel id="about-flyoutpanel" headertext="&aboutHeader.title;">
<label id="about-product-label" value="&aboutHeader.product.label;"/>
<label value="&aboutHeader.company.label;"/>
@ -607,6 +602,10 @@
</box>
#endif
<!-- Chrome touch selection overlay -->
<!-- onclick addresses dom bug 835175 -->
<box onclick="false" class="selection-overlay-hidden" id="chrome-selection-overlay"/>
<box onclick="event.stopPropagation();" id="context-container" class="menu-container" hidden="true">
<!-- onclick is dom bug 835175 -->
<vbox id="context-popup" class="menu-popup">

Просмотреть файл

@ -28,6 +28,9 @@ XPCOMUtils.defineLazyGetter(this, "Point", function() {
return Point;
});
XPCOMUtils.defineLazyModuleGetter(this, "LoginManagerContent",
"resource://gre/modules/LoginManagerContent.jsm");
XPCOMUtils.defineLazyServiceGetter(this, "gFocusManager",
"@mozilla.org/focus-manager;1", "nsIFocusManager");
@ -136,6 +139,8 @@ let Content = {
// Synchronous events caught during the bubbling phase
addEventListener("MozApplicationManifest", this, false);
addEventListener("DOMContentLoaded", this, false);
addEventListener("DOMAutoComplete", this, false);
addEventListener("blur", this, false);
addEventListener("pagehide", this, false);
// Attach a listener to watch for "click" events bubbling up from error
// pages and other similar page. This lets us fix bugs like 401575 which
@ -183,11 +188,17 @@ let Content = {
else
this._onClickCapture(aEvent);
break;
case "DOMContentLoaded":
LoginManagerContent.onContentLoaded(aEvent);
this._maybeNotifyErrorPage();
break;
case "DOMAutoComplete":
case "blur":
LoginManagerContent.onUsernameInput(aEvent);
break;
case "pagehide":
if (aEvent.target == content.document)
this._resetFontSize();

Просмотреть файл

@ -890,10 +890,6 @@ var SelectionHelperUI = {
if (this.layerMode == kContentLayer) {
return;
}
if (aEvent.propertyName == "bottom" && !Elements.navbar.isShowing) {
this.closeEditSession(false);
return;
}
if (aEvent.propertyName == "bottom" && Elements.navbar.isShowing) {
this._sendAsyncMessage("Browser:SelectionUpdate", {});
}

Просмотреть файл

@ -92,6 +92,7 @@ chrome.jar:
* content/sync.js (content/sync.js)
content/RemoteTabs.js (content/RemoteTabs.js)
#endif
content/NavButtonSlider.js (content/NavButtonSlider.js)
% override chrome://global/content/config.xul chrome://browser/content/config.xul
% override chrome://global/content/netError.xhtml chrome://browser/content/netError.xhtml

Просмотреть файл

@ -54,7 +54,7 @@ gTests.push({
let xpos = SelectionHelperUI.caretMark.xPos;
let ypos = SelectionHelperUI.caretMark.yPos + 10;
var touchdrag = new TouchDragAndHold();
yield touchdrag.start(gWindow, xpos, ypos, 800, ypos);
yield touchdrag.start(gWindow, xpos, ypos, 900, ypos);
yield waitForCondition(function () {
return getTrimmedSelection(edit).toString() ==
"mochitests/content/metro/browser/metro/base/tests/mochitest/res/textblock01.html";

Просмотреть файл

@ -5,9 +5,8 @@
%filter substitution
%include defines.inc
%define forward_transition_length 150ms
%define forward_width 22px
%define forward_spacing 12px
%define forward_transition_length 200ms
%define forward_spacing 50px
/* Progress meter ------------------------------------------------- */
@ -213,7 +212,7 @@ documenttab[selected] .documenttab-selection {
}
#newtab-button {
list-style-image: url("images/newtab-default.png");
list-style-image: url(chrome://browser/skin/images/newtab-default.png);
}
/* Selection overlay and monocles ----------------------------------------------- */
@ -247,53 +246,58 @@ documenttab[selected] .documenttab-selection {
/* Toolbar ------------------------------------------------------------------ */
#toolbar {
background-color: @panel_dark_color@;
background-image: @panel_dark_background@;
background-color: @panel_light_color@;
}
#toolbar > #back-button {
list-style-image: url(chrome://browser/skin/images/back.png);
-moz-image-region: rect(0 96px 48px 48px);
list-style-image: url(chrome://browser/skin/images/appbar-back.png);
position: relative;
z-index: 1;
-moz-margin-end: -@forward_spacing@;
min-height: 48px;
max-height: 48px;
transition: opacity @forward_transition_length@ ease-out;
}
#toolbar > #back-button[disabled] {
visibility: visible;
-moz-image-region: rect(0 48px 48px 0);
opacity: 0.5;
}
#forward-button {
list-style-image: url(chrome://browser/skin/images/forward.png);
-moz-image-region: rect(1px 22px 25px 0); /* width: 22px; height: 24px; */
-moz-border-end: @metro_border_thick@ solid @urlbar_border_color@;
margin: -1.5px 0;
padding: 0;
-moz-padding-start: calc(@metro_spacing_snormal@ + @forward_spacing@);
-moz-padding-end: @forward_spacing@;
transition: -moz-margin-start @forward_transition_length@ ease-out,
#toolbar > #forward-button {
list-style-image: url(chrome://browser/skin/images/appbar-forward.png);
transition: margin @forward_transition_length@ ease-out,
visibility @forward_transition_length@ ease-out,
opacity @forward_transition_length@ ease-out;
}
#forward-button[disabled] {
-moz-margin-start: calc(-@forward_width@ - @forward_spacing@ * 2);
#toolbar > #forward-button[disabled] {
-moz-margin-start: -@forward_spacing@;
visibility: hidden;
opacity: 0;
pointer-events: none;
}
@media (min-resolution: 130dpi) {
#toolbar > #back-button {
list-style-image: url(chrome://browser/skin/images/appbar-back@1.4x.png);
}
#toolbar > #forward-button {
list-style-image: url(chrome://browser/skin/images/appbar-forward@1.4x.png);
}
}
+
/* URL bar */
#urlbar-container {
border: @metro_border_thick@ solid @urlbar_border_color@;
margin: 0;
-moz-margin-end: @toolbar_horizontal_spacing@;
margin: 0 @toolbar_horizontal_spacing@;
padding: 0;
background-color: @field_background_color@;
overflow: hidden;
}
#urlbar-container[mode="edit"] {
border-color: @metro_orange@;
}
/* Identity widget */
#identity-icon {
margin: 0;
@ -319,6 +323,11 @@ documenttab[selected] .documenttab-selection {
padding: 0 !important;
}
#urlbar-edit > hbox > .textbox-input-box > .textbox-input::-moz-selection {
color: white;
background-color: @metro_orange@;
}
#urlbar-edit > hbox > .textbox-input-box > .textbox-input:invalid {
/* Hide error glow around the address bar that shows by default
* when URLs are made invalid by trmming. */
@ -326,17 +335,17 @@ documenttab[selected] .documenttab-selection {
}
/* Combined stop-reload button */
#tool-reload {
list-style-image: url("chrome://browser/skin/images/reload.png");
#reload-button {
list-style-image: url(chrome://browser/skin/images/appbar-reload.png);
}
#tool-stop {
list-style-image: url("chrome://browser/skin/images/stop-hdpi.png");
#stop-button {
list-style-image: url(chrome://browser/skin/images/appbar-stop.png);
}
#toolbar[mode="loading"] > #tool-reload,
#toolbar:-moz-any([mode="edit"], [mode="view"]) > #tool-stop,
#toolbar[viewstate="snapped"] > #tool-stop ~ toolbarbutton {
#toolbar[mode="loading"] > #urlbar-container > #reload-button,
#toolbar:-moz-any([mode="edit"], [mode="view"]) > #urlbar-container > #stop-button,
#toolbar[viewstate="snapped"] > #urlbar-container ~ toolbarbutton {
visibility: collapse;
}
@ -396,6 +405,45 @@ appbar > toolbar > toolbarbutton:active {
-moz-image-region: rect(80px, 200px, 120px, 160px);
}
#toolbar > .appbar-primary {
-moz-image-region: rect(0 40px 40px 0);
}
#toolbar > .appbar-primary:not([checked]):hover:not(:active) {
-moz-image-region: rect(0 80px 40px 40px);
}
#toolbar > .appbar-primary:not([checked]):active {
-moz-image-region: rect(0 120px 40px 80px);
}
#toolbar > .appbar-primary[checked]:hover:not(:active) {
-moz-image-region: rect(0 160px 40px 120px);
}
@media (min-resolution: 130dpi) {
#toolbar > .appbar-primary > .toolbarbutton-icon {
width: 40px;
height: 40px;
}
#toolbar > .appbar-primary {
-moz-image-region: rect(0 56px 56px 0);
}
#toolbar > .appbar-primary:not([checked]):hover:not(:active) {
-moz-image-region: rect(0 112px 56px 56px);
}
#toolbar > .appbar-primary:not([checked]):active {
-moz-image-region: rect(0 168px 56px 112px);
}
#toolbar > .appbar-primary[checked]:hover:not(:active) {
-moz-image-region: rect(0 224px 56px 168px);
}
}
/* Application-Specific */
#download-button {
-moz-image-region: rect(0px, 40px, 40px, 0px) !important;
@ -420,29 +468,32 @@ appbar > toolbar > toolbarbutton:active {
/* Page-Specific */
#pin-button {
-moz-image-region: rect(0px, 240px, 40px, 200px) !important;
}
#pin-button:hover {
-moz-image-region: rect(40px, 240px, 80px, 200px) !important;
}
#pin-button:active {
-moz-image-region: rect(80px, 240px, 120px, 200px) !important;
}
#pin-button[checked] {
-moz-image-region: rect(0px, 280px, 40px, 240px) !important;
list-style-image: url(chrome://browser/skin/images/appbar-pin.png);
}
#star-button {
-moz-image-region: rect(0px, 360px, 40px, 320px) !important;
list-style-image: url(chrome://browser/skin/images/appbar-star.png);
}
#star-button:hover {
-moz-image-region: rect(40px, 360px, 80px, 320px) !important;
#menu-button {
list-style-image: url(chrome://browser/skin/images/appbar-menu.png);
}
#star-button:active,
#star-button[checked] {
-moz-image-region: rect(80px, 360px, 120px, 320px) !important;
@media (min-resolution: 130dpi) {
#pin-button {
list-style-image: url(chrome://browser/skin/images/appbar-pin@1.4x.png);
}
#star-button {
list-style-image: url(chrome://browser/skin/images/appbar-star@1.4x.png);
}
#menu-button {
list-style-image: url(chrome://browser/skin/images/appbar-menu@1.4x.png);
}
}
#contextualactions-tray {
background-color: @metro_orange@;
}
@ -770,16 +821,23 @@ setting[type="radio"] > vbox {
-moz-appearance: none;
margin: 0;
-moz-margin-end: 40px;
list-style-image: url(chrome://browser/skin/images/back.png);
-moz-image-region: rect(0 48px 48px 0);
list-style-image: url(chrome://browser/skin/images/appbar-back.png);
-moz-image-region: rect(0 40px 40px 0);
padding: 0;
min-height: 48px;
max-height: 48px;
min-height: 40px;
max-height: 40px;
-moz-box-pack: center;
}
@media (min-resolution: 130dpi) {
#panel-close-button {
list-style-image: url(chrome://browser/skin/images/appbar-back@1.4x.png);
width: 40px;
}
}
#panel-close-button[disabled] {
-moz-image-region: rect(0 96px 48px 48px);
opacity: .5;
}
#panel-view-switcher {
@ -878,6 +936,7 @@ setting[type="radio"] > vbox {
border-radius: 50%;
box-shadow: 0 0 0 1px hsla(0,0%,0%,.04),
0 0 9px 0 hsla(0,0%,0%,.1);
transition-property: left, right, transform, background-position, background-color, background-size, border-color, visibility, box-shadow, top;
transition-duration: 550ms;
transition-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1);
}
@ -950,6 +1009,12 @@ setting[type="radio"] > vbox {
transform: translateX(-40px) scale(1.2);
}
#overlay-back[mousedrag],
#overlay-plus[mousedrag] {
transition-property: left, right, transform, background-position, background-color, background-size, border-color, visibility, box-shadow;
}
/* helperapp (save-as) popup ----------------------------------------------- */
#helperapp-target {
font-size: @font_small@ !important;
@ -1043,4 +1108,4 @@ setting[type="radio"] > vbox {
.autoscroller[scrolldir="EW"] {
background-position: right bottom;
}
}

Просмотреть файл

@ -3,7 +3,6 @@
%define panel_dark_color #41464C
%define panel_dark_background url(chrome://browser/skin/images/panel-dark.png)
%define panel_light_color #F1F1F1
%define panel_light_background url(chrome://browser/skin/images/panel-light.png)
%define field_sizing 30px
%define field_foreground_color #000000

Двоичные данные
browser/metro/theme/images/appbar-back.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.7 KiB

Двоичные данные
browser/metro/theme/images/appbar-back@1.4x.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 3.9 KiB

Двоичные данные
browser/metro/theme/images/appbar-forward.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.7 KiB

Двоичные данные
browser/metro/theme/images/appbar-forward@1.4x.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 3.9 KiB

Двоичные данные
browser/metro/theme/images/appbar-menu.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.8 KiB

Двоичные данные
browser/metro/theme/images/appbar-menu@1.4x.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 4.2 KiB

Двоичные данные
browser/metro/theme/images/appbar-pin.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 3.6 KiB

Двоичные данные
browser/metro/theme/images/appbar-pin@1.4x.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 5.1 KiB

Двоичные данные
browser/metro/theme/images/appbar-reload.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.6 KiB

Двоичные данные
browser/metro/theme/images/appbar-star.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 3.6 KiB

Двоичные данные
browser/metro/theme/images/appbar-star@1.4x.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 5.3 KiB

Двоичные данные
browser/metro/theme/images/appbar-stop.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.4 KiB

Двоичные данные
browser/metro/theme/images/back.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 2.2 KiB

Двоичные данные
browser/metro/theme/images/forward.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Двоичные данные
browser/metro/theme/images/panel-light.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 484 B

Двоичные данные
browser/metro/theme/images/reload.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 1.6 KiB

Двоичные данные
browser/metro/theme/images/stop-hdpi.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 737 B

Просмотреть файл

@ -21,11 +21,19 @@ chrome.jar:
% override chrome://global/skin/media/videocontrols.css chrome://browser/skin/touchcontrols.css
% override chrome://global/skin/netError.css chrome://browser/skin/netError.css
skin/images/panel-light.png (images/panel-light.png)
skin/images/panel-dark.png (images/panel-dark.png)
skin/images/back.png (images/back.png)
skin/images/forward.png (images/forward.png)
skin/images/reload.png (images/reload.png)
skin/images/appbar-back.png (images/appbar-back.png)
skin/images/appbar-back@1.4x.png (images/appbar-back@1.4x.png)
skin/images/appbar-forward.png (images/appbar-forward.png)
skin/images/appbar-forward@1.4x.png (images/appbar-forward@1.4x.png)
skin/images/appbar-star.png (images/appbar-star.png)
skin/images/appbar-star@1.4x.png (images/appbar-star@1.4x.png)
skin/images/appbar-pin.png (images/appbar-pin.png)
skin/images/appbar-pin@1.4x.png (images/appbar-pin@1.4x.png)
skin/images/appbar-menu.png (images/appbar-menu.png)
skin/images/appbar-menu@1.4x.png (images/appbar-menu@1.4x.png)
skin/images/appbar-reload.png (images/appbar-reload.png)
skin/images/appbar-stop.png (images/appbar-stop.png)
skin/images/newtab-default.png (images/newtab-default.png)
skin/images/closetab-default.png (images/closetab-default.png)
skin/images/tab-arrows.png (images/tab-arrows.png)
@ -62,7 +70,6 @@ chrome.jar:
skin/images/errorpage-larry-white.png (images/errorpage-larry-white.png)
skin/images/errorpage-larry-black.png (images/errorpage-larry-black.png)
skin/images/throbber.png (images/throbber.png)
skin/images/stop-hdpi.png (images/stop-hdpi.png)
skin/images/alert-downloads-30.png (images/alert-downloads-30.png)
skin/images/identity-default-hdpi.png (images/identity-default-hdpi.png)
skin/images/identity-ssl-hdpi.png (images/identity-ssl-hdpi.png)
@ -82,4 +89,4 @@ chrome.jar:
skin/images/overlay-back.png (images/overlay-back.png)
skin/images/overlay-plus.png (images/overlay-plus.png)
skin/images/autoscroll.png (images/autoscroll.png)
skin/images/autoscroll.png (images/autoscroll.png)

Просмотреть файл

@ -55,16 +55,12 @@ fi
CLANG_CC=
CLANG_CXX=
if test "$GCC" = yes; then
if test "`$CC -v 2>&1 | egrep -c '(clang version|Apple.*clang)'`" != "0"; then
CLANG_CC=1
fi
if test "`$CC -v 2>&1 | egrep -c '(clang version|Apple.*clang)'`" != "0"; then
CLANG_CC=1
fi
if test "$GXX" = yes; then
if test "`$CXX -v 2>&1 | egrep -c '(clang version|Apple.*clang)'`" != "0"; then
CLANG_CXX=1
fi
if test "`$CXX -v 2>&1 | egrep -c '(clang version|Apple.*clang)'`" != "0"; then
CLANG_CXX=1
fi
AC_SUBST(CLANG_CXX)
])

37
build/autoconf/winsdk.m4 Normal file
Просмотреть файл

@ -0,0 +1,37 @@
dnl This Source Code Form is subject to the terms of the Mozilla Public
dnl License, v. 2.0. If a copy of the MPL was not distributed with this
dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
dnl Identify which version of the SDK we're building with
dnl Windows Server 2008 and newer SDKs have WinSDKVer.h, get the version
dnl from there
AC_DEFUN([MOZ_FIND_WINSDK_VERSION], [
MOZ_CHECK_HEADERS([winsdkver.h])
if test "$ac_cv_header_winsdkver_h" = "yes"; then
dnl Get the highest _WIN32_WINNT and NTDDI versions supported
dnl Take the higher of the two
dnl This is done because the Windows 7 beta SDK reports its
dnl NTDDI_MAXVER to be 0x06000100 instead of 0x06010000, as it should
AC_CACHE_CHECK(for highest Windows version supported by this SDK,
ac_cv_winsdk_maxver,
[cat > conftest.h <<EOF
#include <winsdkver.h>
#include <sdkddkver.h>
#if (NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT_MAXVER) > NTDDI_MAXVER)
#define WINSDK_MAXVER NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT_MAXVER)
#else
#define WINSDK_MAXVER NTDDI_MAXVER
#endif
WINSDK_MAXVER
EOF
ac_cv_winsdk_maxver=`$CPP conftest.h 2>/dev/null | tail -n1`
rm -f conftest.h
])
MOZ_WINSDK_MAXVER=${ac_cv_winsdk_maxver}
else
dnl Any SDK which doesn't have WinSDKVer.h is too old.
AC_MSG_ERROR([Your SDK does not have WinSDKVer.h. It is probably too old. Please upgrade to a newer SDK or try running the Windows SDK Configuration Tool and selecting a newer SDK. See https://developer.mozilla.org/En/Windows_SDK_versions for more details on fixing this.])
fi
])

Просмотреть файл

@ -10,7 +10,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
MODULES = stlport
LIBRARY_NAME = stlport_static
FORCE_STATIC_LIB = 1
STL_FLAGS =

Просмотреть файл

@ -10,3 +10,5 @@ CPP_SOURCES += [
'$(notdir $(wildcard $(STLPORT_SOURCES)/src/*.cpp))',
]
LIBRARY_NAME = 'stlport_static'

Просмотреть файл

@ -9,7 +9,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = stdc++compat
FORCE_STATIC_LIB= 1
STL_FLAGS =
NO_EXPAND_LIBS = 1

Просмотреть файл

@ -11,3 +11,6 @@ CPP_SOURCES += [
]
HOST_LIBRARY_NAME = 'host_stdc++compat'
LIBRARY_NAME = 'stdc++compat'

Просмотреть файл

@ -9,7 +9,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = crashinjectdll
DEFFILE = $(srcdir)/crashinjectdll.def
FORCE_SHARED_LIB = 1
USE_STATIC_LIBS = 1

Просмотреть файл

@ -8,3 +8,5 @@ CPP_SOURCES += [
'crashinjectdll.cpp',
]
LIBRARY_NAME = 'crashinjectdll'

Просмотреть файл

@ -9,7 +9,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = vmwarerecordinghelper
DEFFILE = $(srcdir)/$(LIBRARY_NAME).def
FORCE_SHARED_LIB = 1

Просмотреть файл

@ -8,3 +8,5 @@ CPP_SOURCES += [
'vmwarerecordinghelper.cpp',
]
LIBRARY_NAME = 'vmwarerecordinghelper'

Просмотреть файл

@ -10,7 +10,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = caps_s
MSVC_ENABLE_PGO := 1
FORCE_STATIC_LIB = 1
LIBXUL_LIBRARY = 1

Просмотреть файл

@ -16,3 +16,5 @@ CPP_SOURCES += [
'nsSystemPrincipal.cpp',
]
LIBRARY_NAME = 'caps_s'

Просмотреть файл

@ -448,7 +448,7 @@ esac
case "$target" in
*-mingw*)
if test "$GCC" != "yes"; then
if test "$GCC" != "yes" -a -z "$CLANG_CC"; then
# Check to see if we are really running in a msvc environemnt
_WIN32_MSVC=1
AC_CHECK_PROGS(MIDL, midl)
@ -573,38 +573,6 @@ case "$target" in
;;
esac
# Identify which version of the SDK we're building with
# Windows Server 2008 and newer SDKs have WinSDKVer.h, get the version
# from there
MOZ_CHECK_HEADERS([winsdkver.h])
if test "$ac_cv_header_winsdkver_h" = "yes"; then
# Get the highest _WIN32_WINNT and NTDDI versions supported
# Take the higher of the two
# This is done because the Windows 7 beta SDK reports its
# NTDDI_MAXVER to be 0x06000100 instead of 0x06010000, as it should
AC_CACHE_CHECK(for highest Windows version supported by this SDK,
ac_cv_winsdk_maxver,
[cat > conftest.h <<EOF
#include <winsdkver.h>
#include <sdkddkver.h>
#if (NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT_MAXVER) > NTDDI_MAXVER)
#define WINSDK_MAXVER NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT_MAXVER)
#else
#define WINSDK_MAXVER NTDDI_MAXVER
#endif
WINSDK_MAXVER
EOF
ac_cv_winsdk_maxver=`$CPP conftest.h 2>/dev/null | tail -n1`
rm -f conftest.h
])
MOZ_WINSDK_MAXVER=${ac_cv_winsdk_maxver}
else
# Any SDK which doesn't have WinSDKVer.h is too old.
AC_MSG_ERROR([Your SDK does not have WinSDKVer.h. It is probably too old. Please upgrade to a newer SDK or try running the Windows SDK Configuration Tool and selecting a newer SDK. See https://developer.mozilla.org/En/Windows_SDK_versions for more details on fixing this.])
fi
unset _MSVC_VER_FILTER
AC_CACHE_CHECK(for std::_Throw, ac_cv_have_std__Throw,
@ -672,7 +640,7 @@ EOF
if test "$WRAP_STL_INCLUDES" = "1"; then
STL_FLAGS='-D_HAS_EXCEPTIONS=0 -I$(DIST)/stl_wrappers'
fi
else
elif test -z "$CLANG_CC"; then
# Check w32api version
_W32API_MAJOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $1 }'`
_W32API_MINOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $2 }'`
@ -723,6 +691,11 @@ EOF
MOZ_WINSDK_MAXVER=0x06020000
fi # !GNU_CC
# If MSVC or clang
if test "$GCC" != "yes" -o -n "$CLANG_CC" ; then
MOZ_FIND_WINSDK_VERSION
fi
AC_DEFINE_UNQUOTED(WINVER,0x$WINVER)
AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x$WINVER)
# Require OS features provided by IE 6.0 SP2 (XP SP2)
@ -2081,7 +2054,7 @@ ia64*-hpux*)
MC=mc.exe
# certain versions of cygwin's makedepend barf on the
# #include <string> vs -I./dist/include/string issue so don't use it
if test -n "$GNU_CC"; then
if test -n "$GNU_CC" -o -n "$CLANG_CC"; then
CC="$CC -mwindows"
CXX="$CXX -mwindows"
CPP="$CPP -mwindows"
@ -2909,7 +2882,11 @@ AC_SUBST(VISIBILITY_FLAGS)
MOZ_GCC_PR49911
MOZ_GCC_PR39608
MOZ_LLVM_PR8927
if test "$OS_TARGET" != WINNT; then
# Only run this test with clang on non-Windows platforms, because clang
# cannot do enough code gen for now to make this test work correctly.
MOZ_LLVM_PR8927
fi
dnl Check for __force_align_arg_pointer__ for SSE2 on gcc
dnl ========================================================

Просмотреть файл

@ -531,6 +531,8 @@ nsNodeUtils::CloneAndAdopt(nsINode *aNode, bool aClone, bool aDeep,
nsIXPConnect *xpc = nsContentUtils::XPConnect();
if (xpc) {
rv = xpc->ReparentWrappedNativeIfFound(cx, wrapper, aReparentScope, aNode);
} else {
rv = NS_ERROR_FAILURE;
}
}
if (NS_FAILED(rv)) {

Просмотреть файл

@ -9,7 +9,6 @@ MODULE = 'content'
EXPORTS += [
'nsDOMEvent.h',
'nsDOMEventTargetHelper.h',
'nsDOMGamepad.h',
'nsDOMTouchEvent.h',
'nsDOMUIEvent.h',
'nsEventListenerManager.h',
@ -61,8 +60,3 @@ CPP_SOURCES += [
'nsPaintRequest.cpp',
'nsPrivateTextRange.cpp',
]
if CONFIG['MOZ_GAMEPAD']:
CPP_SOURCES += [
'nsDOMGamepad.cpp',
]

Просмотреть файл

@ -517,17 +517,17 @@ nsGenericHTMLElement::Spellcheck()
}
}
// contenteditable/designMode are spellchecked by default
if (IsEditable()) {
return true;
}
// Is this a chrome element?
if (nsContentUtils::IsChromeDoc(OwnerDoc())) {
return false; // Not spellchecked by default
}
if (IsCurrentBodyElement()) {
nsCOMPtr<nsIHTMLDocument> doc = do_QueryInterface(GetCurrentDoc());
return doc && doc->IsEditingOn();
}
// Is this element editable?
// Anything else that's not a form control is not spellchecked by default
nsCOMPtr<nsIFormControl> formControl = do_QueryInterface(this);
if (!formControl) {
return false; // Not spellchecked by default

Просмотреть файл

@ -259,6 +259,7 @@ MOCHITEST_FILES = \
test_q_attributes_reflection.html \
test_html_attributes_reflection.html \
test_bug651956.html \
test_bug674927.html \
test_bug694503.html \
test_object_plugin_nav.html \
test_bug742030.html \

Просмотреть файл

@ -0,0 +1,55 @@
<!DOCTYPE html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=674927
-->
<title>Test for Bug 674927</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
<p><span>Hello</span></p>
<div contenteditable>Contenteditable <i>is</i> splelchecked by default</div>
<textarea>Textareas are spellchekced by default</textarea>
<input value="Inputs are not spellcheckde by default">
<script>
// Test the effect of setting spellcheck on various elements
[
"html",
"body",
"p",
"span",
"div",
"i",
"textarea",
"input",
].forEach(function(query) {
var element = document.querySelector(query);
// First check what happens if no attributes are set
var defaultSpellcheck;
if (element.isContentEditable || element.tagName == "TEXTAREA") {
defaultSpellcheck = true;
} else {
defaultSpellcheck = false;
}
is(element.spellcheck, defaultSpellcheck,
"Default spellcheck for <" + element.tagName.toLowerCase() + ">");
// Now try setting spellcheck on ancestors
var ancestor = element;
do {
testSpellcheck(ancestor, element);
ancestor = ancestor.parentNode;
} while (ancestor.nodeType == Node.ELEMENT_NODE);
});
function testSpellcheck(ancestor, element) {
ancestor.spellcheck = true;
is(element.spellcheck, true,
".spellcheck on <" + element.tagName.toLowerCase() + "> with " +
"spellcheck=true on <" + ancestor.tagName.toLowerCase() + ">");
ancestor.spellcheck = false;
is(element.spellcheck, false,
".spellcheck on <" + element.tagName.toLowerCase() + "> with " +
"spellcheck=false on <" + ancestor.tagName.toLowerCase() + ">");
ancestor.removeAttribute("spellcheck");
}
</script>

Просмотреть файл

@ -10,7 +10,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = gkconhtmldoc_s
MSVC_ENABLE_PGO := 1
LIBXUL_LIBRARY = 1
FAIL_ON_WARNINGS = 1

Просмотреть файл

@ -22,3 +22,6 @@ CPP_SOURCES += [
'nsHTMLContentSink.cpp',
'nsHTMLDocument.cpp',
]
LIBRARY_NAME = 'gkconhtmldoc_s'

Просмотреть файл

@ -15,7 +15,6 @@ VPATH := @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME := gkcondash_s
LIBXUL_LIBRARY := 1
FORCE_STATIC_LIB := 1

Просмотреть файл

@ -19,3 +19,5 @@ CPP_SOURCES += [
'DASHRepDecoder.cpp',
]
LIBRARY_NAME = 'gkcondash_s'

Просмотреть файл

@ -9,7 +9,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = gkconencoder_s
LIBXUL_LIBRARY = 1
FAIL_ON_WARNINGS := 1

Просмотреть файл

@ -20,3 +20,6 @@ CPP_SOURCES += [
if CONFIG['MOZ_OPUS']:
EXPORTS += ['OpusTrackEncoder.h']
CPP_SOURCES += ['OpusTrackEncoder.cpp']
LIBRARY_NAME = 'gkconencoder_s'

Просмотреть файл

@ -12,7 +12,15 @@
#include <gst/gststructure.h>
#include <gst/app/gstappsrc.h>
#include <gst/app/gstappsink.h>
// This include trips -Wreserved-user-defined-literal on clang. Ignoring it
// trips -Wpragmas on GCC (unknown warning), but ignoring that trips
// -Wunknown-pragmas on clang (unknown pragma).
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunknown-pragmas"
#pragma GCC diagnostic ignored "-Wpragmas"
#pragma GCC diagnostic ignored "-Wreserved-user-defined-literal"
#include <gst/video/video.h>
#pragma GCC diagnostic pop
namespace mozilla {

Просмотреть файл

@ -8,7 +8,11 @@
#include <gst/gst.h>
#include <gst/app/gstappsrc.h>
#include <gst/app/gstappsink.h>
// This include trips -Wreserved-user-defined-literal on clang. Ignoring it
// trips -Wpragmas on GCC (unknown warning), but ignoring that trips
// -Wunknown-pragmas on clang (unknown pragma).
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunknown-pragmas"
#pragma GCC diagnostic ignored "-Wpragmas"
#pragma GCC diagnostic ignored "-Wreserved-user-defined-literal"
#include <gst/video/video.h>

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше