diff --git a/.hgignore b/.hgignore
index e7c33f9d30d..6c043f2fdb5 100644
--- a/.hgignore
+++ b/.hgignore
@@ -29,4 +29,4 @@ _OPT\.OBJ/
^js/src/autom4te.cache$
# Java HTML5 parser classes
-^parser/html/java/.*\.class$
+^parser/html/java/(html|java)parser/
diff --git a/Makefile.in b/Makefile.in
index 5e973b0c822..7f77084973e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -105,6 +105,9 @@ export::
ifdef ENABLE_TESTS
# Additional makefile targets to call automated test suites
include $(topsrcdir)/testing/testsuite-targets.mk
+else
+# OS X Universal builds will want to call this, so stub it out
+package-tests:
endif
include $(topsrcdir)/config/rules.mk
diff --git a/accessible/build/Makefile.in b/accessible/build/Makefile.in
index d5e842f2eff..60cc9c1ced7 100644
--- a/accessible/build/Makefile.in
+++ b/accessible/build/Makefile.in
@@ -46,15 +46,12 @@ include $(DEPTH)/config/autoconf.mk
MODULE = accessibility
LIBRARY_NAME = accessibility
EXPORT_LIBRARY = 1
-ifneq ($(OS_ARCH),WINNT)
SHORT_LIBNAME = access
-endif
IS_COMPONENT = 1
MODULE_NAME = nsAccessibilityModule
GRE_MODULE = 1
LIBXUL_LIBRARY = 1
-
CPPSRCS = nsAccessibilityFactory.cpp
LOCAL_INCLUDES = -I$(srcdir)/../src
diff --git a/accessible/src/base/nsAccessibilityService.cpp b/accessible/src/base/nsAccessibilityService.cpp
index 713ce9dbf21..82cf73650bd 100644
--- a/accessible/src/base/nsAccessibilityService.cpp
+++ b/accessible/src/base/nsAccessibilityService.cpp
@@ -1453,7 +1453,7 @@ NS_IMETHODIMP nsAccessibilityService::GetAccessible(nsIDOMNode *aNode,
return InitAccessible(newAcc, aAccessible, nsnull);
}
- PRBool isHTML = content->IsNodeOfType(nsINode::eHTML);
+ PRBool isHTML = content->IsHTML();
if (isHTML && content->Tag() == nsAccessibilityAtoms::map) {
// Create hyper text accessible for HTML map if it is used to group links
// (see http://www.w3.org/TR/WCAG10-HTML-TECHS/#group-bypass). If the HTML
diff --git a/accessible/src/base/nsAccessible.cpp b/accessible/src/base/nsAccessible.cpp
index 6688bc4c530..4c25cfa5de0 100644
--- a/accessible/src/base/nsAccessible.cpp
+++ b/accessible/src/base/nsAccessible.cpp
@@ -298,9 +298,9 @@ nsAccessible::GetName(nsAString& aName)
nsIAtom *tooltipAttr = nsnull;
- if (content->IsNodeOfType(nsINode::eHTML))
+ if (content->IsHTML())
tooltipAttr = nsAccessibilityAtoms::title;
- else if (content->IsNodeOfType(nsINode::eXUL))
+ else if (content->IsXUL())
tooltipAttr = nsAccessibilityAtoms::tooltiptext;
else
return NS_OK;
@@ -342,7 +342,7 @@ NS_IMETHODIMP nsAccessible::GetDescription(nsAString& aDescription)
NS_ENSURE_SUCCESS(rv, rv);
if (description.IsEmpty()) {
- PRBool isXUL = content->IsNodeOfType(nsINode::eXUL);
+ PRBool isXUL = content->IsXUL();
if (isXUL) {
// Try XUL description text
nsIContent *descriptionContent =
@@ -1009,7 +1009,7 @@ nsAccessible::GetStateInternal(PRUint32 *aState, PRUint32 *aExtraState)
// if someone sets it on another attribute,
// it seems reasonable to consider it unavailable
PRBool isDisabled;
- if (content->IsNodeOfType(nsINode::eHTML)) {
+ if (content->IsHTML()) {
// In HTML, just the presence of the disabled attribute means it is disabled,
// therefore disabled="false" indicates disabled!
isDisabled = content->HasAttr(kNameSpaceID_None, nsAccessibilityAtoms::disabled);
@@ -1049,7 +1049,7 @@ nsAccessible::GetStateInternal(PRUint32 *aState, PRUint32 *aExtraState)
*aState |= nsIAccessibleStates::STATE_FLOATING;
// Check if a XUL element has the popup attribute (an attached popup menu).
- if (content->IsNodeOfType(nsINode::eXUL))
+ if (content->IsXUL())
if (content->HasAttr(kNameSpaceID_None, nsAccessibilityAtoms::popup))
*aState |= nsIAccessibleStates::STATE_HASPOPUP;
@@ -2413,7 +2413,7 @@ nsAccessible::GetRelationByType(PRUint32 aRelationType,
case nsIAccessibleRelation::RELATION_LABEL_FOR:
{
if (content->Tag() == nsAccessibilityAtoms::label) {
- nsIAtom *IDAttr = content->IsNodeOfType(nsINode::eHTML) ?
+ nsIAtom *IDAttr = content->IsHTML() ?
nsAccessibilityAtoms::_for : nsAccessibilityAtoms::control;
rv = nsRelUtils::
AddTargetFromIDRefAttr(aRelationType, aRelation, content, IDAttr);
@@ -2470,7 +2470,7 @@ nsAccessible::GetRelationByType(PRUint32 aRelationType,
return NS_OK; // XXX bug 381599, avoid performance problems
if (content->Tag() == nsAccessibilityAtoms::description &&
- content->IsNodeOfType(nsINode::eXUL)) {
+ content->IsXUL()) {
// This affectively adds an optional control attribute to xul:description,
// which only affects accessibility, by allowing the description to be
// tied to a control.
@@ -2554,7 +2554,7 @@ nsAccessible::GetRelationByType(PRUint32 aRelationType,
case nsIAccessibleRelation::RELATION_DEFAULT_BUTTON:
{
- if (content->IsNodeOfType(nsINode::eHTML)) {
+ if (content->IsHTML()) {
// HTML form controls implements nsIFormControl interface.
nsCOMPtr control(do_QueryInterface(content));
if (control) {
@@ -3101,10 +3101,10 @@ nsAccessible::GetNameInternal(nsAString& aName)
if (!content)
return NS_OK;
- if (content->IsNodeOfType(nsINode::eHTML))
+ if (content->IsHTML())
return GetHTMLName(aName);
- if (content->IsNodeOfType(nsINode::eXUL))
+ if (content->IsXUL())
return GetXULName(aName);
return NS_OK;
@@ -3231,7 +3231,7 @@ nsAccessible::GetActionRule(PRUint32 aStates)
return eJumpAction;
// Return "click" action on elements that have an attached popup menu.
- if (content->IsNodeOfType(nsINode::eXUL))
+ if (content->IsXUL())
if (content->HasAttr(kNameSpaceID_None, nsAccessibilityAtoms::popup))
return eClickAction;
diff --git a/accessible/src/base/nsAccessibleTreeWalker.cpp b/accessible/src/base/nsAccessibleTreeWalker.cpp
index c32613b75ab..e3672edeb78 100644
--- a/accessible/src/base/nsAccessibleTreeWalker.cpp
+++ b/accessible/src/base/nsAccessibleTreeWalker.cpp
@@ -75,7 +75,7 @@ nsAccessibleTreeWalker::~nsAccessibleTreeWalker()
void nsAccessibleTreeWalker::GetKids(nsIDOMNode *aParentNode)
{
nsCOMPtr parentContent(do_QueryInterface(aParentNode));
- if (!parentContent || !parentContent->IsNodeOfType(nsINode::eHTML)) {
+ if (!parentContent || !parentContent->IsHTML()) {
mState.frame = nsnull; // Don't walk frames in non-HTML content, just walk the DOM.
}
diff --git a/accessible/src/base/nsCoreUtils.cpp b/accessible/src/base/nsCoreUtils.cpp
index c4ab3461ced..11a9282625d 100644
--- a/accessible/src/base/nsCoreUtils.cpp
+++ b/accessible/src/base/nsCoreUtils.cpp
@@ -760,7 +760,7 @@ nsCoreUtils::FindDescendantPointingToIDImpl(nsCString& aIdWithSpaces,
nsIContent*
nsCoreUtils::GetLabelContent(nsIContent *aForNode)
{
- if (aForNode->IsNodeOfType(nsINode::eXUL))
+ if (aForNode->IsXUL())
return FindNeighbourPointingToNode(aForNode, nsAccessibilityAtoms::control,
nsAccessibilityAtoms::label);
diff --git a/accessible/src/base/nsDocAccessible.cpp b/accessible/src/base/nsDocAccessible.cpp
index 08edd93daca..7196ded2f4d 100644
--- a/accessible/src/base/nsDocAccessible.cpp
+++ b/accessible/src/base/nsDocAccessible.cpp
@@ -383,8 +383,7 @@ NS_IMETHODIMP nsDocAccessible::TakeFocus()
nsCOMPtr fm = do_GetService(FOCUSMANAGER_CONTRACTID);
if (fm) {
- nsCOMPtr domDocument;
- mDOMNode->GetOwnerDocument(getter_AddRefs(domDocument));
+ nsCOMPtr domDocument(do_QueryInterface(mDOMNode));
nsCOMPtr document(do_QueryInterface(domDocument));
if (document) {
// focus the document
diff --git a/accessible/src/base/nsTextEquivUtils.cpp b/accessible/src/base/nsTextEquivUtils.cpp
index a1ca0c23a4d..d2f297832be 100644
--- a/accessible/src/base/nsTextEquivUtils.cpp
+++ b/accessible/src/base/nsTextEquivUtils.cpp
@@ -219,7 +219,7 @@ nsTextEquivUtils::AppendTextEquivFromTextContent(nsIContent *aContent,
return NS_OK;
}
- if (aContent->IsNodeOfType(nsINode::eHTML) &&
+ if (aContent->IsHTML() &&
aContent->NodeInfo()->Equals(nsAccessibilityAtoms::br)) {
aString->AppendLiteral("\r\n");
return NS_OK;
@@ -393,7 +393,7 @@ nsTextEquivUtils::AppendFromDOMNode(nsIContent *aContent, nsAString *aString)
if (rv != NS_OK_NO_NAME_CLAUSE_HANDLED)
return NS_OK;
- if (aContent->IsNodeOfType(nsINode::eXUL)) {
+ if (aContent->IsXUL()) {
nsAutoString textEquivalent;
nsCOMPtr labeledEl =
do_QueryInterface(aContent);
diff --git a/accessible/src/html/nsHTMLSelectAccessible.cpp b/accessible/src/html/nsHTMLSelectAccessible.cpp
index 650efedaf9b..a6873f55dbd 100644
--- a/accessible/src/html/nsHTMLSelectAccessible.cpp
+++ b/accessible/src/html/nsHTMLSelectAccessible.cpp
@@ -408,7 +408,7 @@ nsHTMLSelectListAccessible::CacheOptSiblings(nsIAccessibilityService *aAccServic
for (PRUint32 count = 0; count < numChildren; count ++) {
nsIContent *childContent = aParentContent->GetChildAt(count);
- if (!childContent->IsNodeOfType(nsINode::eHTML)) {
+ if (!childContent->IsHTML()) {
continue;
}
nsCOMPtr tag = childContent->Tag();
@@ -835,7 +835,7 @@ nsresult nsHTMLSelectOptionAccessible::GetFocusedOptionNode(nsIDOMNode *aListNod
void nsHTMLSelectOptionAccessible::SelectionChangedIfOption(nsIContent *aPossibleOption)
{
if (!aPossibleOption || aPossibleOption->Tag() != nsAccessibilityAtoms::option ||
- !aPossibleOption->IsNodeOfType(nsINode::eHTML)) {
+ !aPossibleOption->IsHTML()) {
return;
}
diff --git a/accessible/src/html/nsHyperTextAccessible.cpp b/accessible/src/html/nsHyperTextAccessible.cpp
index 738f55b0d14..3eb42ef4728 100644
--- a/accessible/src/html/nsHyperTextAccessible.cpp
+++ b/accessible/src/html/nsHyperTextAccessible.cpp
@@ -633,7 +633,7 @@ nsresult nsHyperTextAccessible::DOMPointToHypertextOffset(nsIDOMNode* aNode, PRI
nsCOMPtr descendantAccessible;
if (findNode) {
nsCOMPtr findContent = do_QueryInterface(findNode);
- if (findContent->IsNodeOfType(nsINode::eHTML) &&
+ if (findContent->IsHTML() &&
findContent->NodeInfo()->Equals(nsAccessibilityAtoms::br)) {
nsIContent *parent = findContent->GetParent();
if (parent &&
diff --git a/accessible/src/msaa/nsWinUtils.cpp b/accessible/src/msaa/nsWinUtils.cpp
index 4109994fe66..1fe7626a8e9 100644
--- a/accessible/src/msaa/nsWinUtils.cpp
+++ b/accessible/src/msaa/nsWinUtils.cpp
@@ -51,11 +51,17 @@ nsWinUtils::ConvertToIA2Array(nsIArray *aGeckoArray, IUnknown ***aIA2Array,
*aIA2Array = NULL;
*aIA2ArrayLen = 0;
+ if (!aGeckoArray)
+ return S_FALSE;
+
PRUint32 length = 0;
nsresult rv = aGeckoArray->GetLength(&length);
if (NS_FAILED(rv))
return GetHRESULT(rv);
+ if (length == 0)
+ return S_FALSE;
+
*aIA2Array =
static_cast(nsMemory::Alloc((length) * sizeof(IUnknown*)));
if (!*aIA2Array)
diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
index 4901bc4b7f6..aba9b393771 100644
--- a/browser/app/Makefile.in
+++ b/browser/app/Makefile.in
@@ -86,13 +86,12 @@ include $(topsrcdir)/config/rules.mk
else
# Build a binary bootstrapping with XRE_main
-ifeq ($(USE_SHORT_LIBNAME), 1)
+ifneq (,$(filter OS2 WINCE WINNT,$(OS_ARCH)))
PROGRAM = $(MOZ_APP_NAME)$(BIN_SUFFIX)
else
PROGRAM = $(MOZ_APP_NAME)-bin$(BIN_SUFFIX)
endif
-
CPPSRCS = nsBrowserApp.cpp
LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
@@ -344,8 +343,10 @@ else
rm -f $(DIST)/$(APP_NAME).app/Contents/MacOS/$(PROGRAM)
rsync -aL $(PROGRAM) $(DIST)/$(APP_NAME).app/Contents/MacOS
endif
+ifndef MOZ_COCOA_PRINTING
mkdir -p $(DIST)/$(APP_NAME).app/Contents/Plug-Ins
rsync -a --copy-unsafe-links $(LIBXUL_DIST)/package/PrintPDE.plugin $(DIST)/$(APP_NAME).app/Contents/Plug-Ins
+endif
-cp -L $(DIST)/bin/mangle $(DIST)/bin/shlibsign $(DIST)/$(APP_NAME).app/Contents/$(APPFILES)
cp -RL $(DIST)/branding/firefox.icns $(DIST)/$(APP_NAME).app/Contents/Resources/firefox.icns
cp -RL $(DIST)/branding/document.icns $(DIST)/$(APP_NAME).app/Contents/Resources/document.icns
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
index 0eef9f75cf0..f7377bc135d 100644
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -568,8 +568,12 @@ pref("plugin.default_plugin_disabled", true);
// plugin finder service url
pref("pfs.datasource.url", "https://pfs.mozilla.org/plugins/PluginFinderService.php?mimetype=%PLUGIN_MIMETYPE%&appID=%APP_ID%&appVersion=%APP_VERSION%&clientOS=%CLIENT_OS%&chromeLocale=%CHROME_LOCALE%&appRelease=%APP_RELEASE%");
-// by default we show an infobar message when pages require plugins the user has not installed
+// by default we show an infobar message when pages require plugins the user has not installed, or are outdated
pref("plugins.hide_infobar_for_missing_plugin", false);
+pref("plugins.hide_infobar_for_outdated_plugin", false);
+
+pref("plugins.update.url", "https://www.mozilla.com/%LOCALE%/plugins/");
+pref("plugins.update.notifyUser", false);
#ifdef XP_WIN
pref("browser.preferences.instantApply", false);
diff --git a/browser/base/content/aboutSupport.xhtml b/browser/base/content/aboutSupport.xhtml
new file mode 100644
index 00000000000..47cc4cb3269
--- /dev/null
+++ b/browser/base/content/aboutSupport.xhtml
@@ -0,0 +1,452 @@
+
+
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is aboutSupport.xhtml.
+#
+# The Initial Developer of the Original Code is
+# Mozilla Corporation
+# Portions created by the Initial Developer are Copyright (C) 2009
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+# Curtis Bartley
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+ %htmlDTD;
+ %globalDTD;
+ %brandDTD;
+ %aboutSupportDTD;
+]>
+
+
+
+ &aboutSupport.pageTitle;
+
+
+
+
+
+
+
+
+
+