author | Mark Capella <markcapella@twcny.rr.com> |
Thu, 05 Apr 2012 23:27:37 +0900 | |
changeset 94391 | 179d4fadc70a056a8eed8b34d5127b586c148bff |
parent 94385 | d19b20df7e70b3488cc0444a030dec9d89d2dd92 |
child 94392 | b18609e4bc570b9839333fc18a05b1a2eb431714 |
push id | 886 |
push user | lsblakk@mozilla.com |
push date | Mon, 04 Jun 2012 19:57:52 +0000 |
treeherder | mozilla-beta@bbd8d5efd6d1 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | surkov, tbsaunde |
bugs | 739889 |
milestone | 14.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/accessible/build/Makefile.in +++ b/accessible/build/Makefile.in @@ -53,16 +53,17 @@ GRE_MODULE = 1 LIBXUL_LIBRARY = 1 CPPSRCS = nsAccessibilityFactory.cpp LOCAL_INCLUDES = -I$(srcdir)/../src SHARED_LIBRARY_LIBS = \ ../src/base/$(LIB_PREFIX)accessibility_base_s.$(LIB_SUFFIX) \ + ../src/generic/$(LIB_PREFIX)accessibility_generic_s.$(LIB_SUFFIX) \ ../src/html/$(LIB_PREFIX)accessibility_html_s.$(LIB_SUFFIX) \ ../src/xpcom/$(LIB_PREFIX)accessibility_xpcom_s.$(LIB_SUFFIX) \ ../src/$(LIB_PREFIX)accessibility_toolkit_s.$(LIB_SUFFIX) \ ../src/xforms/$(LIB_PREFIX)accessibility_xforms_s.$(LIB_SUFFIX) \ $(NULL) ifdef MOZ_XUL SHARED_LIBRARY_LIBS += ../src/xul/$(LIB_PREFIX)accessibility_xul_s.$(LIB_SUFFIX)
--- a/accessible/src/Makefile.in +++ b/accessible/src/Makefile.in @@ -56,16 +56,17 @@ PLATFORM_DIR += other endif endif endif DIRS += $(PLATFORM_DIR) DIRS += \ base \ + generic \ html \ xpcom \ xforms \ $(null) ifdef MOZ_XUL DIRS += xul endif
--- a/accessible/src/base/Makefile.in +++ b/accessible/src/base/Makefile.in @@ -55,17 +55,16 @@ CPPSRCS = \ filters.cpp \ FocusManager.cpp \ NotificationController.cpp \ nsAccDocManager.cpp \ nsAccessNode.cpp \ nsARIAGridAccessible.cpp \ nsARIAMap.cpp \ nsDocAccessible.cpp \ - nsOuterDocAccessible.cpp \ nsCoreUtils.cpp \ nsAccUtils.cpp \ nsAccessibilityService.cpp \ nsAccessible.cpp \ nsAccessiblePivot.cpp \ nsAccTreeWalker.cpp \ nsBaseWidgetAccessible.cpp \ nsEventShell.cpp \
--- a/accessible/src/base/nsAccDocManager.cpp +++ b/accessible/src/base/nsAccDocManager.cpp @@ -36,17 +36,16 @@ * * ***** END LICENSE BLOCK ***** */ #include "nsAccDocManager.h" #include "nsAccessibilityService.h" #include "nsAccUtils.h" #include "nsApplicationAccessible.h" -#include "nsOuterDocAccessible.h" #include "nsRootAccessibleWrap.h" #include "States.h" #include "nsCURILoader.h" #include "nsDocShellLoadTypes.h" #include "nsIChannel.h" #include "nsIContentViewer.h" #include "nsIDOMDocument.h"
--- a/accessible/src/base/nsAccessibilityService.cpp +++ b/accessible/src/base/nsAccessibilityService.cpp @@ -74,17 +74,16 @@ #include "nsIHTMLDocument.h" #include "nsImageFrame.h" #include "nsILink.h" #include "nsIObserverService.h" #include "nsLayoutUtils.h" #include "nsNPAPIPluginInstance.h" #include "nsISupportsUtils.h" #include "nsObjectFrame.h" -#include "nsOuterDocAccessible.h" #include "nsRootAccessibleWrap.h" #include "nsTextFragment.h" #include "mozilla/Services.h" #include "nsEventStates.h" #ifdef MOZ_XUL #include "nsXULAlertAccessible.h" #include "nsXULColorPickerAccessible.h" @@ -105,16 +104,17 @@ // For embedding plugin accessibles #ifdef MOZ_ACCESSIBILITY_ATK #include "AtkSocketAccessible.h" #endif #include "nsXFormsFormControlsAccessible.h" #include "nsXFormsWidgetsAccessible.h" +#include "OuterDocAccessible.h" #include "mozilla/FunctionTimer.h" #include "mozilla/dom/Element.h" using namespace mozilla; using namespace mozilla::a11y; //////////////////////////////////////////////////////////////////////////////// @@ -205,19 +205,19 @@ nsAccessibilityService::GetRootDocumentA } return nsnull; } already_AddRefed<nsAccessible> nsAccessibilityService::CreateOuterDocAccessible(nsIContent* aContent, nsIPresShell* aPresShell) { - nsAccessible* accessible = - new nsOuterDocAccessible(aContent, - nsAccUtils::GetDocAccessibleFor(aPresShell)); + nsAccessible* accessible = + new OuterDocAccessible(aContent, + nsAccUtils::GetDocAccessibleFor(aPresShell)); NS_ADDREF(accessible); return accessible; } already_AddRefed<nsAccessible> nsAccessibilityService::CreateHTMLButtonAccessible(nsIContent* aContent, nsIPresShell* aPresShell) { @@ -1351,17 +1351,17 @@ nsAccessibilityService::CreateAccessible return nsnull; PRInt32 type; nsresult rv = accessibleProvider->GetAccessibleType(&type); if (NS_FAILED(rv)) return nsnull; if (type == nsIAccessibleProvider::OuterDoc) { - nsAccessible* accessible = new nsOuterDocAccessible(aContent, aDoc); + nsAccessible* accessible = new OuterDocAccessible(aContent, aDoc); NS_IF_ADDREF(accessible); return accessible; } nsAccessible* accessible = nsnull; switch (type) { #ifdef MOZ_XUL
--- a/accessible/src/base/nsAccessible.cpp +++ b/accessible/src/base/nsAccessible.cpp @@ -816,17 +816,17 @@ nsAccessible::ChildAtPoint(PRInt32 aX, P if (!accessible) return fallbackAnswer; if (accessible == this) { // Manually walk through accessible children and see if the are within this // point. Skip offscreen or invisible accessibles. This takes care of cases // where layout won't walk into things for us, such as image map areas and // sub documents (XXX: subdocuments should be handled by methods of - // nsOuterDocAccessibles). + // OuterDocAccessibles). PRInt32 childCount = GetChildCount(); for (PRInt32 childIdx = 0; childIdx < childCount; childIdx++) { nsAccessible *child = GetChildAt(childIdx); PRInt32 childX, childY, childWidth, childHeight; child->GetBounds(&childX, &childY, &childWidth, &childHeight); if (aX >= childX && aX < childX + childWidth && aY >= childY && aY < childY + childHeight &&
new file mode 100644 --- /dev/null +++ b/accessible/src/generic/Makefile.in @@ -0,0 +1,31 @@ +# 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/. + +DEPTH = ../../.. +topsrcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +include $(DEPTH)/config/autoconf.mk + +MODULE = accessibility +LIBRARY_NAME = accessibility_generic_s +LIBXUL_LIBRARY = 1 + + +CPPSRCS = \ + OuterDocAccessible.cpp \ + $(NULL) + +# we don't want the shared lib, but we want to force the creation of a static lib. +FORCE_STATIC_LIB = 1 + +include $(topsrcdir)/config/rules.mk + +LOCAL_INCLUDES = \ + -I$(srcdir)/../xpcom \ + -I$(srcdir)/../base \ + -I$(srcdir)/../../../layout/generic \ + -I$(srcdir)/../../../layout/xul/base/src \ + $(NULL)
rename from accessible/src/base/nsOuterDocAccessible.cpp rename to accessible/src/generic/OuterDocAccessible.cpp --- a/accessible/src/base/nsOuterDocAccessible.cpp +++ b/accessible/src/generic/OuterDocAccessible.cpp @@ -31,53 +31,58 @@ * 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 ***** */ -#include "nsOuterDocAccessible.h" +#include "OuterDocAccessible.h" #include "nsAccUtils.h" #include "nsDocAccessible.h" #include "Role.h" #include "States.h" +using namespace mozilla; using namespace mozilla::a11y; //////////////////////////////////////////////////////////////////////////////// -// nsOuterDocAccessible +// OuterDocAccessible //////////////////////////////////////////////////////////////////////////////// -nsOuterDocAccessible:: - nsOuterDocAccessible(nsIContent* aContent, nsDocAccessible* aDoc) : +OuterDocAccessible:: + OuterDocAccessible(nsIContent* aContent, nsDocAccessible* aDoc) : nsAccessibleWrap(aContent, aDoc) { } +OuterDocAccessible::~OuterDocAccessible() +{ +} + //////////////////////////////////////////////////////////////////////////////// // nsISupports -NS_IMPL_ISUPPORTS_INHERITED0(nsOuterDocAccessible, +NS_IMPL_ISUPPORTS_INHERITED0(OuterDocAccessible, nsAccessible) //////////////////////////////////////////////////////////////////////////////// // nsAccessible public (DON'T add methods here) role -nsOuterDocAccessible::NativeRole() +OuterDocAccessible::NativeRole() { return roles::INTERNAL_FRAME; } nsAccessible* -nsOuterDocAccessible::ChildAtPoint(PRInt32 aX, PRInt32 aY, - EWhichChildAtPoint aWhichChild) +OuterDocAccessible::ChildAtPoint(PRInt32 aX, PRInt32 aY, + EWhichChildAtPoint aWhichChild) { PRInt32 docX = 0, docY = 0, docWidth = 0, docHeight = 0; nsresult rv = GetBounds(&docX, &docY, &docWidth, &docHeight); NS_ENSURE_SUCCESS(rv, nsnull); if (aX < docX || aX >= docX + docWidth || aY < docY || aY >= docY + docHeight) return nsnull; @@ -87,103 +92,104 @@ nsOuterDocAccessible::ChildAtPoint(PRInt NS_ENSURE_TRUE(child, nsnull); if (aWhichChild == eDeepestChild) return child->ChildAtPoint(aX, aY, eDeepestChild); return child; } nsresult -nsOuterDocAccessible::GetAttributesInternal(nsIPersistentProperties *aAttributes) +OuterDocAccessible::GetAttributesInternal(nsIPersistentProperties* aAttributes) { nsAutoString tag; aAttributes->GetStringProperty(NS_LITERAL_CSTRING("tag"), tag); if (!tag.IsEmpty()) { // We're overriding the ARIA attributes on an sub document, but we don't want to // override the other attributes return NS_OK; } return nsAccessible::GetAttributesInternal(aAttributes); } //////////////////////////////////////////////////////////////////////////////// // nsIAccessible PRUint8 -nsOuterDocAccessible::ActionCount() +OuterDocAccessible::ActionCount() { // Internal frame, which is the doc's parent, should not have a click action. return 0; } NS_IMETHODIMP -nsOuterDocAccessible::GetActionName(PRUint8 aIndex, nsAString& aName) +OuterDocAccessible::GetActionName(PRUint8 aIndex, nsAString& aName) { aName.Truncate(); return NS_ERROR_INVALID_ARG; } NS_IMETHODIMP -nsOuterDocAccessible::GetActionDescription(PRUint8 aIndex, nsAString& aDescription) +OuterDocAccessible::GetActionDescription(PRUint8 aIndex, + nsAString& aDescription) { aDescription.Truncate(); return NS_ERROR_INVALID_ARG; } NS_IMETHODIMP -nsOuterDocAccessible::DoAction(PRUint8 aIndex) +OuterDocAccessible::DoAction(PRUint8 aIndex) { return NS_ERROR_INVALID_ARG; } //////////////////////////////////////////////////////////////////////////////// // nsAccessNode public void -nsOuterDocAccessible::Shutdown() +OuterDocAccessible::Shutdown() { // XXX: sometimes outerdoc accessible is shutdown because of layout style // change however the presshell of underlying document isn't destroyed and // the document doesn't get pagehide events. Shutdown underlying document if // any to avoid hanging document accessible. NS_LOG_ACCDOCDESTROY_MSG("A11y outerdoc shutdown") NS_LOG_ACCDOCDESTROY_ACCADDRESS("outerdoc", this) - nsAccessible *childAcc = mChildren.SafeElementAt(0, nsnull); + nsAccessible* childAcc = mChildren.SafeElementAt(0, nsnull); if (childAcc) { NS_LOG_ACCDOCDESTROY("outerdoc's child document shutdown", childAcc->GetDocumentNode()) childAcc->Shutdown(); } nsAccessibleWrap::Shutdown(); } //////////////////////////////////////////////////////////////////////////////// // nsAccessible public void -nsOuterDocAccessible::InvalidateChildren() +OuterDocAccessible::InvalidateChildren() { // Do not invalidate children because nsAccDocManager is responsible for // document accessible lifetime when DOM document is created or destroyed. If // DOM document isn't destroyed but its presshell is destroyed (for example, // when DOM node of outerdoc accessible is hidden), then outerdoc accessible // notifies nsAccDocManager about this. If presshell is created for existing // DOM document (for example when DOM node of outerdoc accessible is shown) // then allow nsAccDocManager to handle this case since the document // accessible is created and appended as a child when it's requested. SetChildrenFlag(eChildrenUninitialized); } bool -nsOuterDocAccessible::AppendChild(nsAccessible *aAccessible) +OuterDocAccessible::AppendChild(nsAccessible* aAccessible) { // We keep showing the old document for a bit after creating the new one, // and while building the new DOM and frame tree. That's done on purpose // to avoid weird flashes of default background color. // The old viewer will be destroyed after the new one is created. // For a11y, it should be safe to shut down the old document now. if (mChildren.Length()) mChildren[0]->Shutdown(); @@ -194,19 +200,19 @@ nsOuterDocAccessible::AppendChild(nsAcce NS_LOG_ACCDOCCREATE("append document to outerdoc", aAccessible->GetDocumentNode()) NS_LOG_ACCDOCCREATE_ACCADDRESS("outerdoc", this) return true; } bool -nsOuterDocAccessible::RemoveChild(nsAccessible *aAccessible) +OuterDocAccessible::RemoveChild(nsAccessible* aAccessible) { - nsAccessible *child = mChildren.SafeElementAt(0, nsnull); + nsAccessible* child = mChildren.SafeElementAt(0, nsnull); if (child != aAccessible) { NS_ERROR("Wrong child to remove!"); return false; } NS_LOG_ACCDOCDESTROY_FOR("remove document from outerdoc", child->GetDocumentNode(), child) NS_LOG_ACCDOCDESTROY_ACCADDRESS("outerdoc", this) @@ -219,17 +225,17 @@ nsOuterDocAccessible::RemoveChild(nsAcce return wasRemoved; } //////////////////////////////////////////////////////////////////////////////// // nsAccessible protected void -nsOuterDocAccessible::CacheChildren() +OuterDocAccessible::CacheChildren() { // Request document accessible for the content document to make sure it's // created. It will appended to outerdoc accessible children asynchronously. nsIDocument* outerDoc = mContent->GetCurrentDoc(); if (outerDoc) { nsIDocument* innerDoc = outerDoc->GetSubDocumentFor(mContent); if (innerDoc) GetAccService()->GetDocAccessible(innerDoc);
rename from accessible/src/base/nsOuterDocAccessible.h rename to accessible/src/generic/OuterDocAccessible.h --- a/accessible/src/base/nsOuterDocAccessible.h +++ b/accessible/src/generic/OuterDocAccessible.h @@ -31,34 +31,38 @@ * 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 ***** */ -#ifndef _nsOuterDocAccessible_H_ -#define _nsOuterDocAccessible_H_ +#ifndef MOZILLA_A11Y_OUTERDOCACCESSIBLE_H_ +#define MOZILLA_A11Y_OUTERDOCACCESSIBLE_H_ #include "nsAccessibleWrap.h" +namespace mozilla { +namespace a11y { + /** * Used for <browser>, <frame>, <iframe>, <page> or editor> elements. * - * In these variable names, "outer" relates to the nsOuterDocAccessible as + * In these variable names, "outer" relates to the OuterDocAccessible as * opposed to the nsDocAccessibleWrap which is "inner". The outer node is * a something like tags listed above, whereas the inner node corresponds to * the inner document root. */ -class nsOuterDocAccessible : public nsAccessibleWrap +class OuterDocAccessible : public nsAccessibleWrap { public: - nsOuterDocAccessible(nsIContent* aContent, nsDocAccessible* aDoc); + OuterDocAccessible(nsIContent* aContent, nsDocAccessible* aDoc); + virtual ~OuterDocAccessible(); NS_DECL_ISUPPORTS_INHERITED // nsIAccessible NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName); NS_IMETHOD GetActionDescription(PRUint8 aIndex, nsAString& aDescription); NS_IMETHOD DoAction(PRUint8 aIndex); @@ -78,9 +82,12 @@ public: // ActionAccessible virtual PRUint8 ActionCount(); protected: // nsAccessible virtual void CacheChildren(); }; +} // namespace a11y +} // namespace mozilla + #endif
--- a/accessible/tests/mochitest/Makefile.in +++ b/accessible/tests/mochitest/Makefile.in @@ -96,17 +96,17 @@ include $(topsrcdir)/config/rules.mk test_aria_role_equation.html \ test_aria_roles.html \ test_aria_roles.xul \ test_aria_token_attrs.html \ test_bug420863.html \ test_descr.html \ test_nsIAccessibleDocument.html \ test_nsIAccessibleImage.html \ - test_nsOuterDocAccessible.html \ + test_OuterDocAccessible.html \ test_role_nsHyperTextAcc.html \ test_textboxes.html \ test_textboxes.xul \ testTextboxes.js \ text.js \ treeview.css \ treeview.js \ $(NULL)