Merge latest green birch changeset and mozilla-central
@ -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
vendored
@ -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);
|
||||
|
||||
do_test_pending();
|
||||
|
||||
Task.spawn(function() {
|
||||
gReferenceJSON = yield folderToJSON(gLeftPaneFolderId);
|
||||
|
||||
// Kick-off tests.
|
||||
do_test_pending();
|
||||
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);
|
||||
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,6 +144,7 @@ function run_next_test() {
|
||||
* Convert a folder item id to a JSON representation of it and its contents.
|
||||
*/
|
||||
function folderToJSON(aItemId) {
|
||||
return Task.spawn(function() {
|
||||
let query = PlacesUtils.history.getNewQuery();
|
||||
query.setFolders([aItemId], 1);
|
||||
let options = PlacesUtils.history.getNewQueryOptions();
|
||||
@ -149,9 +156,11 @@ function folderToJSON(aItemId) {
|
||||
this.value += aStr;
|
||||
}
|
||||
};
|
||||
PlacesUtils.serializeNodeAsJSONToOutputStream(root, writer, false, false);
|
||||
yield BookmarkJSONUtils.serializeNodeAsJSONToOutputStream(root, writer,
|
||||
false, false);
|
||||
do_check_true(writer.value.length > 0);
|
||||
return writer.value;
|
||||
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
|
||||
|
162
browser/metro/base/content/NavButtonSlider.js
Normal file
@ -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,26 +191,12 @@
|
||||
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>
|
||||
@ -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");
|
||||
}
|
||||
|
@ -242,6 +242,11 @@
|
||||
</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,22 +339,21 @@
|
||||
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)"/>
|
||||
<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>
|
||||
|
||||
@ -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
|
||||
@ -185,9 +190,15 @@ let Content = {
|
||||
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;
|
||||
|
@ -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
|
||||
|
BIN
browser/metro/theme/images/appbar-back.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
browser/metro/theme/images/appbar-back@1.4x.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
browser/metro/theme/images/appbar-forward.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
browser/metro/theme/images/appbar-forward@1.4x.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
browser/metro/theme/images/appbar-menu.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
browser/metro/theme/images/appbar-menu@1.4x.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
browser/metro/theme/images/appbar-pin.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
browser/metro/theme/images/appbar-pin@1.4x.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
browser/metro/theme/images/appbar-reload.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
browser/metro/theme/images/appbar-star.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
browser/metro/theme/images/appbar-star@1.4x.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
browser/metro/theme/images/appbar-stop.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 484 B |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 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)
|
||||
|
@ -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
|
||||
fi
|
||||
|
||||
if test "$GXX" = yes; then
|
||||
if test "`$CXX -v 2>&1 | egrep -c '(clang version|Apple.*clang)'`" != "0"; then
|
||||
CLANG_CXX=1
|
||||
fi
|
||||
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'
|
||||
|
||||
|
47
configure.in
@ -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
|
||||
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 \
|
||||
|
55
content/html/content/test/test_bug674927.html
Normal file
@ -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>
|
||||
|