author | Eitan Isaacson <eitan@monotonous.org> |
Fri, 17 May 2013 19:10:29 -0700 | |
changeset 143833 | 5e792395df360e121d5ab4bf3e2612e694609f98 |
parent 143832 | fb4696685200f088726bc0de0c0ca5db71fe9523 |
child 143834 | 9178f40ffa6395e6663b512529a6194df6bbcd0f |
push id | 2697 |
push user | bbajaj@mozilla.com |
push date | Mon, 05 Aug 2013 18:49:53 +0000 |
treeherder | mozilla-beta@dfec938c7b63 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | tbsaunde, surkov |
bugs | 872338 |
milestone | 24.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/CLOBBER +++ b/CLOBBER @@ -12,12 +12,12 @@ # O O # | | # O <-- Clobber O <-- Clobber # # Note: The description below will be part of the error message shown to users. # # Modifying this file will now automatically clobber the buildbot machines \o/ # -Bug 848530 - Added a dependency file for moz.build traversal. +Bug 872338 - Needs a clobber at least on Windows due to bug 873809 Alternative to clobber is to run ./config.status from the objdir and to touch the CLOBBER file in the objdir.
--- a/accessible/public/moz.build +++ b/accessible/public/moz.build @@ -6,17 +6,16 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows': DIRS += ['msaa', 'ia2'] XPIDL_SOURCES += [ 'nsIAccessible.idl', 'nsIAccessibleApplication.idl', 'nsIAccessibleCaretMoveEvent.idl', - 'nsIAccessibleCursorable.idl', 'nsIAccessibleDocument.idl', 'nsIAccessibleEditableText.idl', 'nsIAccessibleEvent.idl', 'nsIAccessibleHideEvent.idl', 'nsIAccessibleHyperLink.idl', 'nsIAccessibleHyperText.idl', 'nsIAccessibleImage.idl', 'nsIAccessiblePivot.idl',
deleted file mode 100644 --- a/accessible/public/nsIAccessibleCursorable.idl +++ /dev/null @@ -1,26 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set ts=2 et sw=2 tw=80: */ -/* 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/. */ - -#include "nsISupports.idl" - -interface nsIAccessiblePivot; - -/** - * An interface implemented by an accessible object that has an associated - * virtual cursor. Typically, a top-level application or content document. - * A virtual cursor is an implementation of nsIAccessiblePivot that provides an - * exclusive spot in the cursorable's subtree, this could be used to create a - * pseudo-focus or caret browsing experience that is centered around the - * accessibility API. - */ -[scriptable, uuid(5452dea5-d235-496f-8757-3ca016ff49ff)] -interface nsIAccessibleCursorable : nsISupports -{ - /** - * The virtual cursor pivot this object manages. - */ - readonly attribute nsIAccessiblePivot virtualCursor; -};
--- a/accessible/public/nsIAccessibleDocument.idl +++ b/accessible/public/nsIAccessibleDocument.idl @@ -1,32 +1,33 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /* 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/. */ #include "nsISupports.idl" interface nsIAccessible; +interface nsIAccessiblePivot; interface nsIDOMDocument; interface nsIDOMNode; interface nsIDOMWindow; /** * An interface for in-process accessibility clients * that wish to retrieve information about a document. * When accessibility is turned on in Gecko, * there is an nsIAccessibleDocument for each document * whether it is XUL, HTML or whatever. * You can QueryInterface to nsIAccessibleDocument from the nsIAccessible for * the root node of a document. You can also get one from * nsIAccessible::GetAccessibleDocument() or * nsIAccessibleEvent::GetAccessibleDocument() */ -[scriptable, uuid(451242bd-8a0c-4198-ae88-c053609a4e5d)] +[scriptable, uuid(fe5b3886-2b6a-491a-80cd-a3e6342c451d)] interface nsIAccessibleDocument : nsISupports { /** * The URL of the document */ readonly attribute AString URL; /** @@ -71,12 +72,17 @@ interface nsIAccessibleDocument : nsISup readonly attribute nsIAccessibleDocument parentDocument; /** * Return the count of child document accessibles. */ readonly attribute unsigned long childDocumentCount; /** + * The virtual cursor pivot this document manages. + */ + readonly attribute nsIAccessiblePivot virtualCursor; + + /** * Return the child document accessible at the given index. */ nsIAccessibleDocument getChildDocumentAt(in unsigned long index); };
--- a/accessible/src/generic/DocAccessible.cpp +++ b/accessible/src/generic/DocAccessible.cpp @@ -125,18 +125,16 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_END NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(DocAccessible) NS_INTERFACE_MAP_ENTRY(nsIAccessibleDocument) NS_INTERFACE_MAP_ENTRY(nsIDocumentObserver) NS_INTERFACE_MAP_ENTRY(nsIMutationObserver) NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference) NS_INTERFACE_MAP_ENTRY(nsIObserver) NS_INTERFACE_MAP_ENTRY(nsIAccessiblePivotObserver) NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIAccessibleDocument) - NS_INTERFACE_MAP_ENTRY_CONDITIONAL(nsIAccessibleCursorable, - (mDocFlags & eCursorable)) foundInterface = 0; nsresult status; if (!foundInterface) { // HTML document accessible must inherit from HyperTextAccessible to get // support text interfaces. XUL document accessible doesn't need this. // However at some point we may push <body> to implement the interfaces and // return DocAccessible to inherit from AccessibleWrap. @@ -472,29 +470,25 @@ DocAccessible::GetChildDocumentAt(uint32 if (IsDefunct()) return NS_OK; NS_IF_ADDREF(*aDocument = GetChildDocumentAt(aIndex)); return *aDocument ? NS_OK : NS_ERROR_INVALID_ARG; } -// nsIAccessibleVirtualCursor method NS_IMETHODIMP DocAccessible::GetVirtualCursor(nsIAccessiblePivot** aVirtualCursor) { NS_ENSURE_ARG_POINTER(aVirtualCursor); *aVirtualCursor = nullptr; if (IsDefunct()) return NS_ERROR_FAILURE; - if (!(mDocFlags & eCursorable)) - return NS_OK; - if (!mVirtualCursor) { mVirtualCursor = new nsAccessiblePivot(this); mVirtualCursor->AddObserver(this); } NS_ADDREF(*aVirtualCursor = mVirtualCursor); return NS_OK; } @@ -1460,20 +1454,16 @@ DocAccessible::NotifyOfLoading(bool aIsR } void DocAccessible::DoInitialUpdate() { if (nsCoreUtils::IsTabDocument(mDocumentNode)) mDocFlags |= eTabDocument; - // We provide a virtual cursor if this is a root doc or if it's a tab doc. - if (!mDocumentNode->GetParentDocument() || (mDocFlags & eTabDocument)) - mDocFlags |= eCursorable; - mLoadState |= eTreeConstructed; // The content element may be changed before the initial update and then we // miss the notification (since content tree change notifications are ignored // prior to initial update). Make sure the content element is valid. nsIContent* contentElm = nsCoreUtils::GetRoleContent(mDocumentNode); if (mContent != contentElm) { mContent = contentElm;
--- a/accessible/src/generic/DocAccessible.h +++ b/accessible/src/generic/DocAccessible.h @@ -1,17 +1,16 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* 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/. */ #ifndef mozilla_a11y_DocAccessible_h__ #define mozilla_a11y_DocAccessible_h__ -#include "nsIAccessibleCursorable.h" #include "nsIAccessibleDocument.h" #include "nsIAccessiblePivot.h" #include "AccEvent.h" #include "HyperTextAccessibleWrap.h" #include "nsClassHashtable.h" #include "nsDataHashtable.h" @@ -40,28 +39,25 @@ template<class Class, class Arg> class TNotification; class DocAccessible : public HyperTextAccessibleWrap, public nsIAccessibleDocument, public nsIDocumentObserver, public nsIObserver, public nsIScrollPositionListener, public nsSupportsWeakReference, - public nsIAccessibleCursorable, public nsIAccessiblePivotObserver { NS_DECL_ISUPPORTS_INHERITED NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(DocAccessible, Accessible) NS_DECL_NSIACCESSIBLEDOCUMENT NS_DECL_NSIOBSERVER - NS_DECL_NSIACCESSIBLECURSORABLE - NS_DECL_NSIACCESSIBLEPIVOTOBSERVER public: DocAccessible(nsIDocument* aDocument, nsIContent* aRootContent, nsIPresShell* aPresShell); virtual ~DocAccessible(); @@ -487,21 +483,18 @@ protected: /** * State and property flags, kept by mDocFlags. */ enum { // Whether scroll listeners were added. eScrollInitialized = 1 << 0, - // Whether we support nsIAccessibleCursorable. - eCursorable = 1 << 1, - // Whether the document is a tab document. - eTabDocument = 1 << 2 + eTabDocument = 1 << 1 }; /** * Cache of accessibles within this document accessible. */ AccessibleHashtable mAccessibleCache; nsDataHashtable<nsPtrHashKey<const nsINode>, Accessible*> mNodeToAccessibleMap; @@ -534,17 +527,17 @@ protected: * Keep the ARIA attribute old value that is initialized by * AttributeWillChange and used by AttributeChanged notifications. */ nsIAtom* mARIAAttrOldValue; nsTArray<nsRefPtr<DocAccessible> > mChildDocuments; /** - * The virtual cursor of the document when it supports nsIAccessibleCursorable. + * The virtual cursor of the document. */ nsRefPtr<nsAccessiblePivot> mVirtualCursor; /** * A storage class for pairing content with one of its relation attributes. */ class AttrRelProvider {