Bug 672504 - Don't keep pointer to weak presshell in accessible. r=surkov

--HG--
extra : rebase_source : 5d06fcee1b05ff43b70efe07a7082850a091a31e
This commit is contained in:
Hub Figuière 2012-01-31 09:56:56 -08:00
parent 4d02e1236e
commit ff638852f5
102 changed files with 805 additions and 797 deletions

View File

@ -162,9 +162,9 @@ mai_atk_socket_get_extents(AtkComponent* aComponent,
} }
AtkSocketAccessible::AtkSocketAccessible(nsIContent* aContent, AtkSocketAccessible::AtkSocketAccessible(nsIContent* aContent,
nsIWeakReference* aShell, nsDocAccessible* aDoc,
const nsCString& aPlugId) : const nsCString& aPlugId) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
mAtkObject = mai_atk_socket_new(this); mAtkObject = mai_atk_socket_new(this);
if (!mAtkObject) if (!mAtkObject)

View File

@ -72,7 +72,7 @@ public:
*/ */
static bool gCanEmbed; static bool gCanEmbed;
AtkSocketAccessible(nsIContent* aContent, nsIWeakReference* aShell, AtkSocketAccessible(nsIContent* aContent, nsDocAccessible* aDoc,
const nsCString& aPlugId); const nsCString& aPlugId);
// nsAccessNode // nsAccessNode

View File

@ -55,8 +55,8 @@
//----------------------------------------------------- //-----------------------------------------------------
nsAccessNodeWrap:: nsAccessNodeWrap::
nsAccessNodeWrap(nsIContent *aContent, nsIWeakReference *aShell) : nsAccessNodeWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessNode(aContent, aShell) nsAccessNode(aContent, aDoc)
{ {
} }

View File

@ -49,12 +49,11 @@
class nsAccessNodeWrap : public nsAccessNode class nsAccessNodeWrap : public nsAccessNode
{ {
public: // construction, destruction public: // construction, destruction
nsAccessNodeWrap(nsIContent *aContent, nsIWeakReference *aShell); nsAccessNodeWrap(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsAccessNodeWrap(); virtual ~nsAccessNodeWrap();
static void InitAccessibility();
static void ShutdownAccessibility();
static void InitAccessibility();
static void ShutdownAccessibility();
}; };
#endif #endif

View File

@ -281,8 +281,8 @@ PRInt32 nsAccessibleWrap::mAccWrapDeleted = 0;
#endif #endif
nsAccessibleWrap:: nsAccessibleWrap::
nsAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell) : nsAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessible(aContent, aShell), mAtkObject(nsnull) nsAccessible(aContent, aDoc), mAtkObject(nsnull)
{ {
#ifdef MAI_LOGGING #ifdef MAI_LOGGING
++mAccWrapCreated; ++mAccWrapCreated;
@ -362,7 +362,7 @@ NS_IMETHODIMP nsAccessibleWrap::GetNativeInterface(void **aOutAccessible)
*aOutAccessible = nsnull; *aOutAccessible = nsnull;
if (!mAtkObject) { if (!mAtkObject) {
if (!mWeakShell || !nsAccUtils::IsEmbeddedObject(this)) { if (IsDefunct() || !nsAccUtils::IsEmbeddedObject(this)) {
// We don't create ATK objects for node which has been shutdown, or // We don't create ATK objects for node which has been shutdown, or
// nsIAccessible plain text leaves // nsIAccessible plain text leaves
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;

View File

@ -84,7 +84,7 @@ class MaiHyperlink;
class nsAccessibleWrap: public nsAccessible class nsAccessibleWrap: public nsAccessible
{ {
public: public:
nsAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell); nsAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsAccessibleWrap(); virtual ~nsAccessibleWrap();
void ShutdownAtkObject(); void ShutdownAtkObject();

View File

@ -671,7 +671,7 @@ NotificationController::CreateTextChangeEventFor(AccMutationEvent* aEvent)
{ {
nsAccessible* container = nsAccessible* container =
GetAccService()->GetContainerAccessible(aEvent->mNode, GetAccService()->GetContainerAccessible(aEvent->mNode,
aEvent->mAccessible->GetWeakShell()); aEvent->GetDocAccessible()->PresShell());
if (!container) if (!container)
return; return;

View File

@ -57,8 +57,8 @@ using namespace mozilla::a11y;
// Constructor // Constructor
nsARIAGridAccessible:: nsARIAGridAccessible::
nsARIAGridAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsARIAGridAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
} }
@ -932,8 +932,8 @@ nsARIAGridAccessible::GetSelectedColumnsArray(PRUint32 *acolumnCount,
// Constructor // Constructor
nsARIAGridCellAccessible:: nsARIAGridCellAccessible::
nsARIAGridCellAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsARIAGridCellAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }

View File

@ -50,7 +50,7 @@ class nsARIAGridAccessible : public nsAccessibleWrap,
public nsIAccessibleTable public nsIAccessibleTable
{ {
public: public:
nsARIAGridAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsARIAGridAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsISupports // nsISupports
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
@ -110,7 +110,7 @@ class nsARIAGridCellAccessible : public nsHyperTextAccessibleWrap,
public nsIAccessibleTableCell public nsIAccessibleTableCell
{ {
public: public:
nsARIAGridCellAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsARIAGridCellAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsISupports // nsISupports
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED

View File

@ -425,11 +425,11 @@ nsAccUtils::GetTextAccessibleFromSelection(nsISelection* aSelection)
nsCOMPtr<nsINode> focusNode(do_QueryInterface(focusDOMNode)); nsCOMPtr<nsINode> focusNode(do_QueryInterface(focusDOMNode));
nsCOMPtr<nsINode> resultNode = nsCOMPtr<nsINode> resultNode =
nsCoreUtils::GetDOMNodeFromDOMPoint(focusNode, focusOffset); nsCoreUtils::GetDOMNodeFromDOMPoint(focusNode, focusOffset);
nsCOMPtr<nsIWeakReference> weakShell(nsCoreUtils::GetWeakShellFor(resultNode)); nsIPresShell* presShell(nsCoreUtils::GetPresShellFor(resultNode));
// Get text accessible containing the result node. // Get text accessible containing the result node.
nsAccessible* accessible = nsAccessible* accessible =
GetAccService()->GetAccessibleOrContainer(resultNode, weakShell); GetAccService()->GetAccessibleOrContainer(resultNode, presShell);
if (!accessible) { if (!accessible) {
NS_NOTREACHED("No nsIAccessibleText for selection change event!"); NS_NOTREACHED("No nsIAccessibleText for selection change event!");
return nsnull; return nsnull;
@ -525,9 +525,8 @@ nsAccUtils::GetScreenCoordsForWindow(nsAccessNode *aAccessNode)
nsIntPoint nsIntPoint
nsAccUtils::GetScreenCoordsForParent(nsAccessNode *aAccessNode) nsAccUtils::GetScreenCoordsForParent(nsAccessNode *aAccessNode)
{ {
nsAccessible *parent = nsDocAccessible* document = aAccessNode->GetDocAccessible();
GetAccService()->GetContainerAccessible(aAccessNode->GetNode(), nsAccessible* parent = document->GetContainerAccessible(aAccessNode->GetNode());
aAccessNode->GetWeakShell());
if (!parent) if (!parent)
return nsIntPoint(0, 0); return nsIntPoint(0, 0);

View File

@ -157,11 +157,10 @@ public:
/** /**
* Return document accessible for the given presshell. * Return document accessible for the given presshell.
*/ */
static nsDocAccessible *GetDocAccessibleFor(nsIWeakReference *aWeakShell) static nsDocAccessible* GetDocAccessibleFor(const nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIPresShell> presShell(do_QueryReferent(aWeakShell)); return aPresShell ?
return presShell ? GetAccService()->GetDocAccessible(aPresShell->GetDocument()) : nsnull;
GetAccService()->GetDocAccessible(presShell->GetDocument()) : nsnull;
} }
/** /**

View File

@ -101,8 +101,8 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE_WITH_DESTROY(nsAccessNode, LastRelease())
// nsAccessNode construction/desctruction // nsAccessNode construction/desctruction
nsAccessNode:: nsAccessNode::
nsAccessNode(nsIContent *aContent, nsIWeakReference *aShell) : nsAccessNode(nsIContent* aContent, nsDocAccessible* aDoc) :
mContent(aContent), mWeakShell(aShell) mContent(aContent), mDoc(aDoc)
{ {
#ifdef DEBUG_A11Y #ifdef DEBUG_A11Y
mIsInitialized = false; mIsInitialized = false;
@ -111,15 +111,15 @@ nsAccessNode::
nsAccessNode::~nsAccessNode() nsAccessNode::~nsAccessNode()
{ {
NS_ASSERTION(!mWeakShell, "LastRelease was never called!?!"); NS_ASSERTION(!mDoc, "LastRelease was never called!?!");
} }
void nsAccessNode::LastRelease() void nsAccessNode::LastRelease()
{ {
// First cleanup if needed... // First cleanup if needed...
if (mWeakShell) { if (mDoc) {
Shutdown(); Shutdown();
NS_ASSERTION(!mWeakShell, "A Shutdown() impl forgot to call its parent's Shutdown?"); NS_ASSERTION(!mDoc, "A Shutdown() impl forgot to call its parent's Shutdown?");
} }
// ... then die. // ... then die.
delete this; delete this;
@ -145,7 +145,7 @@ void
nsAccessNode::Shutdown() nsAccessNode::Shutdown()
{ {
mContent = nsnull; mContent = nsnull;
mWeakShell = nsnull; mDoc = nsnull;
} }
nsApplicationAccessible* nsApplicationAccessible*
@ -227,31 +227,15 @@ void nsAccessNode::ShutdownXPAccessibility()
NotifyA11yInitOrShutdown(false); NotifyA11yInitOrShutdown(false);
} }
already_AddRefed<nsIPresShell>
nsAccessNode::GetPresShell()
{
nsIPresShell* presShell = nsnull;
if (mWeakShell)
CallQueryReferent(mWeakShell.get(), &presShell);
return presShell;
}
// nsAccessNode protected // nsAccessNode protected
nsPresContext* nsAccessNode::GetPresContext() nsPresContext* nsAccessNode::GetPresContext()
{ {
nsCOMPtr<nsIPresShell> presShell(GetPresShell()); if (IsDefunct())
if (!presShell) {
return nsnull; return nsnull;
}
return presShell->GetPresContext();
}
nsDocAccessible * nsIPresShell* presShell(mDoc->PresShell());
nsAccessNode::GetDocAccessible() const
{ return presShell ? presShell->GetPresContext() : nsnull;
return mContent ?
GetAccService()->GetDocAccessible(mContent->OwnerDoc()) : nsnull;
} }
nsRootAccessible* nsRootAccessible*
@ -338,13 +322,13 @@ nsAccessNode::ScrollTo(PRUint32 aScrollType)
if (IsDefunct()) if (IsDefunct())
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
nsCOMPtr<nsIPresShell> shell(GetPresShell()); nsIPresShell* shell = mDoc->PresShell();
NS_ENSURE_TRUE(shell, NS_ERROR_FAILURE); NS_ENSURE_TRUE(shell, NS_ERROR_FAILURE);
nsIFrame *frame = GetFrame(); nsIFrame *frame = GetFrame();
NS_ENSURE_TRUE(frame, NS_ERROR_FAILURE); NS_ENSURE_TRUE(frame, NS_ERROR_FAILURE);
nsCOMPtr<nsIContent> content = frame->GetContent(); nsIContent* content = frame->GetContent();
NS_ENSURE_TRUE(content, NS_ERROR_FAILURE); NS_ENSURE_TRUE(content, NS_ERROR_FAILURE);
PRInt16 vPercent, hPercent; PRInt16 vPercent, hPercent;
@ -415,9 +399,7 @@ nsAccessNode::GetCurrentFocus()
{ {
// XXX: consider to use nsFocusManager directly, it allows us to avoid // XXX: consider to use nsFocusManager directly, it allows us to avoid
// unnecessary query interface calls. // unnecessary query interface calls.
nsCOMPtr<nsIPresShell> shell = GetPresShell(); nsIDocument* doc = GetDocumentNode();
NS_ENSURE_TRUE(shell, nsnull);
nsIDocument *doc = shell->GetDocument();
NS_ENSURE_TRUE(doc, nsnull); NS_ENSURE_TRUE(doc, nsnull);
nsIDOMWindow* win = doc->GetWindow(); nsIDOMWindow* win = doc->GetWindow();

View File

@ -80,7 +80,7 @@ class nsAccessNode: public nsIAccessNode
{ {
public: public:
nsAccessNode(nsIContent *aContent, nsIWeakReference *aShell); nsAccessNode(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsAccessNode(); virtual ~nsAccessNode();
NS_DECL_CYCLE_COLLECTING_ISUPPORTS NS_DECL_CYCLE_COLLECTING_ISUPPORTS
@ -100,7 +100,7 @@ public:
/** /**
* Return the document accessible for this access node. * Return the document accessible for this access node.
*/ */
nsDocAccessible *GetDocAccessible() const; nsDocAccessible* GetDocAccessible() const { return mDoc; }
/** /**
* Return the root document accessible for this accessnode. * Return the root document accessible for this accessnode.
@ -171,16 +171,6 @@ public:
return GetNode() && GetNode()->IsNodeOfType(nsINode::eDOCUMENT); return GetNode() && GetNode()->IsNodeOfType(nsINode::eDOCUMENT);
} }
/**
* Return the corresponding press shell for this accessible.
*/
already_AddRefed<nsIPresShell> GetPresShell();
/**
* Return presentation shell for the accessible.
*/
nsIWeakReference* GetWeakShell() const { return mWeakShell; }
/** /**
* Return the unique identifier of the accessible. * Return the unique identifier of the accessible.
*/ */
@ -201,7 +191,7 @@ protected:
void LastRelease(); void LastRelease();
nsCOMPtr<nsIContent> mContent; nsCOMPtr<nsIContent> mContent;
nsCOMPtr<nsIWeakReference> mWeakShell; nsDocAccessible* mDoc;
/** /**
* Notify global nsIObserver's that a11y is getting init'd or shutdown * Notify global nsIObserver's that a11y is getting init'd or shutdown

View File

@ -204,14 +204,15 @@ nsAccessibilityService::GetRootDocumentAccessible(nsIPresShell* aPresShell,
} }
return nsnull; return nsnull;
} }
already_AddRefed<nsAccessible> already_AddRefed<nsAccessible>
nsAccessibilityService::CreateOuterDocAccessible(nsIContent* aContent, nsAccessibilityService::CreateOuterDocAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsOuterDocAccessible(aContent, weakShell); new nsOuterDocAccessible(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -219,9 +220,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTML4ButtonAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTML4ButtonAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHTML4ButtonAccessible(aContent, weakShell); new nsHTML4ButtonAccessible(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -229,9 +231,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLButtonAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTMLButtonAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHTMLButtonAccessible(aContent, weakShell); new nsHTMLButtonAccessible(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -239,9 +242,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLLIAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTMLLIAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHTMLLIAccessible(aContent, weakShell); new nsHTMLLIAccessible(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -249,9 +253,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHyperTextAccessible(nsIContent* aContent, nsAccessibilityService::CreateHyperTextAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHyperTextAccessibleWrap(aContent, weakShell); new nsHyperTextAccessibleWrap(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -259,9 +264,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLCheckboxAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTMLCheckboxAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHTMLCheckboxAccessible(aContent, weakShell); new nsHTMLCheckboxAccessible(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -269,9 +275,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLComboboxAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTMLComboboxAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHTMLComboboxAccessible(aContent, weakShell); new nsHTMLComboboxAccessible(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -279,9 +286,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLCanvasAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTMLCanvasAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHTMLCanvasAccessible(aContent, weakShell); new nsHTMLCanvasAccessible(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -289,9 +297,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLFileInputAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTMLFileInputAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHTMLFileInputAccessible(aContent, weakShell); new nsHTMLFileInputAccessible(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -306,11 +315,13 @@ nsAccessibilityService::CreateHTMLImageAccessible(nsIContent* aContent,
mapElm = do_QueryInterface(document->FindImageMap(mapElmName)); mapElm = do_QueryInterface(document->FindImageMap(mapElmName));
} }
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell));
nsAccessible* accessible = mapElm ? nsAccessible* accessible = mapElm ?
new nsHTMLImageMapAccessible(aContent, weakShell, mapElm) : new nsHTMLImageMapAccessible(aContent,
new nsHTMLImageAccessibleWrap(aContent, weakShell); nsAccUtils::GetDocAccessibleFor(aPresShell),
NS_IF_ADDREF(accessible); mapElm) :
new nsHTMLImageAccessibleWrap(aContent,
nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -318,9 +329,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLGroupboxAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTMLGroupboxAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHTMLGroupboxAccessible(aContent, weakShell); new nsHTMLGroupboxAccessible(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -328,9 +340,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLListboxAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTMLListboxAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHTMLSelectListAccessible(aContent, weakShell); new nsHTMLSelectListAccessible(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -338,10 +351,11 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLMediaAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTMLMediaAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsEnumRoleAccessible(aContent, weakShell, new nsEnumRoleAccessible(aContent,
roles::GROUPING); nsAccUtils::GetDocAccessibleFor(aPresShell),
NS_IF_ADDREF(accessible); roles::GROUPING);
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -361,7 +375,6 @@ nsAccessibilityService::CreateHTMLObjectFrameAccessible(nsObjectFrame* aFrame,
if (aFrame->GetRect().IsEmpty()) if (aFrame->GetRect().IsEmpty())
return nsnull; return nsnull;
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell));
// 1) for object elements containing either HTML or TXT documents // 1) for object elements containing either HTML or TXT documents
nsCOMPtr<nsIDOMHTMLObjectElement> obj(do_QueryInterface(aContent)); nsCOMPtr<nsIDOMHTMLObjectElement> obj(do_QueryInterface(aContent));
@ -382,10 +395,11 @@ nsAccessibilityService::CreateHTMLObjectFrameAccessible(nsObjectFrame* aFrame,
HWND pluginPort = nsnull; HWND pluginPort = nsnull;
aFrame->GetPluginPort(&pluginPort); aFrame->GetPluginPort(&pluginPort);
nsAccessible* accessible = new nsHTMLWin32ObjectOwnerAccessible(aContent, nsAccessible* accessible =
weakShell, new nsHTMLWin32ObjectOwnerAccessible(aContent,
pluginPort); nsAccUtils::GetDocAccessibleFor(aPresShell),
NS_IF_ADDREF(accessible); pluginPort);
NS_ADDREF(accessible);
return accessible; return accessible;
#elif MOZ_ACCESSIBILITY_ATK #elif MOZ_ACCESSIBILITY_ATK
@ -397,9 +411,11 @@ nsAccessibilityService::CreateHTMLObjectFrameAccessible(nsObjectFrame* aFrame,
NPPVpluginNativeAccessibleAtkPlugId, &plugId); NPPVpluginNativeAccessibleAtkPlugId, &plugId);
if (NS_SUCCEEDED(rv) && !plugId.IsEmpty()) { if (NS_SUCCEEDED(rv) && !plugId.IsEmpty()) {
AtkSocketAccessible* socketAccessible = AtkSocketAccessible* socketAccessible =
new AtkSocketAccessible(aContent, weakShell, plugId); new AtkSocketAccessible(aContent,
nsAccUtils::GetDocAccessibleFor(aPresShell),
plugId);
NS_IF_ADDREF(socketAccessible); NS_ADDREF(socketAccessible);
return socketAccessible; return socketAccessible;
} }
#endif #endif
@ -416,9 +432,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLRadioButtonAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTMLRadioButtonAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHTMLRadioButtonAccessible(aContent, weakShell); new nsHTMLRadioButtonAccessible(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -426,9 +443,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLTableAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTMLTableAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHTMLTableAccessibleWrap(aContent, weakShell); new nsHTMLTableAccessibleWrap(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -436,10 +454,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLTableCellAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTMLTableCellAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHTMLTableCellAccessibleWrap(aContent, new nsHTMLTableCellAccessibleWrap(aContent,
weakShell); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_IF_ADDREF(accessible); NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -447,9 +465,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLTextAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTMLTextAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHTMLTextAccessible(aContent, weakShell); new nsHTMLTextAccessible(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -457,9 +476,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLTextFieldAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTMLTextFieldAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHTMLTextFieldAccessible(aContent, weakShell); new nsHTMLTextFieldAccessible(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -467,9 +487,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLLabelAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTMLLabelAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHTMLLabelAccessible(aContent, weakShell); new nsHTMLLabelAccessible(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -477,9 +498,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLHRAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTMLHRAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHTMLHRAccessible(aContent, weakShell); new nsHTMLHRAccessible(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -487,9 +509,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLBRAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTMLBRAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHTMLBRAccessible(aContent, weakShell); new nsHTMLBRAccessible(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -497,9 +520,10 @@ already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLCaptionAccessible(nsIContent* aContent, nsAccessibilityService::CreateHTMLCaptionAccessible(nsIContent* aContent,
nsIPresShell* aPresShell) nsIPresShell* aPresShell)
{ {
nsCOMPtr<nsIWeakReference> weakShell(do_GetWeakReference(aPresShell)); nsAccessible* accessible =
nsAccessible* accessible = new nsHTMLCaptionAccessible(aContent, weakShell); new nsHTMLCaptionAccessible(aContent,
NS_IF_ADDREF(accessible); nsAccUtils::GetDocAccessibleFor(aPresShell));
NS_ADDREF(accessible);
return accessible; return accessible;
} }
@ -889,14 +913,12 @@ nsAccessibilityService::GetAccessible(nsINode* aNode)
} }
nsAccessible* nsAccessible*
nsAccessibilityService::GetAccessibleOrContainer(nsINode* aNode, nsAccessibilityService::GetAccessibleOrContainer(nsINode* aNode, nsIPresShell* aPresShell)
nsIWeakReference* aWeakShell)
{ {
if (!aNode) if (!aNode)
return nsnull; return nsnull;
// XXX: weak shell is ignored until multiple shell documents are supported. nsDocAccessible* document = nsAccUtils::GetDocAccessibleFor(aPresShell);
nsDocAccessible* document = GetDocAccessible(aNode->OwnerDoc());
return document ? document->GetAccessibleOrContainer(aNode) : nsnull; return document ? document->GetAccessibleOrContainer(aNode) : nsnull;
} }
@ -1039,7 +1061,7 @@ nsAccessibilityService::GetOrCreateAccessible(nsINode* aNode,
return nsnull; return nsnull;
} }
newAcc = new nsHyperTextAccessibleWrap(content, aWeakShell); newAcc = new nsHyperTextAccessibleWrap(content, docAcc);
if (docAcc->BindToDocument(newAcc, nsAccUtils::GetRoleMapEntry(aNode))) if (docAcc->BindToDocument(newAcc, nsAccUtils::GetRoleMapEntry(aNode)))
return newAcc; return newAcc;
return nsnull; return nsnull;
@ -1133,12 +1155,12 @@ nsAccessibilityService::GetOrCreateAccessible(nsINode* aNode,
if (roleMapEntry->role == roles::TABLE || if (roleMapEntry->role == roles::TABLE ||
roleMapEntry->role == roles::TREE_TABLE) { roleMapEntry->role == roles::TREE_TABLE) {
newAcc = new nsARIAGridAccessibleWrap(content, aWeakShell); newAcc = new nsARIAGridAccessibleWrap(content, docAcc);
} else if (roleMapEntry->role == roles::GRID_CELL || } else if (roleMapEntry->role == roles::GRID_CELL ||
roleMapEntry->role == roles::ROWHEADER || roleMapEntry->role == roles::ROWHEADER ||
roleMapEntry->role == roles::COLUMNHEADER) { roleMapEntry->role == roles::COLUMNHEADER) {
newAcc = new nsARIAGridCellAccessibleWrap(content, aWeakShell); newAcc = new nsARIAGridCellAccessibleWrap(content, docAcc);
} }
} }
} }
@ -1150,7 +1172,7 @@ nsAccessibilityService::GetOrCreateAccessible(nsINode* aNode,
// we do not call it if accessibles for table related content are // we do not call it if accessibles for table related content are
// prevented above. // prevented above.
newAcc = CreateHTMLAccessibleByMarkup(weakFrame.GetFrame(), content, newAcc = CreateHTMLAccessibleByMarkup(weakFrame.GetFrame(), content,
aWeakShell); docAcc);
if (!newAcc) { if (!newAcc) {
// Do not create accessible object subtrees for non-rendered table // Do not create accessible object subtrees for non-rendered table
@ -1182,24 +1204,24 @@ nsAccessibilityService::GetOrCreateAccessible(nsINode* aNode,
if (!newAcc) { if (!newAcc) {
// Elements may implement nsIAccessibleProvider via XBL. This allows them to // Elements may implement nsIAccessibleProvider via XBL. This allows them to
// say what kind of accessible to create. // say what kind of accessible to create.
newAcc = CreateAccessibleByType(content, aWeakShell); newAcc = CreateAccessibleByType(content, docAcc);
} }
if (!newAcc) { if (!newAcc) {
// Create generic accessibles for SVG and MathML nodes. // Create generic accessibles for SVG and MathML nodes.
if (content->IsSVG(nsGkAtoms::svg)) { if (content->IsSVG(nsGkAtoms::svg)) {
newAcc = new nsEnumRoleAccessible(content, aWeakShell, newAcc = new nsEnumRoleAccessible(content, docAcc,
roles::DIAGRAM); roles::DIAGRAM);
} }
else if (content->IsMathML(nsGkAtoms::math)) { else if (content->IsMathML(nsGkAtoms::math)) {
newAcc = new nsEnumRoleAccessible(content, aWeakShell, newAcc = new nsEnumRoleAccessible(content, docAcc,
roles::EQUATION); roles::EQUATION);
} }
} }
if (!newAcc) { if (!newAcc) {
newAcc = CreateAccessibleForDeckChild(weakFrame.GetFrame(), content, newAcc = CreateAccessibleForDeckChild(weakFrame.GetFrame(), content,
aWeakShell); docAcc);
} }
// If no accessible, see if we need to create a generic accessible because // If no accessible, see if we need to create a generic accessible because
@ -1216,11 +1238,11 @@ nsAccessibilityService::GetOrCreateAccessible(nsINode* aNode,
// other accessibles can point to it, or so that it can hold a state, etc. // other accessibles can point to it, or so that it can hold a state, etc.
if (isHTML) { if (isHTML) {
// Interesting HTML container which may have selectable text and/or embedded objects // Interesting HTML container which may have selectable text and/or embedded objects
newAcc = new nsHyperTextAccessibleWrap(content, aWeakShell); newAcc = new nsHyperTextAccessibleWrap(content, docAcc);
} }
else { // XUL, SVG, MathML etc. else { // XUL, SVG, MathML etc.
// Interesting generic non-HTML container // Interesting generic non-HTML container
newAcc = new nsAccessibleWrap(content, aWeakShell); newAcc = new nsAccessibleWrap(content, docAcc);
} }
} }
@ -1301,7 +1323,7 @@ nsAccessibilityService::HasUniversalAriaProperty(nsIContent *aContent)
already_AddRefed<nsAccessible> already_AddRefed<nsAccessible>
nsAccessibilityService::CreateAccessibleByType(nsIContent* aContent, nsAccessibilityService::CreateAccessibleByType(nsIContent* aContent,
nsIWeakReference* aWeakShell) nsDocAccessible* aDoc)
{ {
nsCOMPtr<nsIAccessibleProvider> accessibleProvider(do_QueryInterface(aContent)); nsCOMPtr<nsIAccessibleProvider> accessibleProvider(do_QueryInterface(aContent));
if (!accessibleProvider) if (!accessibleProvider)
@ -1313,7 +1335,7 @@ nsAccessibilityService::CreateAccessibleByType(nsIContent* aContent,
return nsnull; return nsnull;
if (type == nsIAccessibleProvider::OuterDoc) { if (type == nsIAccessibleProvider::OuterDoc) {
nsAccessible* accessible = new nsOuterDocAccessible(aContent, aWeakShell); nsAccessible* accessible = new nsOuterDocAccessible(aContent, aDoc);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
} }
@ -1327,35 +1349,35 @@ nsAccessibilityService::CreateAccessibleByType(nsIContent* aContent,
// XUL controls // XUL controls
case nsIAccessibleProvider::XULAlert: case nsIAccessibleProvider::XULAlert:
accessible = new nsXULAlertAccessible(aContent, aWeakShell); accessible = new nsXULAlertAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULButton: case nsIAccessibleProvider::XULButton:
accessible = new nsXULButtonAccessible(aContent, aWeakShell); accessible = new nsXULButtonAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULCheckbox: case nsIAccessibleProvider::XULCheckbox:
accessible = new nsXULCheckboxAccessible(aContent, aWeakShell); accessible = new nsXULCheckboxAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULColorPicker: case nsIAccessibleProvider::XULColorPicker:
accessible = new nsXULColorPickerAccessible(aContent, aWeakShell); accessible = new nsXULColorPickerAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULColorPickerTile: case nsIAccessibleProvider::XULColorPickerTile:
accessible = new nsXULColorPickerTileAccessible(aContent, aWeakShell); accessible = new nsXULColorPickerTileAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULCombobox: case nsIAccessibleProvider::XULCombobox:
accessible = new nsXULComboboxAccessible(aContent, aWeakShell); accessible = new nsXULComboboxAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULDropmarker: case nsIAccessibleProvider::XULDropmarker:
accessible = new nsXULDropmarkerAccessible(aContent, aWeakShell); accessible = new nsXULDropmarkerAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULGroupbox: case nsIAccessibleProvider::XULGroupbox:
accessible = new nsXULGroupboxAccessible(aContent, aWeakShell); accessible = new nsXULGroupboxAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULImage: case nsIAccessibleProvider::XULImage:
@ -1365,40 +1387,40 @@ nsAccessibilityService::CreateAccessibleByType(nsIContent* aContent,
nsGkAtoms::tooltiptext)) nsGkAtoms::tooltiptext))
return nsnull; return nsnull;
accessible = new nsHTMLImageAccessibleWrap(aContent, aWeakShell); accessible = new nsHTMLImageAccessibleWrap(aContent, aDoc);
break; break;
} }
case nsIAccessibleProvider::XULLink: case nsIAccessibleProvider::XULLink:
accessible = new nsXULLinkAccessible(aContent, aWeakShell); accessible = new nsXULLinkAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULListbox: case nsIAccessibleProvider::XULListbox:
accessible = new nsXULListboxAccessibleWrap(aContent, aWeakShell); accessible = new nsXULListboxAccessibleWrap(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULListCell: case nsIAccessibleProvider::XULListCell:
accessible = new nsXULListCellAccessibleWrap(aContent, aWeakShell); accessible = new nsXULListCellAccessibleWrap(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULListHead: case nsIAccessibleProvider::XULListHead:
accessible = new nsXULColumnsAccessible(aContent, aWeakShell); accessible = new nsXULColumnsAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULListHeader: case nsIAccessibleProvider::XULListHeader:
accessible = new nsXULColumnItemAccessible(aContent, aWeakShell); accessible = new nsXULColumnItemAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULListitem: case nsIAccessibleProvider::XULListitem:
accessible = new nsXULListitemAccessible(aContent, aWeakShell); accessible = new nsXULListitemAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULMenubar: case nsIAccessibleProvider::XULMenubar:
accessible = new nsXULMenubarAccessible(aContent, aWeakShell); accessible = new nsXULMenubarAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULMenuitem: case nsIAccessibleProvider::XULMenuitem:
accessible = new nsXULMenuitemAccessibleWrap(aContent, aWeakShell); accessible = new nsXULMenuitemAccessibleWrap(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULMenupopup: case nsIAccessibleProvider::XULMenupopup:
@ -1414,167 +1436,167 @@ nsAccessibilityService::CreateAccessibleByType(nsIContent* aContent,
kNameSpaceID_XUL)) kNameSpaceID_XUL))
return nsnull; return nsnull;
#endif #endif
accessible = new nsXULMenupopupAccessible(aContent, aWeakShell); accessible = new nsXULMenupopupAccessible(aContent, aDoc);
break; break;
} }
case nsIAccessibleProvider::XULMenuSeparator: case nsIAccessibleProvider::XULMenuSeparator:
accessible = new nsXULMenuSeparatorAccessible(aContent, aWeakShell); accessible = new nsXULMenuSeparatorAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULPane: case nsIAccessibleProvider::XULPane:
accessible = new nsEnumRoleAccessible(aContent, aWeakShell, accessible = new nsEnumRoleAccessible(aContent, aDoc,
roles::PANE); roles::PANE);
break; break;
case nsIAccessibleProvider::XULProgressMeter: case nsIAccessibleProvider::XULProgressMeter:
accessible = new XULProgressMeterAccessible(aContent, aWeakShell); accessible = new XULProgressMeterAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULStatusBar: case nsIAccessibleProvider::XULStatusBar:
accessible = new nsXULStatusBarAccessible(aContent, aWeakShell); accessible = new nsXULStatusBarAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULScale: case nsIAccessibleProvider::XULScale:
accessible = new nsXULSliderAccessible(aContent, aWeakShell); accessible = new nsXULSliderAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULRadioButton: case nsIAccessibleProvider::XULRadioButton:
accessible = new nsXULRadioButtonAccessible(aContent, aWeakShell); accessible = new nsXULRadioButtonAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULRadioGroup: case nsIAccessibleProvider::XULRadioGroup:
accessible = new nsXULRadioGroupAccessible(aContent, aWeakShell); accessible = new nsXULRadioGroupAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULTab: case nsIAccessibleProvider::XULTab:
accessible = new nsXULTabAccessible(aContent, aWeakShell); accessible = new nsXULTabAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULTabs: case nsIAccessibleProvider::XULTabs:
accessible = new nsXULTabsAccessible(aContent, aWeakShell); accessible = new nsXULTabsAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULTabpanels: case nsIAccessibleProvider::XULTabpanels:
accessible = new nsXULTabpanelsAccessible(aContent, aWeakShell); accessible = new nsXULTabpanelsAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULText: case nsIAccessibleProvider::XULText:
accessible = new nsXULTextAccessible(aContent, aWeakShell); accessible = new nsXULTextAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULTextBox: case nsIAccessibleProvider::XULTextBox:
accessible = new nsXULTextFieldAccessible(aContent, aWeakShell); accessible = new nsXULTextFieldAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULThumb: case nsIAccessibleProvider::XULThumb:
accessible = new nsXULThumbAccessible(aContent, aWeakShell); accessible = new nsXULThumbAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULTree: case nsIAccessibleProvider::XULTree:
return CreateAccessibleForXULTree(aContent, aWeakShell); return CreateAccessibleForXULTree(aContent, aDoc);
case nsIAccessibleProvider::XULTreeColumns: case nsIAccessibleProvider::XULTreeColumns:
accessible = new nsXULTreeColumnsAccessible(aContent, aWeakShell); accessible = new nsXULTreeColumnsAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULTreeColumnItem: case nsIAccessibleProvider::XULTreeColumnItem:
accessible = new nsXULColumnItemAccessible(aContent, aWeakShell); accessible = new nsXULColumnItemAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULToolbar: case nsIAccessibleProvider::XULToolbar:
accessible = new nsXULToolbarAccessible(aContent, aWeakShell); accessible = new nsXULToolbarAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULToolbarSeparator: case nsIAccessibleProvider::XULToolbarSeparator:
accessible = new nsXULToolbarSeparatorAccessible(aContent, aWeakShell); accessible = new nsXULToolbarSeparatorAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULTooltip: case nsIAccessibleProvider::XULTooltip:
accessible = new nsXULTooltipAccessible(aContent, aWeakShell); accessible = new nsXULTooltipAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XULToolbarButton: case nsIAccessibleProvider::XULToolbarButton:
accessible = new nsXULToolbarButtonAccessible(aContent, aWeakShell); accessible = new nsXULToolbarButtonAccessible(aContent, aDoc);
break; break;
#endif // MOZ_XUL #endif // MOZ_XUL
// XForms elements // XForms elements
case nsIAccessibleProvider::XFormsContainer: case nsIAccessibleProvider::XFormsContainer:
accessible = new nsXFormsContainerAccessible(aContent, aWeakShell); accessible = new nsXFormsContainerAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XFormsLabel: case nsIAccessibleProvider::XFormsLabel:
accessible = new nsXFormsLabelAccessible(aContent, aWeakShell); accessible = new nsXFormsLabelAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XFormsOutput: case nsIAccessibleProvider::XFormsOutput:
accessible = new nsXFormsOutputAccessible(aContent, aWeakShell); accessible = new nsXFormsOutputAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XFormsTrigger: case nsIAccessibleProvider::XFormsTrigger:
accessible = new nsXFormsTriggerAccessible(aContent, aWeakShell); accessible = new nsXFormsTriggerAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XFormsInput: case nsIAccessibleProvider::XFormsInput:
accessible = new nsXFormsInputAccessible(aContent, aWeakShell); accessible = new nsXFormsInputAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XFormsInputBoolean: case nsIAccessibleProvider::XFormsInputBoolean:
accessible = new nsXFormsInputBooleanAccessible(aContent, aWeakShell); accessible = new nsXFormsInputBooleanAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XFormsInputDate: case nsIAccessibleProvider::XFormsInputDate:
accessible = new nsXFormsInputDateAccessible(aContent, aWeakShell); accessible = new nsXFormsInputDateAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XFormsSecret: case nsIAccessibleProvider::XFormsSecret:
accessible = new nsXFormsSecretAccessible(aContent, aWeakShell); accessible = new nsXFormsSecretAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XFormsSliderRange: case nsIAccessibleProvider::XFormsSliderRange:
accessible = new nsXFormsRangeAccessible(aContent, aWeakShell); accessible = new nsXFormsRangeAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XFormsSelect: case nsIAccessibleProvider::XFormsSelect:
accessible = new nsXFormsSelectAccessible(aContent, aWeakShell); accessible = new nsXFormsSelectAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XFormsChoices: case nsIAccessibleProvider::XFormsChoices:
accessible = new nsXFormsChoicesAccessible(aContent, aWeakShell); accessible = new nsXFormsChoicesAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XFormsSelectFull: case nsIAccessibleProvider::XFormsSelectFull:
accessible = new nsXFormsSelectFullAccessible(aContent, aWeakShell); accessible = new nsXFormsSelectFullAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XFormsItemCheckgroup: case nsIAccessibleProvider::XFormsItemCheckgroup:
accessible = new nsXFormsItemCheckgroupAccessible(aContent, aWeakShell); accessible = new nsXFormsItemCheckgroupAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XFormsItemRadiogroup: case nsIAccessibleProvider::XFormsItemRadiogroup:
accessible = new nsXFormsItemRadiogroupAccessible(aContent, aWeakShell); accessible = new nsXFormsItemRadiogroupAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XFormsSelectCombobox: case nsIAccessibleProvider::XFormsSelectCombobox:
accessible = new nsXFormsSelectComboboxAccessible(aContent, aWeakShell); accessible = new nsXFormsSelectComboboxAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XFormsItemCombobox: case nsIAccessibleProvider::XFormsItemCombobox:
accessible = new nsXFormsItemComboboxAccessible(aContent, aWeakShell); accessible = new nsXFormsItemComboboxAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XFormsDropmarkerWidget: case nsIAccessibleProvider::XFormsDropmarkerWidget:
accessible = new nsXFormsDropmarkerWidgetAccessible(aContent, aWeakShell); accessible = new nsXFormsDropmarkerWidgetAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XFormsCalendarWidget: case nsIAccessibleProvider::XFormsCalendarWidget:
accessible = new nsXFormsCalendarWidgetAccessible(aContent, aWeakShell); accessible = new nsXFormsCalendarWidgetAccessible(aContent, aDoc);
break; break;
case nsIAccessibleProvider::XFormsComboboxPopupWidget: case nsIAccessibleProvider::XFormsComboboxPopupWidget:
accessible = new nsXFormsComboboxPopupWidgetAccessible(aContent, aWeakShell); accessible = new nsXFormsComboboxPopupWidgetAccessible(aContent, aDoc);
break; break;
default: default:
@ -1588,46 +1610,45 @@ nsAccessibilityService::CreateAccessibleByType(nsIContent* aContent,
already_AddRefed<nsAccessible> already_AddRefed<nsAccessible>
nsAccessibilityService::CreateHTMLAccessibleByMarkup(nsIFrame* aFrame, nsAccessibilityService::CreateHTMLAccessibleByMarkup(nsIFrame* aFrame,
nsIContent* aContent, nsIContent* aContent,
nsIWeakReference* aWeakShell) nsDocAccessible* aDoc)
{ {
// This method assumes we're in an HTML namespace. // This method assumes we're in an HTML namespace.
nsIAtom* tag = aContent->Tag(); nsIAtom* tag = aContent->Tag();
if (tag == nsGkAtoms::figcaption) { if (tag == nsGkAtoms::figcaption) {
nsAccessible* accessible = nsAccessible* accessible =
new nsHTMLFigcaptionAccessible(aContent, aWeakShell); new nsHTMLFigcaptionAccessible(aContent, aDoc);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
} }
if (tag == nsGkAtoms::figure) { if (tag == nsGkAtoms::figure) {
nsAccessible* accessible = new nsHTMLFigureAccessible(aContent, aWeakShell); nsAccessible* accessible = new nsHTMLFigureAccessible(aContent, aDoc);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
} }
if (tag == nsGkAtoms::legend) { if (tag == nsGkAtoms::legend) {
nsAccessible* accessible = new nsHTMLLegendAccessible(aContent, aWeakShell); nsAccessible* accessible = new nsHTMLLegendAccessible(aContent, aDoc);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
} }
if (tag == nsGkAtoms::option) { if (tag == nsGkAtoms::option) {
nsAccessible* accessible = new nsHTMLSelectOptionAccessible(aContent, nsAccessible* accessible = new nsHTMLSelectOptionAccessible(aContent, aDoc);
aWeakShell);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
} }
if (tag == nsGkAtoms::optgroup) { if (tag == nsGkAtoms::optgroup) {
nsAccessible* accessible = new nsHTMLSelectOptGroupAccessible(aContent, nsAccessible* accessible = new nsHTMLSelectOptGroupAccessible(aContent,
aWeakShell); aDoc);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
} }
if (tag == nsGkAtoms::ul || tag == nsGkAtoms::ol || if (tag == nsGkAtoms::ul || tag == nsGkAtoms::ol ||
tag == nsGkAtoms::dl) { tag == nsGkAtoms::dl) {
nsAccessible* accessible = new nsHTMLListAccessible(aContent, aWeakShell); nsAccessible* accessible = new nsHTMLListAccessible(aContent, aDoc);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
} }
@ -1638,13 +1659,12 @@ nsAccessibilityService::CreateHTMLAccessibleByMarkup(nsIFrame* aFrame,
nsRoleMapEntry *roleMapEntry = nsAccUtils::GetRoleMapEntry(aContent); nsRoleMapEntry *roleMapEntry = nsAccUtils::GetRoleMapEntry(aContent);
if (roleMapEntry && roleMapEntry->role != roles::NOTHING && if (roleMapEntry && roleMapEntry->role != roles::NOTHING &&
roleMapEntry->role != roles::LINK) { roleMapEntry->role != roles::LINK) {
nsAccessible* accessible = new nsHyperTextAccessibleWrap(aContent, nsAccessible* accessible = new nsHyperTextAccessibleWrap(aContent, aDoc);
aWeakShell);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
} }
nsAccessible* accessible = new nsHTMLLinkAccessible(aContent, aWeakShell); nsAccessible* accessible = new nsHTMLLinkAccessible(aContent, aDoc);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
} }
@ -1655,7 +1675,7 @@ nsAccessibilityService::CreateHTMLAccessibleByMarkup(nsIFrame* aFrame,
// Normally for li, it is created by the list item frame (in nsBlockFrame) // Normally for li, it is created by the list item frame (in nsBlockFrame)
// which knows about the bullet frame; however, in this case the list item // which knows about the bullet frame; however, in this case the list item
// must have been styled using display: foo // must have been styled using display: foo
nsAccessible* accessible = new nsHTMLLIAccessible(aContent, aWeakShell); nsAccessible* accessible = new nsHTMLLIAccessible(aContent, aDoc);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
} }
@ -1672,13 +1692,13 @@ nsAccessibilityService::CreateHTMLAccessibleByMarkup(nsIFrame* aFrame,
tag == nsGkAtoms::h5 || tag == nsGkAtoms::h5 ||
tag == nsGkAtoms::h6 || tag == nsGkAtoms::h6 ||
tag == nsGkAtoms::q) { tag == nsGkAtoms::q) {
nsAccessible* accessible = new nsHyperTextAccessibleWrap(aContent, aWeakShell); nsAccessible* accessible = new nsHyperTextAccessibleWrap(aContent, aDoc);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
} }
if (tag == nsGkAtoms::tr) { if (tag == nsGkAtoms::tr) {
nsAccessible* accessible = new nsEnumRoleAccessible(aContent, aWeakShell, nsAccessible* accessible = new nsEnumRoleAccessible(aContent, aDoc,
roles::ROW); roles::ROW);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
@ -1686,20 +1706,20 @@ nsAccessibilityService::CreateHTMLAccessibleByMarkup(nsIFrame* aFrame,
if (nsCoreUtils::IsHTMLTableHeader(aContent)) { if (nsCoreUtils::IsHTMLTableHeader(aContent)) {
nsAccessible* accessible = new nsHTMLTableHeaderCellAccessibleWrap(aContent, nsAccessible* accessible = new nsHTMLTableHeaderCellAccessibleWrap(aContent,
aWeakShell); aDoc);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
} }
if (tag == nsGkAtoms::output) { if (tag == nsGkAtoms::output) {
nsAccessible* accessible = new nsHTMLOutputAccessible(aContent, aWeakShell); nsAccessible* accessible = new nsHTMLOutputAccessible(aContent, aDoc);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
} }
if (tag == nsGkAtoms::progress) { if (tag == nsGkAtoms::progress) {
nsAccessible* accessible = nsAccessible* accessible =
new HTMLProgressMeterAccessible(aContent, aWeakShell); new HTMLProgressMeterAccessible(aContent, aDoc);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
} }
@ -1783,7 +1803,7 @@ NS_GetAccessibilityService(nsIAccessibilityService** aResult)
already_AddRefed<nsAccessible> already_AddRefed<nsAccessible>
nsAccessibilityService::CreateAccessibleForDeckChild(nsIFrame* aFrame, nsAccessibilityService::CreateAccessibleForDeckChild(nsIFrame* aFrame,
nsIContent* aContent, nsIContent* aContent,
nsIWeakReference* aWeakShell) nsDocAccessible* aDoc)
{ {
if (aFrame->GetType() == nsGkAtoms::boxFrame || if (aFrame->GetType() == nsGkAtoms::boxFrame ||
aFrame->GetType() == nsGkAtoms::scrollFrame) { aFrame->GetType() == nsGkAtoms::scrollFrame) {
@ -1796,13 +1816,12 @@ nsAccessibilityService::CreateAccessibleForDeckChild(nsIFrame* aFrame,
#ifdef MOZ_XUL #ifdef MOZ_XUL
if (parentContent->NodeInfo()->Equals(nsGkAtoms::tabpanels, if (parentContent->NodeInfo()->Equals(nsGkAtoms::tabpanels,
kNameSpaceID_XUL)) { kNameSpaceID_XUL)) {
nsAccessible* accessible = new nsXULTabpanelAccessible(aContent, nsAccessible* accessible = new nsXULTabpanelAccessible(aContent, aDoc);
aWeakShell);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
} }
#endif #endif
nsAccessible* accessible = new nsEnumRoleAccessible(aContent, aWeakShell, nsAccessible* accessible = new nsEnumRoleAccessible(aContent, aDoc,
roles::PROPERTYPAGE); roles::PROPERTYPAGE);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
@ -1815,7 +1834,7 @@ nsAccessibilityService::CreateAccessibleForDeckChild(nsIFrame* aFrame,
#ifdef MOZ_XUL #ifdef MOZ_XUL
already_AddRefed<nsAccessible> already_AddRefed<nsAccessible>
nsAccessibilityService::CreateAccessibleForXULTree(nsIContent* aContent, nsAccessibilityService::CreateAccessibleForXULTree(nsIContent* aContent,
nsIWeakReference* aWeakShell) nsDocAccessible* aDoc)
{ {
nsCOMPtr<nsITreeBoxObject> treeBoxObj = nsCoreUtils::GetTreeBoxObject(aContent); nsCOMPtr<nsITreeBoxObject> treeBoxObj = nsCoreUtils::GetTreeBoxObject(aContent);
if (!treeBoxObj) if (!treeBoxObj)
@ -1831,13 +1850,13 @@ nsAccessibilityService::CreateAccessibleForXULTree(nsIContent* aContent,
// Outline of list accessible. // Outline of list accessible.
if (count == 1) { if (count == 1) {
nsAccessible* accessible = new nsXULTreeAccessible(aContent, aWeakShell); nsAccessible* accessible = new nsXULTreeAccessible(aContent, aDoc);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
} }
// Table or tree table accessible. // Table or tree table accessible.
nsAccessible* accessible = new nsXULTreeGridAccessibleWrap(aContent, aWeakShell); nsAccessible* accessible = new nsXULTreeGridAccessibleWrap(aContent, aDoc);
NS_IF_ADDREF(accessible); NS_IF_ADDREF(accessible);
return accessible; return accessible;
} }

View File

@ -217,17 +217,15 @@ public:
* Return an accessible for the given DOM node or container accessible if * Return an accessible for the given DOM node or container accessible if
* the node is not accessible. * the node is not accessible.
*/ */
nsAccessible* GetAccessibleOrContainer(nsINode* aNode, nsAccessible* GetAccessibleOrContainer(nsINode* aNode, nsIPresShell* aPresShell);
nsIWeakReference* aWeakShell);
/** /**
* Return a container accessible for the given DOM node. * Return a container accessible for the given DOM node.
*/ */
inline nsAccessible* GetContainerAccessible(nsINode* aNode, inline nsAccessible* GetContainerAccessible(nsINode* aNode, nsIPresShell* aPresShell)
nsIWeakReference* aWeakShell)
{ {
return aNode ? return aNode ?
GetAccessibleOrContainer(aNode->GetNodeParent(), aWeakShell) : nsnull; GetAccessibleOrContainer(aNode->GetNodeParent(), aPresShell) : nsnull;
} }
private: private:
@ -253,28 +251,28 @@ private:
* interface. * interface.
*/ */
already_AddRefed<nsAccessible> already_AddRefed<nsAccessible>
CreateAccessibleByType(nsIContent* aContent, nsIWeakReference* aWeakShell); CreateAccessibleByType(nsIContent* aContent, nsDocAccessible* aDoc);
/** /**
* Create accessible for HTML node by tag name. * Create accessible for HTML node by tag name.
*/ */
already_AddRefed<nsAccessible> already_AddRefed<nsAccessible>
CreateHTMLAccessibleByMarkup(nsIFrame* aFrame, nsIContent* aContent, CreateHTMLAccessibleByMarkup(nsIFrame* aFrame, nsIContent* aContent,
nsIWeakReference* aWeakShell); nsDocAccessible* aDoc);
/** /**
* Create accessible if parent is a deck frame. * Create accessible if parent is a deck frame.
*/ */
already_AddRefed<nsAccessible> already_AddRefed<nsAccessible>
CreateAccessibleForDeckChild(nsIFrame* aFrame, nsIContent* aContent, CreateAccessibleForDeckChild(nsIFrame* aFrame, nsIContent* aContent,
nsIWeakReference* aWeakShell); nsDocAccessible* aDoc);
#ifdef MOZ_XUL #ifdef MOZ_XUL
/** /**
* Create accessible for XUL tree element. * Create accessible for XUL tree element.
*/ */
already_AddRefed<nsAccessible> already_AddRefed<nsAccessible>
CreateAccessibleForXULTree(nsIContent* aContent, nsIWeakReference* aWeakShell); CreateAccessibleForXULTree(nsIContent* aContent, nsDocAccessible* aDoc);
#endif #endif
/** /**

View File

@ -190,8 +190,8 @@ nsresult nsAccessible::QueryInterface(REFNSIID aIID, void** aInstancePtr)
return nsAccessNodeWrap::QueryInterface(aIID, aInstancePtr); return nsAccessNodeWrap::QueryInterface(aIID, aInstancePtr);
} }
nsAccessible::nsAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsAccessible::nsAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessNodeWrap(aContent, aShell), nsAccessNodeWrap(aContent, aDoc),
mParent(nsnull), mIndexInParent(-1), mFlags(eChildrenUninitialized), mParent(nsnull), mIndexInParent(-1), mFlags(eChildrenUninitialized),
mIndexOfEmbeddedChild(-1), mRoleMapEntry(nsnull) mIndexOfEmbeddedChild(-1), mRoleMapEntry(nsnull)
{ {
@ -597,7 +597,7 @@ nsAccessible::VisibilityState()
if (!frame) if (!frame)
return vstates; return vstates;
const nsCOMPtr<nsIPresShell> shell(GetPresShell()); nsIPresShell* shell(mDoc->PresShell());
if (!shell) if (!shell)
return vstates; return vstates;
@ -764,7 +764,7 @@ nsAccessible::ChildAtPoint(PRInt32 aX, PRInt32 aY,
// Get accessible for the node with the point or the first accessible in // Get accessible for the node with the point or the first accessible in
// the DOM parent chain. // the DOM parent chain.
nsAccessible* accessible = nsAccessible* accessible =
GetAccService()->GetAccessibleOrContainer(content, mWeakShell); GetAccService()->GetAccessibleOrContainer(content, presShell);
if (!accessible) if (!accessible)
return fallbackAnswer; return fallbackAnswer;
@ -951,7 +951,7 @@ nsAccessible::GetBounds(PRInt32* aX, PRInt32* aY,
if (IsDefunct()) if (IsDefunct())
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
nsCOMPtr<nsIPresShell> presShell = GetPresShell(); nsIPresShell* presShell = mDoc->PresShell();
// This routine will get the entire rectangle for all the frames in this node. // This routine will get the entire rectangle for all the frames in this node.
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
@ -1630,7 +1630,7 @@ nsAccessible::GetValue(nsAString& aValue)
// Check if it's a simple xlink. // Check if it's a simple xlink.
if (nsCoreUtils::IsXLink(mContent)) { if (nsCoreUtils::IsXLink(mContent)) {
nsCOMPtr<nsIPresShell> presShell(do_QueryReferent(mWeakShell)); nsIPresShell* presShell = mDoc->PresShell();
if (presShell) { if (presShell) {
nsCOMPtr<nsIDOMNode> DOMNode(do_QueryInterface(mContent)); nsCOMPtr<nsIDOMNode> DOMNode(do_QueryInterface(mContent));
return presShell->GetLinkLocation(DOMNode, aValue); return presShell->GetLinkLocation(DOMNode, aValue);
@ -2156,7 +2156,7 @@ nsAccessible::DispatchClickEvent(nsIContent *aContent, PRUint32 aActionIndex)
if (IsDefunct()) if (IsDefunct())
return; return;
nsCOMPtr<nsIPresShell> presShell = GetPresShell(); nsIPresShell* presShell = mDoc->PresShell();
// Scroll into view. // Scroll into view.
presShell->ScrollContentIntoView(aContent, NS_PRESSHELL_SCROLL_ANYWHERE, presShell->ScrollContentIntoView(aContent, NS_PRESSHELL_SCROLL_ANYWHERE,
@ -2936,7 +2936,10 @@ nsAccessible::ContainerWidget() const
void void
nsAccessible::CacheChildren() nsAccessible::CacheChildren()
{ {
nsAccTreeWalker walker(mWeakShell, mContent, GetAllowsAnonChildAccessibles()); nsDocAccessible* doc = GetDocAccessible();
NS_ENSURE_TRUE(doc,);
nsAccTreeWalker walker(doc->GetWeakShell(), mContent, GetAllowsAnonChildAccessibles());
nsAccessible* child = nsnull; nsAccessible* child = nsnull;
while ((child = walker.NextChild()) && AppendChild(child)); while ((child = walker.NextChild()) && AppendChild(child));
@ -3009,8 +3012,7 @@ nsAccessible::GetSiblingAtOffset(PRInt32 aOffset, nsresult* aError) const
nsAccessible * nsAccessible *
nsAccessible::GetFirstAvailableAccessible(nsINode *aStartNode) const nsAccessible::GetFirstAvailableAccessible(nsINode *aStartNode) const
{ {
nsAccessible* accessible = nsAccessible* accessible = mDoc->GetAccessible(aStartNode);
GetAccService()->GetAccessibleInWeakShell(aStartNode, mWeakShell);
if (accessible) if (accessible)
return accessible; return accessible;
@ -3032,8 +3034,7 @@ nsAccessible::GetFirstAvailableAccessible(nsINode *aStartNode) const
return nsnull; return nsnull;
nsCOMPtr<nsINode> node(do_QueryInterface(currentNode)); nsCOMPtr<nsINode> node(do_QueryInterface(currentNode));
nsAccessible* accessible = nsAccessible* accessible = mDoc->GetAccessible(node);
GetAccService()->GetAccessibleInWeakShell(node, mWeakShell);
if (accessible) if (accessible)
return accessible; return accessible;
} }

View File

@ -104,7 +104,7 @@ class nsAccessible : public nsAccessNodeWrap,
public nsIAccessibleValue public nsIAccessibleValue
{ {
public: public:
nsAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsAccessible(); virtual ~nsAccessible();
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED

View File

@ -59,8 +59,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsLeafAccessible:: nsLeafAccessible::
nsLeafAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsLeafAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
} }
@ -92,8 +92,8 @@ nsLeafAccessible::CacheChildren()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsLinkableAccessible:: nsLinkableAccessible::
nsLinkableAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsLinkableAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell), nsAccessibleWrap(aContent, aDoc),
mActionAcc(nsnull), mActionAcc(nsnull),
mIsLink(false), mIsLink(false),
mIsOnclick(false) mIsOnclick(false)
@ -253,9 +253,9 @@ nsLinkableAccessible::BindToParent(nsAccessible* aParent,
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsEnumRoleAccessible:: nsEnumRoleAccessible::
nsEnumRoleAccessible(nsIContent *aNode, nsIWeakReference *aShell, nsEnumRoleAccessible(nsIContent* aNode, nsDocAccessible* aDoc,
roles::Role aRole) : roles::Role aRole) :
nsAccessibleWrap(aNode, aShell), mRole(aRole) nsAccessibleWrap(aNode, aDoc), mRole(aRole)
{ {
} }

View File

@ -56,7 +56,7 @@ class nsLeafAccessible : public nsAccessibleWrap
{ {
public: public:
nsLeafAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsLeafAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsISupports // nsISupports
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
@ -82,7 +82,7 @@ class nsLinkableAccessible : public nsAccessibleWrap
public: public:
enum { eAction_Jump = 0 }; enum { eAction_Jump = 0 };
nsLinkableAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsLinkableAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
@ -123,7 +123,7 @@ protected:
class nsEnumRoleAccessible : public nsAccessibleWrap class nsEnumRoleAccessible : public nsAccessibleWrap
{ {
public: public:
nsEnumRoleAccessible(nsIContent *aContent, nsIWeakReference *aShell, nsEnumRoleAccessible(nsIContent* aContent, nsDocAccessible* aDoc,
mozilla::a11y::role aRole); mozilla::a11y::role aRole);
virtual ~nsEnumRoleAccessible() { } virtual ~nsEnumRoleAccessible() { }

View File

@ -103,9 +103,10 @@ static const PRUint32 kRelationAttrsLen = NS_ARRAY_LENGTH(kRelationAttrs);
nsDocAccessible:: nsDocAccessible::
nsDocAccessible(nsIDocument *aDocument, nsIContent *aRootContent, nsDocAccessible(nsIDocument *aDocument, nsIContent *aRootContent,
nsIWeakReference *aShell) : nsIWeakReference *aShell) :
nsHyperTextAccessibleWrap(aRootContent, aShell), nsHyperTextAccessibleWrap(aRootContent, this),
mDocument(aDocument), mScrollPositionChangedTicks(0), mDocument(aDocument), mScrollPositionChangedTicks(0),
mLoadState(eTreeConstructionPending), mLoadEventType(0) mLoadState(eTreeConstructionPending), mLoadEventType(0),
mPresShell(nsCOMPtr<nsIPresShell>(do_QueryReferent(aShell)).get())
{ {
mFlags |= eDocAccessible; mFlags |= eDocAccessible;
@ -129,9 +130,9 @@ nsDocAccessible::
nsDocAccessible::~nsDocAccessible() nsDocAccessible::~nsDocAccessible()
{ {
NS_ASSERTION(!mPresShell, "LastRelease was never called!?!");
} }
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// nsISupports // nsISupports
@ -193,7 +194,6 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsDocAccessible)
NS_IMPL_ADDREF_INHERITED(nsDocAccessible, nsHyperTextAccessible) NS_IMPL_ADDREF_INHERITED(nsDocAccessible, nsHyperTextAccessible)
NS_IMPL_RELEASE_INHERITED(nsDocAccessible, nsHyperTextAccessible) NS_IMPL_RELEASE_INHERITED(nsDocAccessible, nsHyperTextAccessible)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// nsIAccessible // nsIAccessible
@ -586,8 +586,7 @@ nsDocAccessible::Init()
NS_LOG_ACCDOCCREATE_FOR("document initialize", mDocument, this) NS_LOG_ACCDOCCREATE_FOR("document initialize", mDocument, this)
// Initialize notification controller. // Initialize notification controller.
nsCOMPtr<nsIPresShell> shell(GetPresShell()); mNotificationController = new NotificationController(this, mPresShell);
mNotificationController = new NotificationController(this, shell);
if (!mNotificationController) if (!mNotificationController)
return false; return false;
@ -604,7 +603,7 @@ nsDocAccessible::Init()
void void
nsDocAccessible::Shutdown() nsDocAccessible::Shutdown()
{ {
if (!mWeakShell) // already shutdown if (!mPresShell) // already shutdown
return; return;
NS_LOG_ACCDOCDESTROY_FOR("document shutdown", mDocument, this) NS_LOG_ACCDOCDESTROY_FOR("document shutdown", mDocument, this)
@ -637,7 +636,7 @@ nsDocAccessible::Shutdown()
mChildDocuments.Clear(); mChildDocuments.Clear();
mWeakShell = nsnull; // Avoid reentrancy mPresShell = nsnull; // Avoid reentrancy
mDependentIDsHash.Clear(); mDependentIDsHash.Clear();
mNodeToAccessibleMap.Clear(); mNodeToAccessibleMap.Clear();
@ -651,11 +650,9 @@ nsDocAccessible::Shutdown()
nsIFrame* nsIFrame*
nsDocAccessible::GetFrame() const nsDocAccessible::GetFrame() const
{ {
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mWeakShell));
nsIFrame* root = nsnull; nsIFrame* root = nsnull;
if (shell) if (mPresShell)
root = shell->GetRootFrame(); root = mPresShell->GetRootFrame();
return root; return root;
} }
@ -713,8 +710,7 @@ nsresult nsDocAccessible::AddEventListeners()
// 1) Set up scroll position listener // 1) Set up scroll position listener
// 2) Check for editor and listen for changes to editor // 2) Check for editor and listen for changes to editor
nsCOMPtr<nsIPresShell> presShell(GetPresShell()); NS_ENSURE_TRUE(mPresShell, NS_ERROR_FAILURE);
NS_ENSURE_TRUE(presShell, NS_ERROR_FAILURE);
nsCOMPtr<nsISupports> container = mDocument->GetContainer(); nsCOMPtr<nsISupports> container = mDocument->GetContainer();
nsCOMPtr<nsIDocShellTreeItem> docShellTreeItem(do_QueryInterface(container)); nsCOMPtr<nsIDocShellTreeItem> docShellTreeItem(do_QueryInterface(container));
@ -742,7 +738,7 @@ nsresult nsDocAccessible::AddEventListeners()
NS_ENSURE_TRUE(rootAccessible, NS_ERROR_FAILURE); NS_ENSURE_TRUE(rootAccessible, NS_ERROR_FAILURE);
nsRefPtr<nsCaretAccessible> caretAccessible = rootAccessible->GetCaretAccessible(); nsRefPtr<nsCaretAccessible> caretAccessible = rootAccessible->GetCaretAccessible();
if (caretAccessible) { if (caretAccessible) {
caretAccessible->AddDocSelectionListener(presShell); caretAccessible->AddDocSelectionListener(mPresShell);
} }
} }
@ -788,11 +784,8 @@ nsresult nsDocAccessible::RemoveEventListeners()
nsRootAccessible* rootAccessible = RootAccessible(); nsRootAccessible* rootAccessible = RootAccessible();
if (rootAccessible) { if (rootAccessible) {
nsRefPtr<nsCaretAccessible> caretAccessible = rootAccessible->GetCaretAccessible(); nsRefPtr<nsCaretAccessible> caretAccessible = rootAccessible->GetCaretAccessible();
if (caretAccessible) { if (caretAccessible)
// Don't use GetPresShell() which can call Shutdown() if it sees dead pres shell caretAccessible->RemoveDocSelectionListener(mPresShell);
nsCOMPtr<nsIPresShell> presShell(do_QueryReferent(mWeakShell));
caretAccessible->RemoveDocSelectionListener(presShell);
}
} }
return NS_OK; return NS_OK;
@ -822,11 +815,10 @@ void nsDocAccessible::ScrollTimerCallback(nsITimer *aTimer, void *aClosure)
// nsDocAccessible protected member // nsDocAccessible protected member
void nsDocAccessible::AddScrollListener() void nsDocAccessible::AddScrollListener()
{ {
nsCOMPtr<nsIPresShell> presShell(do_QueryReferent(mWeakShell)); if (!mPresShell)
if (!presShell)
return; return;
nsIScrollableFrame* sf = presShell->GetRootScrollFrameAsScrollableExternal(); nsIScrollableFrame* sf = mPresShell->GetRootScrollFrameAsScrollableExternal();
if (sf) { if (sf) {
sf->AddScrollPositionListener(this); sf->AddScrollPositionListener(this);
NS_LOG_ACCDOCCREATE_TEXT("add scroll listener") NS_LOG_ACCDOCCREATE_TEXT("add scroll listener")
@ -836,11 +828,10 @@ void nsDocAccessible::AddScrollListener()
// nsDocAccessible protected member // nsDocAccessible protected member
void nsDocAccessible::RemoveScrollListener() void nsDocAccessible::RemoveScrollListener()
{ {
nsCOMPtr<nsIPresShell> presShell(do_QueryReferent(mWeakShell)); if (!mPresShell)
if (!presShell)
return; return;
nsIScrollableFrame* sf = presShell->GetRootScrollFrameAsScrollableExternal(); nsIScrollableFrame* sf = mPresShell->GetRootScrollFrameAsScrollableExternal();
if (sf) { if (sf) {
sf->RemoveScrollPositionListener(this); sf->RemoveScrollPositionListener(this);
} }
@ -1278,11 +1269,10 @@ nsDocAccessible::HandleAccEvent(AccEvent* aAccEvent)
void* void*
nsDocAccessible::GetNativeWindow() const nsDocAccessible::GetNativeWindow() const
{ {
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mWeakShell)); if (!mPresShell)
if (!shell)
return nsnull; return nsnull;
nsIViewManager* vm = shell->GetViewManager(); nsIViewManager* vm = mPresShell->GetViewManager();
if (!vm) if (!vm)
return nsnull; return nsnull;
@ -1469,7 +1459,7 @@ nsDocAccessible::CacheChildren()
{ {
// Search for accessible children starting from the document element since // Search for accessible children starting from the document element since
// some web pages tend to insert elements under it rather than document body. // some web pages tend to insert elements under it rather than document body.
nsAccTreeWalker walker(mWeakShell, mDocument->GetRootElement(), nsAccTreeWalker walker(do_GetWeakReference(mPresShell).get(), mDocument->GetRootElement(),
GetAllowsAnonChildAccessibles()); GetAllowsAnonChildAccessibles());
nsAccessible* child = nsnull; nsAccessible* child = nsnull;
@ -1825,7 +1815,7 @@ nsDocAccessible::UpdateTree(nsAccessible* aContainer, nsIContent* aChildNode,
updateFlags |= UpdateTreeInternal(child, aIsInsert); updateFlags |= UpdateTreeInternal(child, aIsInsert);
} else { } else {
nsAccTreeWalker walker(mWeakShell, aChildNode, nsAccTreeWalker walker(do_GetWeakReference(mPresShell).get(), aChildNode,
aContainer->GetAllowsAnonChildAccessibles(), true); aContainer->GetAllowsAnonChildAccessibles(), true);
while ((child = walker.NextChild())) while ((child = walker.NextChild()))

View File

@ -129,6 +129,17 @@ public:
// nsDocAccessible // nsDocAccessible
/**
* Return presentation shell for this document accessible.
*/
nsIPresShell* PresShell() const { return mPresShell; }
/**
* Return weak reference to presentation shell for this document accessible.
*/
nsIWeakReference* GetWeakShell() const
{ return do_GetWeakReference(mPresShell).get(); }
/** /**
* Return true if associated DOM document was loaded and isn't unloading. * Return true if associated DOM document was loaded and isn't unloading.
*/ */
@ -161,7 +172,8 @@ public:
* Return true if the document has given document state. * Return true if the document has given document state.
*/ */
bool HasLoadState(LoadState aState) const bool HasLoadState(LoadState aState) const
{ return (mLoadState & aState) == aState; } { return (mLoadState & static_cast<PRUint32>(aState)) ==
static_cast<PRUint32>(aState); }
/** /**
* Return a native window handler or pointer depending on platform. * Return a native window handler or pointer depending on platform.
@ -368,6 +380,8 @@ public:
protected: protected:
void LastRelease();
// nsAccessible // nsAccessible
virtual void CacheChildren(); virtual void CacheChildren();
@ -634,6 +648,10 @@ protected:
*/ */
nsRefPtr<NotificationController> mNotificationController; nsRefPtr<NotificationController> mNotificationController;
friend class NotificationController; friend class NotificationController;
private:
nsIPresShell* mPresShell;
}; };
NS_DEFINE_STATIC_IID_ACCESSOR(nsDocAccessible, NS_DEFINE_STATIC_IID_ACCESSOR(nsDocAccessible,

View File

@ -201,8 +201,8 @@ ProgressMeterAccessible<Max>::SetCurrentValue(double aValue)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsRadioButtonAccessible:: nsRadioButtonAccessible::
nsRadioButtonAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsRadioButtonAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsFormControlAccessible(aContent, aShell) nsFormControlAccessible(aContent, aDoc)
{ {
} }

View File

@ -50,8 +50,8 @@ template<int Max>
class ProgressMeterAccessible: public nsFormControlAccessible class ProgressMeterAccessible: public nsFormControlAccessible
{ {
public: public:
ProgressMeterAccessible(nsIContent* aContent, nsIWeakReference* aShell) : ProgressMeterAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsFormControlAccessible(aContent, aShell) nsFormControlAccessible(aContent, aDoc)
{ {
} }
@ -75,7 +75,7 @@ class nsRadioButtonAccessible : public nsFormControlAccessible
{ {
public: public:
nsRadioButtonAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsRadioButtonAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName); NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName);

View File

@ -50,8 +50,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsOuterDocAccessible:: nsOuterDocAccessible::
nsOuterDocAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsOuterDocAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
} }

View File

@ -53,7 +53,7 @@
class nsOuterDocAccessible : public nsAccessibleWrap class nsOuterDocAccessible : public nsAccessibleWrap
{ {
public: public:
nsOuterDocAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsOuterDocAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED

View File

@ -371,18 +371,13 @@ nsRootAccessible::ProcessDOMEvent(nsIDOMEvent* aDOMEvent)
nsAutoString eventType; nsAutoString eventType;
aDOMEvent->GetType(eventType); aDOMEvent->GetType(eventType);
nsCOMPtr<nsIWeakReference> weakShell =
nsCoreUtils::GetWeakShellFor(origTargetNode);
if (!weakShell)
return;
if (eventType.EqualsLiteral("popuphiding")) { if (eventType.EqualsLiteral("popuphiding")) {
HandlePopupHidingEvent(origTargetNode); HandlePopupHidingEvent(origTargetNode);
return; return;
} }
nsAccessible* accessible = nsAccessible* accessible =
GetAccService()->GetAccessibleOrContainer(origTargetNode, weakShell); GetAccService()->GetAccessibleOrContainer(origTargetNode, nsnull);
if (!accessible) if (!accessible)
return; return;
@ -568,7 +563,7 @@ void
nsRootAccessible::Shutdown() nsRootAccessible::Shutdown()
{ {
// Called manually or by nsAccessNode::LastRelease() // Called manually or by nsAccessNode::LastRelease()
if (!mWeakShell) if (!PresShell())
return; // Already shutdown return; // Already shutdown
nsDocAccessibleWrap::Shutdown(); nsDocAccessibleWrap::Shutdown();

View File

@ -49,8 +49,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsTextAccessible:: nsTextAccessible::
nsTextAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsTextAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsLinkableAccessible(aContent, aShell) nsLinkableAccessible(aContent, aDoc)
{ {
mFlags |= eTextLeafAccessible; mFlags |= eTextLeafAccessible;
} }

View File

@ -47,7 +47,7 @@
class nsTextAccessible : public nsLinkableAccessible class nsTextAccessible : public nsLinkableAccessible
{ {
public: public:
nsTextAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsTextAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();

View File

@ -42,8 +42,8 @@
using namespace mozilla::a11y; using namespace mozilla::a11y;
nsHTMLCanvasAccessible:: nsHTMLCanvasAccessible::
nsHTMLCanvasAccessible(nsIContent* aContent, nsIWeakReference* aShell) : nsHTMLCanvasAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessible(aContent, aShell) nsHyperTextAccessible(aContent, aDoc)
{ {
} }

View File

@ -46,7 +46,7 @@
class nsHTMLCanvasAccessible : public nsHyperTextAccessible class nsHTMLCanvasAccessible : public nsHyperTextAccessible
{ {
public: public:
nsHTMLCanvasAccessible(nsIContent* aContent, nsIWeakReference* aShell); nsHTMLCanvasAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsHTMLCanvasAccessible() { } virtual ~nsHTMLCanvasAccessible() { }
// nsAccessible // nsAccessible

View File

@ -68,8 +68,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLCheckboxAccessible:: nsHTMLCheckboxAccessible::
nsHTMLCheckboxAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLCheckboxAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsFormControlAccessible(aContent, aShell) nsFormControlAccessible(aContent, aDoc)
{ {
} }
@ -154,8 +154,8 @@ nsHTMLCheckboxAccessible::IsWidget() const
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLRadioButtonAccessible:: nsHTMLRadioButtonAccessible::
nsHTMLRadioButtonAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLRadioButtonAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsRadioButtonAccessible(aContent, aShell) nsRadioButtonAccessible(aContent, aDoc)
{ {
} }
@ -243,8 +243,8 @@ nsHTMLRadioButtonAccessible::GetPositionAndSizeInternal(PRInt32 *aPosInSet,
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLButtonAccessible:: nsHTMLButtonAccessible::
nsHTMLButtonAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLButtonAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }
@ -358,8 +358,8 @@ nsHTMLButtonAccessible::IsWidget() const
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTML4ButtonAccessible:: nsHTML4ButtonAccessible::
nsHTML4ButtonAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTML4ButtonAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }
@ -423,8 +423,8 @@ nsHTML4ButtonAccessible::IsWidget() const
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLTextFieldAccessible:: nsHTMLTextFieldAccessible::
nsHTMLTextFieldAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLTextFieldAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }
@ -655,8 +655,8 @@ nsHTMLTextFieldAccessible::ContainerWidget() const
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLFileInputAccessible:: nsHTMLFileInputAccessible::
nsHTMLFileInputAccessible(nsIContent* aContent, nsIWeakReference* aShell) : nsHTMLFileInputAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
mFlags |= eHTMLFileInputAccessible; mFlags |= eHTMLFileInputAccessible;
} }
@ -710,8 +710,8 @@ nsHTMLFileInputAccessible::HandleAccEvent(AccEvent* aEvent)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLGroupboxAccessible:: nsHTMLGroupboxAccessible::
nsHTMLGroupboxAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLGroupboxAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }
@ -770,8 +770,8 @@ nsHTMLGroupboxAccessible::RelationByType(PRUint32 aType)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLLegendAccessible:: nsHTMLLegendAccessible::
nsHTMLLegendAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLLegendAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }
@ -800,8 +800,8 @@ nsHTMLLegendAccessible::NativeRole()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLFigureAccessible:: nsHTMLFigureAccessible::
nsHTMLFigureAccessible(nsIContent* aContent, nsIWeakReference* aShell) : nsHTMLFigureAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }
@ -870,8 +870,8 @@ nsHTMLFigureAccessible::Caption() const
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLFigcaptionAccessible:: nsHTMLFigcaptionAccessible::
nsHTMLFigcaptionAccessible(nsIContent* aContent, nsIWeakReference* aShell) : nsHTMLFigcaptionAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }

View File

@ -56,7 +56,7 @@ class nsHTMLCheckboxAccessible : public nsFormControlAccessible
public: public:
enum { eAction_Click = 0 }; enum { eAction_Click = 0 };
nsHTMLCheckboxAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLCheckboxAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName); NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName);
@ -81,7 +81,7 @@ class nsHTMLRadioButtonAccessible : public nsRadioButtonAccessible
{ {
public: public:
nsHTMLRadioButtonAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLRadioButtonAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual PRUint64 NativeState(); virtual PRUint64 NativeState();
@ -100,7 +100,7 @@ class nsHTMLButtonAccessible : public nsHyperTextAccessibleWrap
public: public:
enum { eAction_Click = 0 }; enum { eAction_Click = 0 };
nsHTMLButtonAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLButtonAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName); NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName);
@ -129,7 +129,7 @@ class nsHTML4ButtonAccessible : public nsHyperTextAccessibleWrap
public: public:
enum { eAction_Click = 0 }; enum { eAction_Click = 0 };
nsHTML4ButtonAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTML4ButtonAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName); NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName);
@ -156,7 +156,7 @@ class nsHTMLTextFieldAccessible : public nsHyperTextAccessibleWrap
public: public:
enum { eAction_Click = 0 }; enum { eAction_Click = 0 };
nsHTMLTextFieldAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLTextFieldAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
@ -190,7 +190,7 @@ public:
class nsHTMLFileInputAccessible : public nsHyperTextAccessibleWrap class nsHTMLFileInputAccessible : public nsHyperTextAccessibleWrap
{ {
public: public:
nsHTMLFileInputAccessible(nsIContent* aContent, nsIWeakReference* aShell); nsHTMLFileInputAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
@ -203,7 +203,7 @@ public:
class nsHTMLGroupboxAccessible : public nsHyperTextAccessibleWrap class nsHTMLGroupboxAccessible : public nsHyperTextAccessibleWrap
{ {
public: public:
nsHTMLGroupboxAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLGroupboxAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual nsresult GetNameInternal(nsAString& aName); virtual nsresult GetNameInternal(nsAString& aName);
@ -221,7 +221,7 @@ protected:
class nsHTMLLegendAccessible : public nsHyperTextAccessibleWrap class nsHTMLLegendAccessible : public nsHyperTextAccessibleWrap
{ {
public: public:
nsHTMLLegendAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLLegendAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
@ -234,7 +234,7 @@ public:
class nsHTMLFigureAccessible : public nsHyperTextAccessibleWrap class nsHTMLFigureAccessible : public nsHyperTextAccessibleWrap
{ {
public: public:
nsHTMLFigureAccessible(nsIContent* aContent, nsIWeakReference* aShell); nsHTMLFigureAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual nsresult GetAttributesInternal(nsIPersistentProperties* aAttributes); virtual nsresult GetAttributesInternal(nsIPersistentProperties* aAttributes);
@ -253,7 +253,7 @@ protected:
class nsHTMLFigcaptionAccessible : public nsHyperTextAccessibleWrap class nsHTMLFigcaptionAccessible : public nsHyperTextAccessibleWrap
{ {
public: public:
nsHTMLFigcaptionAccessible(nsIContent* aContent, nsIWeakReference* aShell); nsHTMLFigcaptionAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();

View File

@ -60,8 +60,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLImageAccessible:: nsHTMLImageAccessible::
nsHTMLImageAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLImageAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsLinkableAccessible(aContent, aShell) nsLinkableAccessible(aContent, aDoc)
{ {
} }

View File

@ -51,7 +51,7 @@ class nsHTMLImageAccessible : public nsLinkableAccessible,
public nsIAccessibleImage public nsIAccessibleImage
{ {
public: public:
nsHTMLImageAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLImageAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsISupports // nsISupports
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED

View File

@ -57,9 +57,9 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLImageMapAccessible:: nsHTMLImageMapAccessible::
nsHTMLImageMapAccessible(nsIContent *aContent, nsIWeakReference *aShell, nsHTMLImageMapAccessible(nsIContent* aContent, nsDocAccessible* aDoc,
nsIDOMHTMLMapElement *aMapElm) : nsIDOMHTMLMapElement* aMapElm) :
nsHTMLImageAccessibleWrap(aContent, aShell), mMapElement(aMapElm) nsHTMLImageAccessibleWrap(aContent, aDoc), mMapElement(aMapElm)
{ {
} }
@ -130,7 +130,7 @@ nsHTMLImageMapAccessible::CacheChildren()
nsCOMPtr<nsIContent> areaContent(do_QueryInterface(areaNode)); nsCOMPtr<nsIContent> areaContent(do_QueryInterface(areaNode));
nsRefPtr<nsAccessible> area = nsRefPtr<nsAccessible> area =
new nsHTMLAreaAccessible(areaContent, mWeakShell); new nsHTMLAreaAccessible(areaContent, mDoc);
if (!document->BindToDocument(area, nsAccUtils::GetRoleMapEntry(areaContent)) || if (!document->BindToDocument(area, nsAccUtils::GetRoleMapEntry(areaContent)) ||
!AppendChild(area)) { !AppendChild(area)) {
@ -145,8 +145,8 @@ nsHTMLImageMapAccessible::CacheChildren()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLAreaAccessible:: nsHTMLAreaAccessible::
nsHTMLAreaAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLAreaAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHTMLLinkAccessible(aContent, aShell) nsHTMLLinkAccessible(aContent, aDoc)
{ {
} }

View File

@ -51,8 +51,8 @@
class nsHTMLImageMapAccessible : public nsHTMLImageAccessibleWrap class nsHTMLImageMapAccessible : public nsHTMLImageAccessibleWrap
{ {
public: public:
nsHTMLImageMapAccessible(nsIContent *aContent, nsIWeakReference *aShell, nsHTMLImageMapAccessible(nsIContent* aContent, nsDocAccessible* aDoc,
nsIDOMHTMLMapElement *aMapElm); nsIDOMHTMLMapElement* aMapElm);
// nsISupports and cycle collector // nsISupports and cycle collector
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
@ -83,7 +83,7 @@ class nsHTMLAreaAccessible : public nsHTMLLinkAccessible
{ {
public: public:
nsHTMLAreaAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLAreaAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible

View File

@ -43,6 +43,7 @@
#include "Role.h" #include "Role.h"
#include "States.h" #include "States.h"
#include "nsDocAccessible.h"
#include "nsEventStates.h" #include "nsEventStates.h"
#include "mozilla/dom/Element.h" #include "mozilla/dom/Element.h"
@ -53,8 +54,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLLinkAccessible:: nsHTMLLinkAccessible::
nsHTMLLinkAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLLinkAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }
@ -116,7 +117,7 @@ nsHTMLLinkAccessible::GetValue(nsAString& aValue)
if (!aValue.IsEmpty()) if (!aValue.IsEmpty())
return NS_OK; return NS_OK;
nsCOMPtr<nsIPresShell> presShell(do_QueryReferent(mWeakShell)); nsIPresShell* presShell(mDoc->PresShell());
nsCOMPtr<nsIDOMNode> DOMNode(do_QueryInterface(mContent)); nsCOMPtr<nsIDOMNode> DOMNode(do_QueryInterface(mContent));
return presShell->GetLinkLocation(DOMNode, aValue); return presShell->GetLinkLocation(DOMNode, aValue);
} }

View File

@ -45,7 +45,7 @@
class nsHTMLLinkAccessible : public nsHyperTextAccessibleWrap class nsHTMLLinkAccessible : public nsHyperTextAccessibleWrap
{ {
public: public:
nsHTMLLinkAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLLinkAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED

View File

@ -65,8 +65,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLSelectListAccessible:: nsHTMLSelectListAccessible::
nsHTMLSelectListAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLSelectListAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
mFlags |= eListControlAccessible; mFlags |= eListControlAccessible;
} }
@ -179,7 +179,7 @@ nsHTMLSelectListAccessible::CacheChildren()
void void
nsHTMLSelectListAccessible::CacheOptSiblings(nsIContent *aParentContent) nsHTMLSelectListAccessible::CacheOptSiblings(nsIContent *aParentContent)
{ {
nsCOMPtr<nsIPresShell> presShell(do_QueryReferent(mWeakShell)); nsIPresShell* presShell(mDoc->PresShell());
for (nsIContent* childContent = aParentContent->GetFirstChild(); childContent; for (nsIContent* childContent = aParentContent->GetFirstChild(); childContent;
childContent = childContent->GetNextSibling()) { childContent = childContent->GetNextSibling()) {
if (!childContent->IsHTML()) { if (!childContent->IsHTML()) {
@ -193,7 +193,7 @@ nsHTMLSelectListAccessible::CacheOptSiblings(nsIContent *aParentContent)
// Get an accessible for option or optgroup and cache it. // Get an accessible for option or optgroup and cache it.
nsRefPtr<nsAccessible> accessible = nsRefPtr<nsAccessible> accessible =
GetAccService()->GetOrCreateAccessible(childContent, presShell, GetAccService()->GetOrCreateAccessible(childContent, presShell,
mWeakShell); mDoc->GetWeakShell());
if (accessible) if (accessible)
AppendChild(accessible); AppendChild(accessible);
@ -210,8 +210,8 @@ nsHTMLSelectListAccessible::CacheOptSiblings(nsIContent *aParentContent)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLSelectOptionAccessible:: nsHTMLSelectOptionAccessible::
nsHTMLSelectOptionAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLSelectOptionAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }
@ -454,9 +454,9 @@ nsHTMLSelectOptionAccessible::GetSelectState(PRUint64* aState)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLSelectOptGroupAccessible:: nsHTMLSelectOptGroupAccessible::
nsHTMLSelectOptGroupAccessible(nsIContent *aContent, nsHTMLSelectOptGroupAccessible(nsIContent* aContent,
nsIWeakReference *aShell) : nsDocAccessible* aDoc) :
nsHTMLSelectOptionAccessible(aContent, aShell) nsHTMLSelectOptionAccessible(aContent, aDoc)
{ {
} }
@ -511,8 +511,8 @@ nsHTMLSelectOptGroupAccessible::CacheChildren()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLComboboxAccessible:: nsHTMLComboboxAccessible::
nsHTMLComboboxAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLComboboxAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
mFlags |= eComboboxAccessible; mFlags |= eComboboxAccessible;
} }
@ -552,7 +552,7 @@ nsHTMLComboboxAccessible::CacheChildren()
if (!mListAccessible) { if (!mListAccessible) {
mListAccessible = mListAccessible =
new nsHTMLComboboxListAccessible(mParent, mContent, mWeakShell); new nsHTMLComboboxListAccessible(mParent, mContent, mDoc);
// Initialize and put into cache. // Initialize and put into cache.
if (!GetDocAccessible()->BindToDocument(mListAccessible, nsnull)) if (!GetDocAccessible()->BindToDocument(mListAccessible, nsnull))
@ -733,9 +733,9 @@ nsHTMLComboboxAccessible::SelectedOption() const
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLComboboxListAccessible:: nsHTMLComboboxListAccessible::
nsHTMLComboboxListAccessible(nsIAccessible *aParent, nsIContent *aContent, nsHTMLComboboxListAccessible(nsIAccessible* aParent, nsIContent* aContent,
nsIWeakReference *aShell) : nsDocAccessible* aDoc) :
nsHTMLSelectListAccessible(aContent, aShell) nsHTMLSelectListAccessible(aContent, aDoc)
{ {
} }

View File

@ -68,7 +68,7 @@ class nsHTMLSelectListAccessible : public nsAccessibleWrap
{ {
public: public:
nsHTMLSelectListAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLSelectListAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsHTMLSelectListAccessible() {} virtual ~nsHTMLSelectListAccessible() {}
// nsAccessible // nsAccessible
@ -108,7 +108,7 @@ class nsHTMLSelectOptionAccessible : public nsHyperTextAccessibleWrap
public: public:
enum { eAction_Select = 0 }; enum { eAction_Select = 0 };
nsHTMLSelectOptionAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLSelectOptionAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsHTMLSelectOptionAccessible() {} virtual ~nsHTMLSelectOptionAccessible() {}
// nsIAccessible // nsIAccessible
@ -152,7 +152,7 @@ class nsHTMLSelectOptGroupAccessible : public nsHTMLSelectOptionAccessible
{ {
public: public:
nsHTMLSelectOptGroupAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLSelectOptGroupAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsHTMLSelectOptGroupAccessible() {} virtual ~nsHTMLSelectOptGroupAccessible() {}
// nsIAccessible // nsIAccessible
@ -185,7 +185,7 @@ class nsHTMLComboboxAccessible : public nsAccessibleWrap
public: public:
enum { eAction_Click = 0 }; enum { eAction_Click = 0 };
nsHTMLComboboxAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLComboboxAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsHTMLComboboxAccessible() {} virtual ~nsHTMLComboboxAccessible() {}
// nsIAccessible // nsIAccessible
@ -234,9 +234,9 @@ class nsHTMLComboboxListAccessible : public nsHTMLSelectListAccessible
{ {
public: public:
nsHTMLComboboxListAccessible(nsIAccessible *aParent, nsHTMLComboboxListAccessible(nsIAccessible* aParent,
nsIContent *aContent, nsIContent* aContent,
nsIWeakReference* aShell); nsDocAccessible* aDoc);
virtual ~nsHTMLComboboxListAccessible() {} virtual ~nsHTMLComboboxListAccessible() {}
// nsAccessNode // nsAccessNode

View File

@ -76,8 +76,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLTableCellAccessible:: nsHTMLTableCellAccessible::
nsHTMLTableCellAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLTableCellAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }
@ -347,9 +347,11 @@ nsHTMLTableCellAccessible::GetHeaderCells(PRInt32 aRowOrColumnHeaderCell,
else if (aRowOrColumnHeaderCell == nsAccUtils::eColumnHeaderCells) else if (aRowOrColumnHeaderCell == nsAccUtils::eColumnHeaderCells)
desiredRole = roles::COLUMNHEADER; desiredRole = roles::COLUMNHEADER;
nsIWeakReference* weakShell = mDoc->GetWeakShell();
do { do {
nsAccessible* headerCell = nsAccessible* headerCell =
GetAccService()->GetAccessibleInWeakShell(headerCellElm, mWeakShell); GetAccService()->GetAccessibleInWeakShell(headerCellElm, weakShell);
if (headerCell && headerCell->Role() == desiredRole) if (headerCell && headerCell->Role() == desiredRole)
headerCells->AppendElement(static_cast<nsIAccessible*>(headerCell), headerCells->AppendElement(static_cast<nsIAccessible*>(headerCell),
@ -376,9 +378,9 @@ nsHTMLTableCellAccessible::GetHeaderCells(PRInt32 aRowOrColumnHeaderCell,
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLTableHeaderCellAccessible:: nsHTMLTableHeaderCellAccessible::
nsHTMLTableHeaderCellAccessible(nsIContent *aContent, nsHTMLTableHeaderCellAccessible(nsIContent* aContent,
nsIWeakReference *aShell) : nsDocAccessible* aDoc) :
nsHTMLTableCellAccessible(aContent, aShell) nsHTMLTableCellAccessible(aContent, aDoc)
{ {
} }
@ -436,8 +438,8 @@ nsHTMLTableHeaderCellAccessible::NativeRole()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLTableAccessible:: nsHTMLTableAccessible::
nsHTMLTableAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLTableAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
} }
@ -458,7 +460,7 @@ nsHTMLTableAccessible::CacheChildren()
// caption only, because nsAccessibilityService ensures we don't create // caption only, because nsAccessibilityService ensures we don't create
// accessibles for the other captions, since only the first is actually // accessibles for the other captions, since only the first is actually
// visible. // visible.
nsAccTreeWalker walker(mWeakShell, mContent, GetAllowsAnonChildAccessibles()); nsAccTreeWalker walker(mDoc->GetWeakShell(), mContent, GetAllowsAnonChildAccessibles());
nsAccessible* child = nsnull; nsAccessible* child = nsnull;
while ((child = walker.NextChild())) { while ((child = walker.NextChild())) {
@ -704,6 +706,7 @@ nsHTMLTableAccessible::GetSelectedCells(nsIArray **aCells)
rowSpan, colSpan, actualRowSpan, actualColSpan; rowSpan, colSpan, actualRowSpan, actualColSpan;
bool isSelected = false; bool isSelected = false;
nsIWeakReference* weakShell = mDoc->GetWeakShell();
PRInt32 rowIndex, index; PRInt32 rowIndex, index;
for (rowIndex = 0, index = 0; rowIndex < rowCount; rowIndex++) { for (rowIndex = 0, index = 0; rowIndex < rowCount; rowIndex++) {
PRInt32 columnIndex; PRInt32 columnIndex;
@ -719,7 +722,7 @@ nsHTMLTableAccessible::GetSelectedCells(nsIArray **aCells)
startColIndex == columnIndex && isSelected) { startColIndex == columnIndex && isSelected) {
nsCOMPtr<nsIContent> cellContent(do_QueryInterface(cellElement)); nsCOMPtr<nsIContent> cellContent(do_QueryInterface(cellElement));
nsAccessible *cell = nsAccessible *cell =
GetAccService()->GetAccessibleInWeakShell(cellContent, mWeakShell); GetAccService()->GetAccessibleInWeakShell(cellContent, weakShell);
selCells->AppendElement(static_cast<nsIAccessible*>(cell), false); selCells->AppendElement(static_cast<nsIAccessible*>(cell), false);
} }
} }
@ -892,8 +895,8 @@ nsHTMLTableAccessible::GetCellAt(PRInt32 aRow, PRInt32 aColumn,
NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIContent> cellContent(do_QueryInterface(cellElement)); nsCOMPtr<nsIContent> cellContent(do_QueryInterface(cellElement));
nsAccessible *cell = nsAccessible* cell =
GetAccService()->GetAccessibleInWeakShell(cellContent, mWeakShell); GetAccService()->GetAccessibleInWeakShell(cellContent, mDoc->GetWeakShell());
if (!cell) { if (!cell) {
return NS_ERROR_INVALID_ARG; return NS_ERROR_INVALID_ARG;
@ -1194,7 +1197,7 @@ nsHTMLTableAccessible::AddRowOrColumnToSelection(PRInt32 aIndex,
NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIPresShell> presShell(GetPresShell()); nsIPresShell* presShell(mDoc->PresShell());
nsRefPtr<nsFrameSelection> tableSelection = nsRefPtr<nsFrameSelection> tableSelection =
const_cast<nsFrameSelection*>(presShell->ConstFrameSelection()); const_cast<nsFrameSelection*>(presShell->ConstFrameSelection());
@ -1226,7 +1229,7 @@ nsHTMLTableAccessible::RemoveRowsOrColumnsFromSelection(PRInt32 aIndex,
nsITableLayout *tableLayout = GetTableLayout(); nsITableLayout *tableLayout = GetTableLayout();
NS_ENSURE_STATE(tableLayout); NS_ENSURE_STATE(tableLayout);
nsCOMPtr<nsIPresShell> presShell(GetPresShell()); nsIPresShell* presShell(mDoc->PresShell());
nsRefPtr<nsFrameSelection> tableSelection = nsRefPtr<nsFrameSelection> tableSelection =
const_cast<nsFrameSelection*>(presShell->ConstFrameSelection()); const_cast<nsFrameSelection*>(presShell->ConstFrameSelection());

View File

@ -52,7 +52,7 @@ class nsHTMLTableCellAccessible : public nsHyperTextAccessibleWrap,
public nsIAccessibleTableCell public nsIAccessibleTableCell
{ {
public: public:
nsHTMLTableCellAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLTableCellAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsISupports // nsISupports
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
@ -95,8 +95,8 @@ protected:
class nsHTMLTableHeaderCellAccessible : public nsHTMLTableCellAccessible class nsHTMLTableHeaderCellAccessible : public nsHTMLTableCellAccessible
{ {
public: public:
nsHTMLTableHeaderCellAccessible(nsIContent *aContent, nsHTMLTableHeaderCellAccessible(nsIContent* aContent,
nsIWeakReference *aShell); nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
@ -124,7 +124,7 @@ class nsHTMLTableAccessible : public nsAccessibleWrap,
public nsIAccessibleTable public nsIAccessibleTable
{ {
public: public:
nsHTMLTableAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLTableAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
NS_DECL_NSIACCESSIBLETABLE NS_DECL_NSIACCESSIBLETABLE
@ -211,8 +211,9 @@ NS_DEFINE_STATIC_IID_ACCESSOR(nsHTMLTableAccessible,
class nsHTMLCaptionAccessible : public nsHyperTextAccessibleWrap class nsHTMLCaptionAccessible : public nsHyperTextAccessibleWrap
{ {
public: public:
nsHTMLCaptionAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLCaptionAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) { } nsHyperTextAccessibleWrap(aContent, aDoc) { }
virtual ~nsHTMLCaptionAccessible() { }
// nsIAccessible // nsIAccessible

View File

@ -61,8 +61,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLTextAccessible:: nsHTMLTextAccessible::
nsHTMLTextAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLTextAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsTextAccessibleWrap(aContent, aShell) nsTextAccessibleWrap(aContent, aDoc)
{ {
} }
@ -122,8 +122,8 @@ nsHTMLTextAccessible::GetAttributesInternal(nsIPersistentProperties *aAttributes
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLHRAccessible:: nsHTMLHRAccessible::
nsHTMLHRAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLHRAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsLeafAccessible(aContent, aShell) nsLeafAccessible(aContent, aDoc)
{ {
} }
@ -139,8 +139,8 @@ nsHTMLHRAccessible::NativeRole()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLBRAccessible:: nsHTMLBRAccessible::
nsHTMLBRAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLBRAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsLeafAccessible(aContent, aShell) nsLeafAccessible(aContent, aDoc)
{ {
} }
@ -168,8 +168,8 @@ nsHTMLBRAccessible::GetNameInternal(nsAString& aName)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLLabelAccessible:: nsHTMLLabelAccessible::
nsHTMLLabelAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLLabelAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }
@ -192,8 +192,8 @@ nsHTMLLabelAccessible::NativeRole()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLOutputAccessible:: nsHTMLOutputAccessible::
nsHTMLOutputAccessible(nsIContent* aContent, nsIWeakReference* aShell) : nsHTMLOutputAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }
@ -233,14 +233,14 @@ nsHTMLOutputAccessible::GetAttributesInternal(nsIPersistentProperties* aAttribut
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLLIAccessible:: nsHTMLLIAccessible::
nsHTMLLIAccessible(nsIContent* aContent, nsIWeakReference* aShell) : nsHTMLLIAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell), mBullet(nsnull) nsHyperTextAccessibleWrap(aContent, aDoc), mBullet(nsnull)
{ {
mFlags |= eHTMLListItemAccessible; mFlags |= eHTMLListItemAccessible;
nsBlockFrame* blockFrame = do_QueryFrame(GetFrame()); nsBlockFrame* blockFrame = do_QueryFrame(GetFrame());
if (blockFrame && blockFrame->HasBullet()) { if (blockFrame && blockFrame->HasBullet()) {
mBullet = new nsHTMLListBulletAccessible(mContent, mWeakShell); mBullet = new nsHTMLListBulletAccessible(mContent, mDoc);
if (!GetDocAccessible()->BindToDocument(mBullet, nsnull)) if (!GetDocAccessible()->BindToDocument(mBullet, nsnull))
mBullet = nsnull; mBullet = nsnull;
} }
@ -296,7 +296,7 @@ nsHTMLLIAccessible::UpdateBullet(bool aHasBullet)
nsDocAccessible* document = GetDocAccessible(); nsDocAccessible* document = GetDocAccessible();
if (aHasBullet) { if (aHasBullet) {
mBullet = new nsHTMLListBulletAccessible(mContent, mWeakShell); mBullet = new nsHTMLListBulletAccessible(mContent, mDoc);
if (document->BindToDocument(mBullet, nsnull)) { if (document->BindToDocument(mBullet, nsnull)) {
InsertChildAt(0, mBullet); InsertChildAt(0, mBullet);
} }
@ -328,8 +328,8 @@ nsHTMLLIAccessible::CacheChildren()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLListBulletAccessible:: nsHTMLListBulletAccessible::
nsHTMLListBulletAccessible(nsIContent* aContent, nsIWeakReference* aShell) : nsHTMLListBulletAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsLeafAccessible(aContent, aShell) nsLeafAccessible(aContent, aDoc)
{ {
} }
@ -400,8 +400,8 @@ nsHTMLListBulletAccessible::AppendTextTo(nsAString& aText, PRUint32 aStartOffset
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLListAccessible:: nsHTMLListAccessible::
nsHTMLListAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLListAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }

View File

@ -50,7 +50,7 @@
class nsHTMLTextAccessible : public nsTextAccessibleWrap class nsHTMLTextAccessible : public nsTextAccessibleWrap
{ {
public: public:
nsHTMLTextAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLTextAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsISupports // nsISupports
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
@ -70,7 +70,7 @@ public:
class nsHTMLHRAccessible : public nsLeafAccessible class nsHTMLHRAccessible : public nsLeafAccessible
{ {
public: public:
nsHTMLHRAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLHRAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
@ -82,7 +82,7 @@ public:
class nsHTMLBRAccessible : public nsLeafAccessible class nsHTMLBRAccessible : public nsLeafAccessible
{ {
public: public:
nsHTMLBRAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLBRAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual nsresult GetNameInternal(nsAString& aName); virtual nsresult GetNameInternal(nsAString& aName);
@ -96,7 +96,7 @@ public:
class nsHTMLLabelAccessible : public nsHyperTextAccessibleWrap class nsHTMLLabelAccessible : public nsHyperTextAccessibleWrap
{ {
public: public:
nsHTMLLabelAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLLabelAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
@ -111,7 +111,7 @@ public:
class nsHTMLOutputAccessible : public nsHyperTextAccessibleWrap class nsHTMLOutputAccessible : public nsHyperTextAccessibleWrap
{ {
public: public:
nsHTMLOutputAccessible(nsIContent* aContent, nsIWeakReference* aShell); nsHTMLOutputAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
@ -127,7 +127,7 @@ public:
class nsHTMLListBulletAccessible : public nsLeafAccessible class nsHTMLListBulletAccessible : public nsLeafAccessible
{ {
public: public:
nsHTMLListBulletAccessible(nsIContent* aContent, nsIWeakReference* aShell); nsHTMLListBulletAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetName(nsAString& aName); NS_IMETHOD GetName(nsAString& aName);
@ -148,7 +148,7 @@ public:
class nsHTMLListAccessible : public nsHyperTextAccessibleWrap class nsHTMLListAccessible : public nsHyperTextAccessibleWrap
{ {
public: public:
nsHTMLListAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHTMLListAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsISupports // nsISupports
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
@ -164,7 +164,7 @@ public:
class nsHTMLLIAccessible : public nsHyperTextAccessibleWrap class nsHTMLLIAccessible : public nsHyperTextAccessibleWrap
{ {
public: public:
nsHTMLLIAccessible(nsIContent* aContent, nsIWeakReference* aShell); nsHTMLLIAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsISupports // nsISupports
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED

View File

@ -41,6 +41,7 @@
#include "nsAccessibilityService.h" #include "nsAccessibilityService.h"
#include "nsAccUtils.h" #include "nsAccUtils.h"
#include "nsDocAccessible.h"
#include "nsTextAttrs.h" #include "nsTextAttrs.h"
#include "Role.h" #include "Role.h"
#include "States.h" #include "States.h"
@ -71,8 +72,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHyperTextAccessible:: nsHyperTextAccessible::
nsHyperTextAccessible(nsIContent *aNode, nsIWeakReference *aShell) : nsHyperTextAccessible(nsIContent* aNode, nsDocAccessible* aDoc) :
nsAccessibleWrap(aNode, aShell) nsAccessibleWrap(aNode, aDoc)
{ {
mFlags |= eHyperTextAccessible; mFlags |= eHyperTextAccessible;
} }
@ -209,7 +210,8 @@ nsIntRect nsHyperTextAccessible::GetBoundsForString(nsIFrame *aFrame, PRUint32 a
&startContentOffsetInFrame, &frame); &startContentOffsetInFrame, &frame);
NS_ENSURE_SUCCESS(rv, screenRect); NS_ENSURE_SUCCESS(rv, screenRect);
nsCOMPtr<nsIPresShell> shell = GetPresShell(); NS_ENSURE_TRUE(mDoc, screenRect);
nsIPresShell* shell = mDoc->PresShell();
NS_ENSURE_TRUE(shell, screenRect); NS_ENSURE_TRUE(shell, screenRect);
nsPresContext *context = shell->GetPresContext(); nsPresContext *context = shell->GetPresContext();
@ -882,7 +884,10 @@ nsresult nsHyperTextAccessible::GetTextHelper(EGetTextType aType, nsAccessibleTe
NS_ENSURE_ARG_POINTER(aEndOffset); NS_ENSURE_ARG_POINTER(aEndOffset);
*aStartOffset = *aEndOffset = 0; *aStartOffset = *aEndOffset = 0;
nsCOMPtr<nsIPresShell> presShell = GetPresShell(); if (!mDoc)
return NS_ERROR_FAILURE;
nsIPresShell* presShell = mDoc->PresShell();
if (!presShell) { if (!presShell) {
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
} }
@ -1293,7 +1298,10 @@ nsHyperTextAccessible::GetOffsetAtPoint(PRInt32 aX, PRInt32 aY,
PRUint32 aCoordType, PRInt32 *aOffset) PRUint32 aCoordType, PRInt32 *aOffset)
{ {
*aOffset = -1; *aOffset = -1;
nsCOMPtr<nsIPresShell> shell = GetPresShell(); if (!mDoc)
return NS_ERROR_FAILURE;
nsIPresShell* shell = mDoc->PresShell();
if (!shell) { if (!shell) {
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
} }
@ -1543,14 +1551,12 @@ nsHyperTextAccessible::GetAssociatedEditor(nsIEditor **aEditor)
if (!editingSession) if (!editingSession)
return NS_OK; // No editing session interface return NS_OK; // No editing session interface
nsCOMPtr<nsIPresShell> shell = GetPresShell(); NS_ENSURE_TRUE(mDoc, NS_ERROR_FAILURE);
NS_ENSURE_TRUE(shell, NS_ERROR_FAILURE); nsIDocument* docNode = mDoc->GetDocumentNode();
NS_ENSURE_TRUE(docNode, NS_ERROR_FAILURE);
nsCOMPtr<nsIDocument> doc = shell->GetDocument();
NS_ENSURE_TRUE(doc, NS_ERROR_FAILURE);
nsCOMPtr<nsIEditor> editor; nsCOMPtr<nsIEditor> editor;
return editingSession->GetEditorForWindow(doc->GetWindow(), aEditor); return editingSession->GetEditorForWindow(docNode->GetWindow(), aEditor);
} }
/** /**
@ -1588,11 +1594,10 @@ nsHyperTextAccessible::SetSelectionRange(PRInt32 aStartPos, PRInt32 aEndPos)
// Now that selection is done, move the focus to the selection. // Now that selection is done, move the focus to the selection.
nsFocusManager* DOMFocusManager = nsFocusManager::GetFocusManager(); nsFocusManager* DOMFocusManager = nsFocusManager::GetFocusManager();
if (DOMFocusManager) { if (DOMFocusManager) {
nsCOMPtr<nsIPresShell> shell = GetPresShell(); NS_ENSURE_TRUE(mDoc, NS_ERROR_FAILURE);
NS_ENSURE_TRUE(shell, NS_ERROR_FAILURE); nsIDocument* docNode = mDoc->GetDocumentNode();
nsCOMPtr<nsIDocument> doc = shell->GetDocument(); NS_ENSURE_TRUE(docNode, NS_ERROR_FAILURE);
NS_ENSURE_TRUE(doc, NS_ERROR_FAILURE); nsCOMPtr<nsPIDOMWindow> window = docNode->GetWindow();
nsCOMPtr<nsPIDOMWindow> window = doc->GetWindow();
nsCOMPtr<nsIDOMElement> result; nsCOMPtr<nsIDOMElement> result;
DOMFocusManager->MoveFocus(window, nsnull, nsIFocusManager::MOVEFOCUS_CARET, DOMFocusManager->MoveFocus(window, nsnull, nsIFocusManager::MOVEFOCUS_CARET,
nsIFocusManager::FLAG_BYMOVEFOCUS, getter_AddRefs(result)); nsIFocusManager::FLAG_BYMOVEFOCUS, getter_AddRefs(result));

View File

@ -76,7 +76,9 @@ class nsHyperTextAccessible : public nsAccessibleWrap,
public nsIAccessibleEditableText public nsIAccessibleEditableText
{ {
public: public:
nsHyperTextAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsHyperTextAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsHyperTextAccessible() { }
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
NS_DECL_NSIACCESSIBLETEXT NS_DECL_NSIACCESSIBLETEXT
NS_DECL_NSIACCESSIBLEHYPERTEXT NS_DECL_NSIACCESSIBLEHYPERTEXT

View File

@ -47,12 +47,12 @@
class nsAccessNodeWrap : public nsAccessNode class nsAccessNodeWrap : public nsAccessNode
{ {
public: // construction, destruction public:
nsAccessNodeWrap(nsIContent *aContent, nsIWeakReference *aShell); nsAccessNodeWrap(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsAccessNodeWrap(); virtual ~nsAccessNodeWrap();
static void InitAccessibility(); static void InitAccessibility();
static void ShutdownAccessibility(); static void ShutdownAccessibility();
}; };
#endif #endif

View File

@ -52,8 +52,8 @@
//----------------------------------------------------- //-----------------------------------------------------
nsAccessNodeWrap:: nsAccessNodeWrap::
nsAccessNodeWrap(nsIContent *aContent, nsIWeakReference *aShell) : nsAccessNodeWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessNode(aContent, aShell) nsAccessNode(aContent, aDoc)
{ {
} }

View File

@ -62,7 +62,7 @@
class nsAccessibleWrap : public nsAccessible class nsAccessibleWrap : public nsAccessible
{ {
public: // construction, destruction public: // construction, destruction
nsAccessibleWrap(nsIContent* aContent, nsIWeakReference* aShell); nsAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsAccessibleWrap(); virtual ~nsAccessibleWrap();
/** /**

View File

@ -51,8 +51,8 @@
using namespace mozilla::a11y; using namespace mozilla::a11y;
nsAccessibleWrap:: nsAccessibleWrap::
nsAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell) : nsAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessible(aContent, aShell), mNativeObject(nil), nsAccessible(aContent, aDoc), mNativeObject(nil),
mNativeInited(false) mNativeInited(false)
{ {
} }

View File

@ -53,8 +53,8 @@ class nsARIAGridAccessibleWrap : public nsARIAGridAccessible,
public CAccessibleTable public CAccessibleTable
{ {
public: public:
nsARIAGridAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell) : nsARIAGridAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsARIAGridAccessible(aContent, aShell) {} nsARIAGridAccessible(aContent, aDoc) {}
// IUnknown // IUnknown
DECL_IUNKNOWN_INHERITED DECL_IUNKNOWN_INHERITED
@ -71,8 +71,8 @@ class nsARIAGridCellAccessibleWrap : public nsARIAGridCellAccessible,
public CAccessibleTableCell public CAccessibleTableCell
{ {
public: public:
nsARIAGridCellAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell) : nsARIAGridCellAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsARIAGridCellAccessible(aContent, aShell) {} nsARIAGridCellAccessible(aContent, aDoc) {}
// IUnknown // IUnknown
DECL_IUNKNOWN_INHERITED DECL_IUNKNOWN_INHERITED

View File

@ -78,8 +78,8 @@ AccTextChangeEvent* nsAccessNodeWrap::gTextEvent = nsnull;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsAccessNodeWrap:: nsAccessNodeWrap::
nsAccessNodeWrap(nsIContent *aContent, nsIWeakReference *aShell) : nsAccessNodeWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessNode(aContent, aShell) nsAccessNode(aContent, aDoc)
{ {
} }
@ -421,8 +421,7 @@ nsAccessNodeWrap::MakeAccessNode(nsINode *aNode)
nsAccessNodeWrap *newNode = NULL; nsAccessNodeWrap *newNode = NULL;
ISimpleDOMNode *iNode = NULL; ISimpleDOMNode *iNode = NULL;
nsAccessible *acc = nsAccessible* acc = mDoc->GetAccessible(aNode);
GetAccService()->GetAccessibleInWeakShell(aNode, mWeakShell);
if (acc) { if (acc) {
IAccessible *msaaAccessible = nsnull; IAccessible *msaaAccessible = nsnull;
acc->GetNativeInterface((void**)&msaaAccessible); // addrefs acc->GetNativeInterface((void**)&msaaAccessible); // addrefs
@ -436,7 +435,7 @@ nsAccessNodeWrap::MakeAccessNode(nsINode *aNode)
return NULL; return NULL;
} }
newNode = new nsAccessNodeWrap(content, mWeakShell); newNode = new nsAccessNodeWrap(content, mDoc);
if (!newNode) if (!newNode)
return NULL; return NULL;

View File

@ -85,7 +85,7 @@ class nsAccessNodeWrap : public nsAccessNode,
STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void** ppv); STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void** ppv);
public: // construction, destruction public: // construction, destruction
nsAccessNodeWrap(nsIContent *aContent, nsIWeakReference *aShell); nsAccessNodeWrap(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsAccessNodeWrap(); virtual ~nsAccessNodeWrap();
// IUnknown // IUnknown

View File

@ -97,8 +97,8 @@ ITypeInfo* nsAccessibleWrap::gTypeInfo = NULL;
// construction // construction
//----------------------------------------------------- //-----------------------------------------------------
nsAccessibleWrap:: nsAccessibleWrap::
nsAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell) : nsAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessible(aContent, aShell), mEnumVARIANTPosition(0) nsAccessible(aContent, aDoc), mEnumVARIANTPosition(0)
{ {
} }
@ -1550,7 +1550,7 @@ nsAccessibleWrap::FirePlatformEvent(AccEvent* aEvent)
return NS_OK; return NS_OK;
// Means we're not active. // Means we're not active.
NS_ENSURE_TRUE(mWeakShell, NS_ERROR_FAILURE); NS_ENSURE_TRUE(!IsDefunct(), NS_ERROR_FAILURE);
nsAccessible *accessible = aEvent->GetAccessible(); nsAccessible *accessible = aEvent->GetAccessible();
if (!accessible) if (!accessible)
@ -1621,6 +1621,10 @@ HWND
nsAccessibleWrap::GetHWNDFor(nsAccessible *aAccessible) nsAccessibleWrap::GetHWNDFor(nsAccessible *aAccessible)
{ {
if (aAccessible) { if (aAccessible) {
nsDocAccessible* document = aAccessible->GetDocAccessible();
if(!document)
return nsnull;
// Popup lives in own windows, use its HWND until the popup window is // Popup lives in own windows, use its HWND until the popup window is
// hidden to make old JAWS versions work with collapsed comboboxes (see // hidden to make old JAWS versions work with collapsed comboboxes (see
// discussion in bug 379678). // discussion in bug 379678).
@ -1631,7 +1635,7 @@ nsAccessibleWrap::GetHWNDFor(nsAccessible *aAccessible)
bool isVisible = false; bool isVisible = false;
widget->IsVisible(isVisible); widget->IsVisible(isVisible);
if (isVisible) { if (isVisible) {
nsCOMPtr<nsIPresShell> shell(aAccessible->GetPresShell()); nsCOMPtr<nsIPresShell> shell(document->PresShell());
nsIViewManager* vm = shell->GetViewManager(); nsIViewManager* vm = shell->GetViewManager();
if (vm) { if (vm) {
nsCOMPtr<nsIWidget> rootWidget; nsCOMPtr<nsIWidget> rootWidget;
@ -1646,9 +1650,7 @@ nsAccessibleWrap::GetHWNDFor(nsAccessible *aAccessible)
} }
} }
nsDocAccessible* document = aAccessible->GetDocAccessible(); return static_cast<HWND>(document->GetNativeWindow());
if (document)
return static_cast<HWND>(document->GetNativeWindow());
} }
return nsnull; return nsnull;
} }

View File

@ -104,7 +104,7 @@ class nsAccessibleWrap : public nsAccessible,
public IEnumVARIANT public IEnumVARIANT
{ {
public: // construction, destruction public: // construction, destruction
nsAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell); nsAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsAccessibleWrap(); virtual ~nsAccessibleWrap();
// nsISupports // nsISupports

View File

@ -48,8 +48,8 @@ class nsHTMLImageAccessibleWrap : public nsHTMLImageAccessible,
public CAccessibleImage public CAccessibleImage
{ {
public: public:
nsHTMLImageAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLImageAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHTMLImageAccessible(aContent, aShell) {} nsHTMLImageAccessible(aContent, aDoc) {}
// IUnknown // IUnknown
DECL_IUNKNOWN_INHERITED DECL_IUNKNOWN_INHERITED

View File

@ -54,8 +54,8 @@ class nsHTMLTableAccessibleWrap : public nsHTMLTableAccessible,
public CAccessibleTable public CAccessibleTable
{ {
public: public:
nsHTMLTableAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLTableAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHTMLTableAccessible(aContent, aShell) {} nsHTMLTableAccessible(aContent, aDoc) {}
// IUnknown // IUnknown
DECL_IUNKNOWN_INHERITED DECL_IUNKNOWN_INHERITED
@ -73,8 +73,8 @@ class nsHTMLTableCellAccessibleWrap : public nsHTMLTableCellAccessible,
public CAccessibleTableCell public CAccessibleTableCell
{ {
public: public:
nsHTMLTableCellAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell) : nsHTMLTableCellAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHTMLTableCellAccessible(aContent, aShell) {} nsHTMLTableCellAccessible(aContent, aDoc) {}
// IUnknown // IUnknown
DECL_IUNKNOWN_INHERITED DECL_IUNKNOWN_INHERITED
@ -92,9 +92,9 @@ class nsHTMLTableHeaderCellAccessibleWrap : public nsHTMLTableHeaderCellAccessib
public CAccessibleTableCell public CAccessibleTableCell
{ {
public: public:
nsHTMLTableHeaderCellAccessibleWrap(nsIContent *aContent, nsHTMLTableHeaderCellAccessibleWrap(nsIContent* aContent,
nsIWeakReference *aShell) : nsDocAccessible* aDoc) :
nsHTMLTableHeaderCellAccessible(aContent, aShell) {} nsHTMLTableHeaderCellAccessible(aContent, aDoc) {}
// IUnknown // IUnknown
DECL_IUNKNOWN_INHERITED DECL_IUNKNOWN_INHERITED

View File

@ -48,9 +48,9 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsHTMLWin32ObjectOwnerAccessible:: nsHTMLWin32ObjectOwnerAccessible::
nsHTMLWin32ObjectOwnerAccessible(nsIContent *aContent, nsHTMLWin32ObjectOwnerAccessible(nsIContent* aContent,
nsIWeakReference *aShell, void *aHwnd) : nsDocAccessible* aDoc, void* aHwnd) :
nsAccessibleWrap(aContent, aShell), mHwnd(aHwnd) nsAccessibleWrap(aContent, aDoc), mHwnd(aHwnd)
{ {
// Our only child is a nsHTMLWin32ObjectAccessible object. // Our only child is a nsHTMLWin32ObjectAccessible object.
mNativeAccessible = new nsHTMLWin32ObjectAccessible(mHwnd); mNativeAccessible = new nsHTMLWin32ObjectAccessible(mHwnd);

View File

@ -53,8 +53,8 @@ public:
// because the native plugin accessible doesn't know where it exists in the // because the native plugin accessible doesn't know where it exists in the
// Mozilla tree, and returns null for previous and next sibling. This would // Mozilla tree, and returns null for previous and next sibling. This would
// have the effect of cutting off all content after the plugin. // have the effect of cutting off all content after the plugin.
nsHTMLWin32ObjectOwnerAccessible(nsIContent *aContent, nsHTMLWin32ObjectOwnerAccessible(nsIContent* aContent,
nsIWeakReference *aShell, void *aHwnd); nsDocAccessible* aDoc, void* aHwnd);
virtual ~nsHTMLWin32ObjectOwnerAccessible() {} virtual ~nsHTMLWin32ObjectOwnerAccessible() {}
// nsAccessNode // nsAccessNode

View File

@ -51,8 +51,8 @@ class nsHyperTextAccessibleWrap : public nsHyperTextAccessible,
public CAccessibleEditableText public CAccessibleEditableText
{ {
public: public:
nsHyperTextAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell) : nsHyperTextAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessible(aContent, aShell) {} nsHyperTextAccessible(aContent, aDoc) {}
// IUnknown // IUnknown
DECL_IUNKNOWN_INHERITED DECL_IUNKNOWN_INHERITED

View File

@ -56,8 +56,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsTextAccessibleWrap:: nsTextAccessibleWrap::
nsTextAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell) : nsTextAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsTextAccessible(aContent, aShell) nsTextAccessible(aContent, aDoc)
{ {
} }

View File

@ -50,7 +50,7 @@ class nsTextAccessibleWrap : public nsTextAccessible,
public ISimpleDOMText public ISimpleDOMText
{ {
public: public:
nsTextAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell); nsTextAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsTextAccessibleWrap() {} virtual ~nsTextAccessibleWrap() {}
// IUnknown methods - see iunknown.h for documentation // IUnknown methods - see iunknown.h for documentation

View File

@ -43,8 +43,8 @@
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULListboxAccessibleWrap:: nsXULListboxAccessibleWrap::
nsXULListboxAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell) : nsXULListboxAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXULListboxAccessible(aContent, aShell) nsXULListboxAccessible(aContent, aDoc)
{ {
} }
@ -62,8 +62,8 @@ IMPL_IUNKNOWN_QUERY_TAIL
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULListCellAccessibleWrap:: nsXULListCellAccessibleWrap::
nsXULListCellAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell) : nsXULListCellAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXULListCellAccessible(aContent, aShell) nsXULListCellAccessible(aContent, aDoc)
{ {
} }

View File

@ -52,7 +52,7 @@ class nsXULListboxAccessibleWrap : public nsXULListboxAccessible,
public CAccessibleTable public CAccessibleTable
{ {
public: public:
nsXULListboxAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell); nsXULListboxAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc);
// IUnknown // IUnknown
DECL_IUNKNOWN_INHERITED DECL_IUNKNOWN_INHERITED
@ -69,7 +69,7 @@ class nsXULListCellAccessibleWrap : public nsXULListCellAccessible,
public CAccessibleTableCell public CAccessibleTableCell
{ {
public: public:
nsXULListCellAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell); nsXULListCellAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc);
// IUnknown // IUnknown
DECL_IUNKNOWN_INHERITED DECL_IUNKNOWN_INHERITED

View File

@ -43,8 +43,8 @@
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULMenuitemAccessibleWrap:: nsXULMenuitemAccessibleWrap::
nsXULMenuitemAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell) : nsXULMenuitemAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXULMenuitemAccessible(aContent, aShell) nsXULMenuitemAccessible(aContent, aDoc)
{ {
} }

View File

@ -43,7 +43,7 @@
class nsXULMenuitemAccessibleWrap : public nsXULMenuitemAccessible class nsXULMenuitemAccessibleWrap : public nsXULMenuitemAccessible
{ {
public: public:
nsXULMenuitemAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell); nsXULMenuitemAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsXULMenuitemAccessibleWrap() {} virtual ~nsXULMenuitemAccessibleWrap() {}
// nsIAccessible // nsIAccessible

View File

@ -44,8 +44,8 @@
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULTreeGridAccessibleWrap:: nsXULTreeGridAccessibleWrap::
nsXULTreeGridAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell) : nsXULTreeGridAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXULTreeGridAccessible(aContent, aShell) nsXULTreeGridAccessible(aContent, aDoc)
{ {
} }
@ -62,13 +62,13 @@ IMPL_IUNKNOWN_INHERITED1(nsXULTreeGridAccessibleWrap,
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULTreeGridCellAccessibleWrap:: nsXULTreeGridCellAccessibleWrap::
nsXULTreeGridCellAccessibleWrap(nsIContent *aContent, nsXULTreeGridCellAccessibleWrap(nsIContent* aContent,
nsIWeakReference *aShell, nsDocAccessible* aDoc,
nsXULTreeGridRowAccessible *aRowAcc, nsXULTreeGridRowAccessible* aRowAcc,
nsITreeBoxObject *aTree, nsITreeBoxObject* aTree,
nsITreeView *aTreeView, nsITreeView* aTreeView,
PRInt32 aRow, nsITreeColumn* aColumn) : PRInt32 aRow, nsITreeColumn* aColumn) :
nsXULTreeGridCellAccessible(aContent, aShell, aRowAcc, aTree, aTreeView, nsXULTreeGridCellAccessible(aContent, aDoc, aRowAcc, aTree, aTreeView,
aRow, aColumn) aRow, aColumn)
{ {
} }

View File

@ -53,7 +53,7 @@ class nsXULTreeGridAccessibleWrap : public nsXULTreeGridAccessible,
public CAccessibleTable public CAccessibleTable
{ {
public: public:
nsXULTreeGridAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell); nsXULTreeGridAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc);
// IUnknown // IUnknown
DECL_IUNKNOWN_INHERITED DECL_IUNKNOWN_INHERITED
@ -70,11 +70,11 @@ class nsXULTreeGridCellAccessibleWrap : public nsXULTreeGridCellAccessible,
public CAccessibleTableCell public CAccessibleTableCell
{ {
public: public:
nsXULTreeGridCellAccessibleWrap(nsIContent *aContent, nsXULTreeGridCellAccessibleWrap(nsIContent* aContent,
nsIWeakReference *aShell, nsDocAccessible* aDoc,
nsXULTreeGridRowAccessible *aRowAcc, nsXULTreeGridRowAccessible* aRowAcc,
nsITreeBoxObject *aTree, nsITreeBoxObject* aTree,
nsITreeView *aTreeView, nsITreeView* aTreeView,
PRInt32 aRow, nsITreeColumn* aColumn); PRInt32 aRow, nsITreeColumn* aColumn);
// IUnknown // IUnknown

View File

@ -52,8 +52,8 @@
//----------------------------------------------------- //-----------------------------------------------------
nsAccessNodeWrap:: nsAccessNodeWrap::
nsAccessNodeWrap(nsIContent *aContent, nsIWeakReference* aShell) : nsAccessNodeWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessNode(aContent, aShell) nsAccessNode(aContent, aDoc)
{ {
} }

View File

@ -48,7 +48,7 @@
class nsAccessNodeWrap : public nsAccessNode class nsAccessNodeWrap : public nsAccessNode
{ {
public: // construction, destruction public: // construction, destruction
nsAccessNodeWrap(nsIContent *aContent, nsIWeakReference* aShell); nsAccessNodeWrap(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsAccessNodeWrap(); virtual ~nsAccessNodeWrap();
static void InitAccessibility(); static void InitAccessibility();

View File

@ -42,8 +42,8 @@
// construction // construction
//----------------------------------------------------- //-----------------------------------------------------
nsAccessibleWrap:: nsAccessibleWrap::
nsAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell) : nsAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessible(aContent, aShell) nsAccessible(aContent, aDoc)
{ {
} }

View File

@ -49,7 +49,7 @@
class nsAccessibleWrap : public nsAccessible class nsAccessibleWrap : public nsAccessible
{ {
public: // construction, destruction public: // construction, destruction
nsAccessibleWrap(nsIContent *aContent, nsIWeakReference *aShell); nsAccessibleWrap(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsAccessibleWrap(); virtual ~nsAccessibleWrap();
protected: protected:

View File

@ -40,6 +40,7 @@
#include "nsAccessibilityService.h" #include "nsAccessibilityService.h"
#include "nsAccUtils.h" #include "nsAccUtils.h"
#include "nsDocAccessible.h"
#include "nsTextEquivUtils.h" #include "nsTextEquivUtils.h"
#include "Role.h" #include "Role.h"
#include "States.h" #include "States.h"
@ -77,8 +78,8 @@ nsXFormsAccessibleBase::nsXFormsAccessibleBase()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsAccessible:: nsXFormsAccessible::
nsXFormsAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }
@ -123,7 +124,7 @@ nsXFormsAccessible::CacheSelectChildren(nsIDOMNode *aContainerNode)
if (!children) if (!children)
return; return;
nsCOMPtr<nsIPresShell> presShell(do_QueryReferent(mWeakShell)); nsIPresShell* presShell(mDoc->PresShell());
PRUint32 length = 0; PRUint32 length = 0;
children->GetLength(&length); children->GetLength(&length);
@ -136,7 +137,7 @@ nsXFormsAccessible::CacheSelectChildren(nsIDOMNode *aContainerNode)
nsCOMPtr<nsIContent> child(do_QueryInterface(DOMChild)); nsCOMPtr<nsIContent> child(do_QueryInterface(DOMChild));
nsAccessible* accessible = nsAccessible* accessible =
GetAccService()->GetOrCreateAccessible(child, presShell, mWeakShell); GetAccService()->GetOrCreateAccessible(child, presShell, mDoc->GetWeakShell());
if (!accessible) if (!accessible)
continue; continue;
@ -224,8 +225,8 @@ nsXFormsAccessible::GetAllowsAnonChildAccessibles()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsContainerAccessible:: nsXFormsContainerAccessible::
nsXFormsContainerAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsContainerAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXFormsAccessible(aContent, aShell) nsXFormsAccessible(aContent, aDoc)
{ {
} }
@ -247,8 +248,8 @@ nsXFormsContainerAccessible::GetAllowsAnonChildAccessibles()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsEditableAccessible:: nsXFormsEditableAccessible::
nsXFormsEditableAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsEditableAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXFormsAccessible(aContent, aShell) nsXFormsAccessible(aContent, aDoc)
{ {
} }
@ -297,8 +298,8 @@ nsXFormsEditableAccessible::GetAssociatedEditor(nsIEditor **aEditor)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsSelectableAccessible:: nsXFormsSelectableAccessible::
nsXFormsSelectableAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsSelectableAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXFormsEditableAccessible(aContent, aShell), mIsSelect1Element(nsnull) nsXFormsEditableAccessible(aContent, aDoc), mIsSelect1Element(nsnull)
{ {
mIsSelect1Element = mIsSelect1Element =
mContent->NodeInfo()->Equals(nsGkAtoms::select1); mContent->NodeInfo()->Equals(nsGkAtoms::select1);
@ -325,12 +326,12 @@ nsXFormsSelectableAccessible::SelectedItems()
nsCOMPtr<nsIDOMNode> itemDOMNode; nsCOMPtr<nsIDOMNode> itemDOMNode;
rv = sXFormsService->GetSelectedItemForSelect1(DOMNode, rv = sXFormsService->GetSelectedItemForSelect1(DOMNode,
getter_AddRefs(itemDOMNode)); getter_AddRefs(itemDOMNode));
if (NS_FAILED(rv) || !itemDOMNode) if (NS_FAILED(rv) || !itemDOMNode || !mDoc)
return nsnull; return nsnull;
nsCOMPtr<nsINode> itemNode(do_QueryInterface(itemDOMNode)); nsCOMPtr<nsINode> itemNode(do_QueryInterface(itemDOMNode));
nsIAccessible* item = GetAccService()->GetAccessibleInWeakShell(itemNode, nsIAccessible* item = GetAccService()->GetAccessibleInWeakShell(itemNode,
mWeakShell); mDoc->GetWeakShell());
if (item) if (item)
selectedItems->AppendElement(item, false); selectedItems->AppendElement(item, false);
@ -342,11 +343,12 @@ nsXFormsSelectableAccessible::SelectedItems()
nsCOMPtr<nsIDOMNodeList> itemNodeList; nsCOMPtr<nsIDOMNodeList> itemNodeList;
rv = sXFormsService->GetSelectedItemsForSelect(DOMNode, rv = sXFormsService->GetSelectedItemsForSelect(DOMNode,
getter_AddRefs(itemNodeList)); getter_AddRefs(itemNodeList));
if (NS_FAILED(rv) || !itemNodeList) if (NS_FAILED(rv) || !itemNodeList || !mDoc)
return nsnull; return nsnull;
PRUint32 length = 0; PRUint32 length = 0;
itemNodeList->GetLength(&length); itemNodeList->GetLength(&length);
for (PRUint32 index = 0; index < length; index++) { for (PRUint32 index = 0; index < length; index++) {
nsCOMPtr<nsIDOMNode> itemDOMNode; nsCOMPtr<nsIDOMNode> itemDOMNode;
itemNodeList->Item(index, getter_AddRefs(itemDOMNode)); itemNodeList->Item(index, getter_AddRefs(itemDOMNode));
@ -354,8 +356,7 @@ nsXFormsSelectableAccessible::SelectedItems()
return nsnull; return nsnull;
nsCOMPtr<nsINode> itemNode(do_QueryInterface(itemDOMNode)); nsCOMPtr<nsINode> itemNode(do_QueryInterface(itemDOMNode));
nsIAccessible* item = GetAccService()->GetAccessibleInWeakShell(itemNode, nsIAccessible* item = mDoc->GetAccessible(itemNode);
mWeakShell);
if (item) if (item)
selectedItems->AppendElement(item, false); selectedItems->AppendElement(item, false);
} }
@ -430,6 +431,9 @@ nsXFormsSelectableAccessible::RemoveItemFromSelection(PRUint32 aIndex)
nsAccessible* nsAccessible*
nsXFormsSelectableAccessible::GetSelectedItem(PRUint32 aIndex) nsXFormsSelectableAccessible::GetSelectedItem(PRUint32 aIndex)
{ {
if (!mDoc)
return nsnull;
nsresult rv; nsresult rv;
nsCOMPtr<nsIDOMNode> DOMNode(do_QueryInterface(mContent)); nsCOMPtr<nsIDOMNode> DOMNode(do_QueryInterface(mContent));
if (mIsSelect1Element) { if (mIsSelect1Element) {
@ -441,7 +445,7 @@ nsXFormsSelectableAccessible::GetSelectedItem(PRUint32 aIndex)
getter_AddRefs(itemDOMNode)); getter_AddRefs(itemDOMNode));
if (NS_SUCCEEDED(rv) && itemDOMNode) { if (NS_SUCCEEDED(rv) && itemDOMNode) {
nsCOMPtr<nsINode> itemNode(do_QueryInterface(itemDOMNode)); nsCOMPtr<nsINode> itemNode(do_QueryInterface(itemDOMNode));
return GetAccService()->GetAccessibleInWeakShell(itemNode, mWeakShell); return mDoc->GetAccessible(itemNode);
} }
return nsnull; return nsnull;
} }
@ -456,7 +460,7 @@ nsXFormsSelectableAccessible::GetSelectedItem(PRUint32 aIndex)
itemNodeList->Item(aIndex, getter_AddRefs(itemDOMNode)); itemNodeList->Item(aIndex, getter_AddRefs(itemDOMNode));
nsCOMPtr<nsINode> itemNode(do_QueryInterface(itemDOMNode)); nsCOMPtr<nsINode> itemNode(do_QueryInterface(itemDOMNode));
return GetAccService()->GetAccessibleInWeakShell(itemNode, mWeakShell); return mDoc->GetAccessible(itemNode);
} }
bool bool
@ -534,9 +538,9 @@ nsXFormsSelectableAccessible::GetItemByIndex(PRUint32* aIndex,
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsSelectableItemAccessible:: nsXFormsSelectableItemAccessible::
nsXFormsSelectableItemAccessible(nsIContent *aContent, nsXFormsSelectableItemAccessible(nsIContent* aContent,
nsIWeakReference *aShell) : nsDocAccessible* aDoc) :
nsXFormsAccessible(aContent, aShell) nsXFormsAccessible(aContent, aDoc)
{ {
} }

View File

@ -70,7 +70,7 @@ class nsXFormsAccessible : public nsHyperTextAccessibleWrap,
public nsXFormsAccessibleBase public nsXFormsAccessibleBase
{ {
public: public:
nsXFormsAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXFormsAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
@ -124,7 +124,7 @@ protected:
class nsXFormsContainerAccessible : public nsXFormsAccessible class nsXFormsContainerAccessible : public nsXFormsAccessible
{ {
public: public:
nsXFormsContainerAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXFormsContainerAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
@ -142,7 +142,7 @@ public:
class nsXFormsEditableAccessible : public nsXFormsAccessible class nsXFormsEditableAccessible : public nsXFormsAccessible
{ {
public: public:
nsXFormsEditableAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXFormsEditableAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessibleEditableText // nsIAccessibleEditableText
NS_IMETHOD GetAssociatedEditor(nsIEditor **aEditor); NS_IMETHOD GetAssociatedEditor(nsIEditor **aEditor);
@ -159,7 +159,7 @@ public:
class nsXFormsSelectableAccessible : public nsXFormsEditableAccessible class nsXFormsSelectableAccessible : public nsXFormsEditableAccessible
{ {
public: public:
nsXFormsSelectableAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXFormsSelectableAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// SelectAccessible // SelectAccessible
virtual bool IsSelect(); virtual bool IsSelect();
@ -186,8 +186,8 @@ protected:
class nsXFormsSelectableItemAccessible : public nsXFormsAccessible class nsXFormsSelectableItemAccessible : public nsXFormsAccessible
{ {
public: public:
nsXFormsSelectableItemAccessible(nsIContent *aContent, nsXFormsSelectableItemAccessible(nsIContent* aContent,
nsIWeakReference *aShell); nsDocAccessible* aDoc);
NS_IMETHOD GetValue(nsAString& aValue); NS_IMETHOD GetValue(nsAString& aValue);
NS_IMETHOD DoAction(PRUint8 aIndex); NS_IMETHOD DoAction(PRUint8 aIndex);

View File

@ -49,8 +49,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsLabelAccessible:: nsXFormsLabelAccessible::
nsXFormsLabelAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsLabelAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXFormsAccessible(aContent, aShell) nsXFormsAccessible(aContent, aDoc)
{ {
} }
@ -81,8 +81,8 @@ nsXFormsLabelAccessible::Description(nsString& aDescription)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsOutputAccessible:: nsXFormsOutputAccessible::
nsXFormsOutputAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsOutputAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXFormsAccessible(aContent, aShell) nsXFormsAccessible(aContent, aDoc)
{ {
} }
@ -98,8 +98,8 @@ nsXFormsOutputAccessible::NativeRole()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsTriggerAccessible:: nsXFormsTriggerAccessible::
nsXFormsTriggerAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsTriggerAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXFormsAccessible(aContent, aShell) nsXFormsAccessible(aContent, aDoc)
{ {
} }
@ -148,8 +148,8 @@ nsXFormsTriggerAccessible::DoAction(PRUint8 aIndex)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsInputAccessible:: nsXFormsInputAccessible::
nsXFormsInputAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsInputAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXFormsEditableAccessible(aContent, aShell) nsXFormsEditableAccessible(aContent, aDoc)
{ {
} }
@ -193,8 +193,8 @@ nsXFormsInputAccessible::DoAction(PRUint8 aIndex)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsInputBooleanAccessible:: nsXFormsInputBooleanAccessible::
nsXFormsInputBooleanAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsInputBooleanAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXFormsAccessible(aContent, aShell) nsXFormsAccessible(aContent, aDoc)
{ {
} }
@ -261,8 +261,8 @@ nsXFormsInputBooleanAccessible::DoAction(PRUint8 aIndex)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsInputDateAccessible:: nsXFormsInputDateAccessible::
nsXFormsInputDateAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsInputDateAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXFormsContainerAccessible(aContent, aShell) nsXFormsContainerAccessible(aContent, aDoc)
{ {
} }
@ -278,8 +278,8 @@ nsXFormsInputDateAccessible::NativeRole()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsSecretAccessible:: nsXFormsSecretAccessible::
nsXFormsSecretAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsSecretAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXFormsInputAccessible(aContent, aShell) nsXFormsInputAccessible(aContent, aDoc)
{ {
} }
@ -307,8 +307,8 @@ nsXFormsSecretAccessible::GetValue(nsAString& aValue)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsRangeAccessible:: nsXFormsRangeAccessible::
nsXFormsRangeAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsRangeAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXFormsAccessible(aContent, aShell) nsXFormsAccessible(aContent, aDoc)
{ {
} }
@ -400,8 +400,8 @@ nsXFormsRangeAccessible::GetCurrentValue(double *aCurrentValue)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsSelectAccessible:: nsXFormsSelectAccessible::
nsXFormsSelectAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsSelectAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXFormsContainerAccessible(aContent, aShell) nsXFormsContainerAccessible(aContent, aDoc)
{ {
} }
@ -427,8 +427,8 @@ nsXFormsSelectAccessible::NativeState()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsChoicesAccessible:: nsXFormsChoicesAccessible::
nsXFormsChoicesAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsChoicesAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXFormsAccessible(aContent, aShell) nsXFormsAccessible(aContent, aDoc)
{ {
} }
@ -457,8 +457,8 @@ nsXFormsChoicesAccessible::CacheChildren()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsSelectFullAccessible:: nsXFormsSelectFullAccessible::
nsXFormsSelectFullAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsSelectFullAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXFormsSelectableAccessible(aContent, aShell) nsXFormsSelectableAccessible(aContent, aDoc)
{ {
} }
@ -480,8 +480,8 @@ nsXFormsSelectFullAccessible::CacheChildren()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsItemCheckgroupAccessible:: nsXFormsItemCheckgroupAccessible::
nsXFormsItemCheckgroupAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsItemCheckgroupAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXFormsSelectableItemAccessible(aContent, aShell) nsXFormsSelectableItemAccessible(aContent, aDoc)
{ {
} }
@ -522,8 +522,8 @@ nsXFormsItemCheckgroupAccessible::GetActionName(PRUint8 aIndex, nsAString& aName
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsItemRadiogroupAccessible:: nsXFormsItemRadiogroupAccessible::
nsXFormsItemRadiogroupAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsItemRadiogroupAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXFormsSelectableItemAccessible(aContent, aShell) nsXFormsSelectableItemAccessible(aContent, aDoc)
{ {
} }
@ -560,8 +560,8 @@ nsXFormsItemRadiogroupAccessible::GetActionName(PRUint8 aIndex, nsAString& aName
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsSelectComboboxAccessible:: nsXFormsSelectComboboxAccessible::
nsXFormsSelectComboboxAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsSelectComboboxAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXFormsSelectableAccessible(aContent, aShell) nsXFormsSelectableAccessible(aContent, aDoc)
{ {
} }
@ -601,8 +601,8 @@ nsXFormsSelectComboboxAccessible::GetAllowsAnonChildAccessibles()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsItemComboboxAccessible:: nsXFormsItemComboboxAccessible::
nsXFormsItemComboboxAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsItemComboboxAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXFormsSelectableItemAccessible(aContent, aShell) nsXFormsSelectableItemAccessible(aContent, aDoc)
{ {
} }

View File

@ -48,7 +48,7 @@
class nsXFormsLabelAccessible : public nsXFormsAccessible class nsXFormsLabelAccessible : public nsXFormsAccessible
{ {
public: public:
nsXFormsLabelAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXFormsLabelAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual void Description(nsString& aDescription); virtual void Description(nsString& aDescription);
@ -63,7 +63,7 @@ public:
class nsXFormsOutputAccessible : public nsXFormsAccessible class nsXFormsOutputAccessible : public nsXFormsAccessible
{ {
public: public:
nsXFormsOutputAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXFormsOutputAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
@ -76,7 +76,7 @@ public:
class nsXFormsTriggerAccessible : public nsXFormsAccessible class nsXFormsTriggerAccessible : public nsXFormsAccessible
{ {
public: public:
nsXFormsTriggerAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXFormsTriggerAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetValue(nsAString& aValue); NS_IMETHOD GetValue(nsAString& aValue);
@ -98,7 +98,7 @@ public:
class nsXFormsInputAccessible : public nsXFormsEditableAccessible class nsXFormsInputAccessible : public nsXFormsEditableAccessible
{ {
public: public:
nsXFormsInputAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXFormsInputAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
@ -120,7 +120,7 @@ public:
class nsXFormsInputBooleanAccessible : public nsXFormsAccessible class nsXFormsInputBooleanAccessible : public nsXFormsAccessible
{ {
public: public:
nsXFormsInputBooleanAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXFormsInputBooleanAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName); NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName);
@ -141,7 +141,7 @@ public:
class nsXFormsInputDateAccessible : public nsXFormsContainerAccessible class nsXFormsInputDateAccessible : public nsXFormsContainerAccessible
{ {
public: public:
nsXFormsInputDateAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXFormsInputDateAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
@ -154,7 +154,7 @@ public:
class nsXFormsSecretAccessible : public nsXFormsInputAccessible class nsXFormsSecretAccessible : public nsXFormsInputAccessible
{ {
public: public:
nsXFormsSecretAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXFormsSecretAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetValue(nsAString& aValue); NS_IMETHOD GetValue(nsAString& aValue);
@ -172,7 +172,7 @@ public:
class nsXFormsRangeAccessible : public nsXFormsAccessible class nsXFormsRangeAccessible : public nsXFormsAccessible
{ {
public: public:
nsXFormsRangeAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXFormsRangeAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessibleValue // nsIAccessibleValue
NS_IMETHOD GetMaximumValue(double *aMaximumValue); NS_IMETHOD GetMaximumValue(double *aMaximumValue);
@ -194,7 +194,7 @@ public:
class nsXFormsSelectAccessible : public nsXFormsContainerAccessible class nsXFormsSelectAccessible : public nsXFormsContainerAccessible
{ {
public: public:
nsXFormsSelectAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXFormsSelectAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual PRUint64 NativeState(); virtual PRUint64 NativeState();
@ -208,7 +208,7 @@ public:
class nsXFormsChoicesAccessible : public nsXFormsAccessible class nsXFormsChoicesAccessible : public nsXFormsAccessible
{ {
public: public:
nsXFormsChoicesAccessible(nsIContent* aContent, nsIWeakReference *aShell); nsXFormsChoicesAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetValue(nsAString& aValue); NS_IMETHOD GetValue(nsAString& aValue);
@ -230,7 +230,7 @@ protected:
class nsXFormsSelectFullAccessible : public nsXFormsSelectableAccessible class nsXFormsSelectFullAccessible : public nsXFormsSelectableAccessible
{ {
public: public:
nsXFormsSelectFullAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXFormsSelectFullAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
@ -250,8 +250,8 @@ protected:
class nsXFormsItemCheckgroupAccessible : public nsXFormsSelectableItemAccessible class nsXFormsItemCheckgroupAccessible : public nsXFormsSelectableItemAccessible
{ {
public: public:
nsXFormsItemCheckgroupAccessible(nsIContent *aContent, nsXFormsItemCheckgroupAccessible(nsIContent* aContent,
nsIWeakReference *aShell); nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName); NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName);
@ -271,8 +271,8 @@ public:
class nsXFormsItemRadiogroupAccessible : public nsXFormsSelectableItemAccessible class nsXFormsItemRadiogroupAccessible : public nsXFormsSelectableItemAccessible
{ {
public: public:
nsXFormsItemRadiogroupAccessible(nsIContent *aContent, nsXFormsItemRadiogroupAccessible(nsIContent* aContent,
nsIWeakReference *aShell); nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName); NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName);
@ -291,8 +291,8 @@ public:
class nsXFormsSelectComboboxAccessible : public nsXFormsSelectableAccessible class nsXFormsSelectComboboxAccessible : public nsXFormsSelectableAccessible
{ {
public: public:
nsXFormsSelectComboboxAccessible(nsIContent *aContent, nsXFormsSelectComboboxAccessible(nsIContent* aContent,
nsIWeakReference *aShell); nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
@ -310,8 +310,8 @@ public:
class nsXFormsItemComboboxAccessible : public nsXFormsSelectableItemAccessible class nsXFormsItemComboboxAccessible : public nsXFormsSelectableItemAccessible
{ {
public: public:
nsXFormsItemComboboxAccessible(nsIContent *aContent, nsXFormsItemComboboxAccessible(nsIContent* aContent,
nsIWeakReference *aShell); nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName); NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName);

View File

@ -48,9 +48,9 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsDropmarkerWidgetAccessible:: nsXFormsDropmarkerWidgetAccessible::
nsXFormsDropmarkerWidgetAccessible(nsIContent *aContent, nsXFormsDropmarkerWidgetAccessible(nsIContent* aContent,
nsIWeakReference *aShell) : nsDocAccessible* aDoc) :
nsLeafAccessible(aContent, aShell) nsLeafAccessible(aContent, aDoc)
{ {
} }
@ -113,8 +113,8 @@ nsXFormsDropmarkerWidgetAccessible::DoAction(PRUint8 aIndex)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsCalendarWidgetAccessible:: nsXFormsCalendarWidgetAccessible::
nsXFormsCalendarWidgetAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXFormsCalendarWidgetAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
} }
@ -130,9 +130,9 @@ nsXFormsCalendarWidgetAccessible::NativeRole()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXFormsComboboxPopupWidgetAccessible:: nsXFormsComboboxPopupWidgetAccessible::
nsXFormsComboboxPopupWidgetAccessible(nsIContent *aContent, nsXFormsComboboxPopupWidgetAccessible(nsIContent* aContent,
nsIWeakReference *aShell) : nsDocAccessible* aDoc) :
nsXFormsAccessible(aContent, aShell) nsXFormsAccessible(aContent, aDoc)
{ {
} }

View File

@ -51,8 +51,8 @@ class nsXFormsDropmarkerWidgetAccessible : public nsLeafAccessible,
public nsXFormsAccessibleBase public nsXFormsAccessibleBase
{ {
public: public:
nsXFormsDropmarkerWidgetAccessible(nsIContent *aContent, nsXFormsDropmarkerWidgetAccessible(nsIContent* aContent,
nsIWeakReference *aShell); nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName); NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName);
@ -73,8 +73,8 @@ public:
class nsXFormsCalendarWidgetAccessible : public nsAccessibleWrap class nsXFormsCalendarWidgetAccessible : public nsAccessibleWrap
{ {
public: public:
nsXFormsCalendarWidgetAccessible(nsIContent *aContent, nsXFormsCalendarWidgetAccessible(nsIContent* aContent,
nsIWeakReference *aShell); nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
@ -88,8 +88,8 @@ public:
class nsXFormsComboboxPopupWidgetAccessible : public nsXFormsAccessible class nsXFormsComboboxPopupWidgetAccessible : public nsXFormsAccessible
{ {
public: public:
nsXFormsComboboxPopupWidgetAccessible(nsIContent *aContent, nsXFormsComboboxPopupWidgetAccessible(nsIContent* aContent,
nsIWeakReference *aShell); nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetValue(nsAString& aValue); NS_IMETHOD GetValue(nsAString& aValue);

View File

@ -61,8 +61,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
XULSelectControlAccessible:: XULSelectControlAccessible::
XULSelectControlAccessible(nsIContent *aContent, nsIWeakReference *aShell) : XULSelectControlAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
mSelectControl = do_QueryInterface(aContent); mSelectControl = do_QueryInterface(aContent);
} }
@ -92,7 +92,7 @@ XULSelectControlAccessible::SelectedItems()
{ {
nsCOMPtr<nsIMutableArray> selectedItems = nsCOMPtr<nsIMutableArray> selectedItems =
do_CreateInstance(NS_ARRAY_CONTRACTID); do_CreateInstance(NS_ARRAY_CONTRACTID);
if (!selectedItems) if (!selectedItems || !mDoc)
return nsnull; return nsnull;
// For XUL multi-select control // For XUL multi-select control
@ -105,8 +105,7 @@ XULSelectControlAccessible::SelectedItems()
nsCOMPtr<nsIDOMXULSelectControlItemElement> itemElm; nsCOMPtr<nsIDOMXULSelectControlItemElement> itemElm;
xulMultiSelect->GetSelectedItem(index, getter_AddRefs(itemElm)); xulMultiSelect->GetSelectedItem(index, getter_AddRefs(itemElm));
nsCOMPtr<nsINode> itemNode(do_QueryInterface(itemElm)); nsCOMPtr<nsINode> itemNode(do_QueryInterface(itemElm));
nsAccessible* item = nsAccessible* item = mDoc->GetAccessible(itemNode);
GetAccService()->GetAccessibleInWeakShell(itemNode, mWeakShell);
if (item) if (item)
selectedItems->AppendElement(static_cast<nsIAccessible*>(item), selectedItems->AppendElement(static_cast<nsIAccessible*>(item),
false); false);
@ -116,13 +115,12 @@ XULSelectControlAccessible::SelectedItems()
mSelectControl->GetSelectedItem(getter_AddRefs(itemElm)); mSelectControl->GetSelectedItem(getter_AddRefs(itemElm));
nsCOMPtr<nsINode> itemNode(do_QueryInterface(itemElm)); nsCOMPtr<nsINode> itemNode(do_QueryInterface(itemElm));
if(itemNode) { if(itemNode) {
nsAccessible* item = nsAccessible* item = mDoc->GetAccessible(itemNode);
GetAccService()->GetAccessibleInWeakShell(itemNode, mWeakShell);
if (item) if (item)
selectedItems->AppendElement(static_cast<nsIAccessible*>(item), selectedItems->AppendElement(static_cast<nsIAccessible*>(item),
false); false);
} }
} }
nsIMutableArray* items = nsnull; nsIMutableArray* items = nsnull;
selectedItems.forget(&items); selectedItems.forget(&items);
@ -142,8 +140,8 @@ XULSelectControlAccessible::GetSelectedItem(PRUint32 aIndex)
mSelectControl->GetSelectedItem(getter_AddRefs(itemElm)); mSelectControl->GetSelectedItem(getter_AddRefs(itemElm));
nsCOMPtr<nsINode> itemNode(do_QueryInterface(itemElm)); nsCOMPtr<nsINode> itemNode(do_QueryInterface(itemElm));
return itemNode ? return itemNode && mDoc ?
GetAccService()->GetAccessibleInWeakShell(itemNode, mWeakShell) : nsnull; GetAccService()->GetAccessibleInWeakShell(itemNode, mDoc->GetWeakShell()) : nsnull;
} }
PRUint32 PRUint32

View File

@ -49,7 +49,7 @@
class XULSelectControlAccessible : public nsAccessibleWrap class XULSelectControlAccessible : public nsAccessibleWrap
{ {
public: public:
XULSelectControlAccessible(nsIContent *aContent, nsIWeakReference *aShell); XULSelectControlAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~XULSelectControlAccessible() {} virtual ~XULSelectControlAccessible() {}
// nsAccessNode // nsAccessNode

View File

@ -47,8 +47,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULAlertAccessible:: nsXULAlertAccessible::
nsXULAlertAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULAlertAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
} }

View File

@ -47,7 +47,7 @@
class nsXULAlertAccessible : public nsAccessibleWrap class nsXULAlertAccessible : public nsAccessibleWrap
{ {
public: public:
nsXULAlertAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULAlertAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED

View File

@ -55,8 +55,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULColorPickerTileAccessible:: nsXULColorPickerTileAccessible::
nsXULColorPickerTileAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULColorPickerTileAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
} }
@ -117,8 +117,8 @@ nsXULColorPickerTileAccessible::ContainerWidget() const
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULColorPickerAccessible:: nsXULColorPickerAccessible::
nsXULColorPickerAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULColorPickerAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXULColorPickerTileAccessible(aContent, aShell) nsXULColorPickerTileAccessible(aContent, aDoc)
{ {
mFlags |= eMenuButtonAccessible; mFlags |= eMenuButtonAccessible;
} }
@ -177,7 +177,9 @@ nsXULColorPickerAccessible::AreItemsOperable() const
void void
nsXULColorPickerAccessible::CacheChildren() nsXULColorPickerAccessible::CacheChildren()
{ {
nsAccTreeWalker walker(mWeakShell, mContent, true); NS_ENSURE_TRUE(mDoc,);
nsAccTreeWalker walker(mDoc->GetWeakShell(), mContent, true);
nsAccessible* child = nsnull; nsAccessible* child = nsnull;
while ((child = walker.NextChild())) { while ((child = walker.NextChild())) {

View File

@ -47,8 +47,8 @@
class nsXULColorPickerTileAccessible : public nsAccessibleWrap class nsXULColorPickerTileAccessible : public nsAccessibleWrap
{ {
public: public:
nsXULColorPickerTileAccessible(nsIContent *aContent, nsXULColorPickerTileAccessible(nsIContent* aContent,
nsIWeakReference *aShell); nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetValue(nsAString& _retval); NS_IMETHOD GetValue(nsAString& _retval);
@ -68,7 +68,7 @@ public:
class nsXULColorPickerAccessible : public nsXULColorPickerTileAccessible class nsXULColorPickerAccessible : public nsXULColorPickerTileAccessible
{ {
public: public:
nsXULColorPickerAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULColorPickerAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();

View File

@ -41,6 +41,7 @@
#include "nsXULComboboxAccessible.h" #include "nsXULComboboxAccessible.h"
#include "nsAccessibilityService.h" #include "nsAccessibilityService.h"
#include "nsDocAccessible.h"
#include "nsCoreUtils.h" #include "nsCoreUtils.h"
#include "Role.h" #include "Role.h"
#include "States.h" #include "States.h"
@ -56,8 +57,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULComboboxAccessible:: nsXULComboboxAccessible::
nsXULComboboxAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULComboboxAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
if (mContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::type, if (mContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::type,
nsGkAtoms::autocomplete, eIgnoreCase)) nsGkAtoms::autocomplete, eIgnoreCase))
@ -131,9 +132,8 @@ nsXULComboboxAccessible::Description(nsString& aDescription)
menuListElm->GetSelectedItem(getter_AddRefs(focusedOptionItem)); menuListElm->GetSelectedItem(getter_AddRefs(focusedOptionItem));
nsCOMPtr<nsIContent> focusedOptionContent = nsCOMPtr<nsIContent> focusedOptionContent =
do_QueryInterface(focusedOptionItem); do_QueryInterface(focusedOptionItem);
if (focusedOptionContent) { if (focusedOptionContent && mDoc) {
nsAccessible* focusedOptionAcc = GetAccService()-> nsAccessible* focusedOptionAcc = mDoc->GetAccessible(focusedOptionContent);
GetAccessibleInWeakShell(focusedOptionContent, mWeakShell);
if (focusedOptionAcc) if (focusedOptionAcc)
focusedOptionAcc->Description(aDescription); focusedOptionAcc->Description(aDescription);
} }

View File

@ -50,7 +50,7 @@ class nsXULComboboxAccessible : public nsAccessibleWrap
public: public:
enum { eAction_Click = 0 }; enum { eAction_Click = 0 };
nsXULComboboxAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULComboboxAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetValue(nsAString& aValue); NS_IMETHOD GetValue(nsAString& aValue);

View File

@ -71,8 +71,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULButtonAccessible:: nsXULButtonAccessible::
nsXULButtonAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULButtonAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
if (ContainsMenu()) if (ContainsMenu())
mFlags |= eMenuButtonAccessible; mFlags |= eMenuButtonAccessible;
@ -226,13 +226,14 @@ nsXULButtonAccessible::CacheChildren()
mContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::type, mContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::type,
nsGkAtoms::menuButton, eCaseMatters); nsGkAtoms::menuButton, eCaseMatters);
NS_ENSURE_TRUE(mDoc,);
if (!isMenu && !isMenuButton) if (!isMenu && !isMenuButton)
return; return;
nsAccessible* menupopup = nsnull; nsAccessible* menupopup = nsnull;
nsAccessible* button = nsnull; nsAccessible* button = nsnull;
nsAccTreeWalker walker(mWeakShell, mContent, true); nsAccTreeWalker walker(mDoc->GetWeakShell(), mContent, true);
nsAccessible* child = nsnull; nsAccessible* child = nsnull;
while ((child = walker.NextChild())) { while ((child = walker.NextChild())) {
@ -281,8 +282,8 @@ nsXULButtonAccessible::ContainsMenu()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULDropmarkerAccessible:: nsXULDropmarkerAccessible::
nsXULDropmarkerAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULDropmarkerAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsFormControlAccessible(aContent, aShell) nsFormControlAccessible(aContent, aDoc)
{ {
} }
@ -362,8 +363,8 @@ nsXULDropmarkerAccessible::NativeState()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULCheckboxAccessible:: nsXULCheckboxAccessible::
nsXULCheckboxAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULCheckboxAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsFormControlAccessible(aContent, aShell) nsFormControlAccessible(aContent, aDoc)
{ {
} }
@ -442,8 +443,8 @@ nsXULCheckboxAccessible::NativeState()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULGroupboxAccessible:: nsXULGroupboxAccessible::
nsXULGroupboxAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULGroupboxAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
} }
@ -499,8 +500,8 @@ nsXULGroupboxAccessible::RelationByType(PRUint32 aType)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULRadioButtonAccessible:: nsXULRadioButtonAccessible::
nsXULRadioButtonAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULRadioButtonAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsRadioButtonAccessible(aContent, aShell) nsRadioButtonAccessible(aContent, aDoc)
{ {
} }
@ -558,8 +559,8 @@ nsXULRadioButtonAccessible::ContainerWidget() const
*/ */
nsXULRadioGroupAccessible:: nsXULRadioGroupAccessible::
nsXULRadioGroupAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULRadioGroupAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
XULSelectControlAccessible(aContent, aShell) XULSelectControlAccessible(aContent, aDoc)
{ {
} }
@ -605,8 +606,8 @@ nsXULRadioGroupAccessible::AreItemsOperable() const
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULStatusBarAccessible:: nsXULStatusBarAccessible::
nsXULStatusBarAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULStatusBarAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
} }
@ -622,8 +623,8 @@ nsXULStatusBarAccessible::NativeRole()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULToolbarButtonAccessible:: nsXULToolbarButtonAccessible::
nsXULToolbarButtonAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULToolbarButtonAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXULButtonAccessible(aContent, aShell) nsXULButtonAccessible(aContent, aDoc)
{ {
} }
@ -680,8 +681,8 @@ nsXULToolbarButtonAccessible::IsSeparator(nsAccessible *aAccessible)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULToolbarAccessible:: nsXULToolbarAccessible::
nsXULToolbarAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULToolbarAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
} }
@ -709,9 +710,9 @@ nsXULToolbarAccessible::GetNameInternal(nsAString& aName)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULToolbarSeparatorAccessible:: nsXULToolbarSeparatorAccessible::
nsXULToolbarSeparatorAccessible(nsIContent *aContent, nsXULToolbarSeparatorAccessible(nsIContent* aContent,
nsIWeakReference *aShell) : nsDocAccessible* aDoc) :
nsLeafAccessible(aContent, aShell) nsLeafAccessible(aContent, aDoc)
{ {
} }
@ -732,8 +733,8 @@ nsXULToolbarSeparatorAccessible::NativeState()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULTextFieldAccessible:: nsXULTextFieldAccessible::
nsXULTextFieldAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULTextFieldAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }
@ -783,7 +784,7 @@ nsXULTextFieldAccessible::NativeState()
// Create a temporary accessible from the HTML text field to get // Create a temporary accessible from the HTML text field to get
// the accessible state from. Doesn't add to cache into document cache. // the accessible state from. Doesn't add to cache into document cache.
nsRefPtr<nsHTMLTextFieldAccessible> tempAccessible = nsRefPtr<nsHTMLTextFieldAccessible> tempAccessible =
new nsHTMLTextFieldAccessible(inputField, mWeakShell); new nsHTMLTextFieldAccessible(inputField, mDoc);
if (!tempAccessible) if (!tempAccessible)
return state; return state;
@ -872,13 +873,14 @@ NS_IMETHODIMP nsXULTextFieldAccessible::GetAssociatedEditor(nsIEditor **aEditor)
void void
nsXULTextFieldAccessible::CacheChildren() nsXULTextFieldAccessible::CacheChildren()
{ {
NS_ENSURE_TRUE(mDoc,);
// Create child accessibles for native anonymous content of underlying HTML // Create child accessibles for native anonymous content of underlying HTML
// input element. // input element.
nsCOMPtr<nsIContent> inputContent(GetInputField()); nsCOMPtr<nsIContent> inputContent(GetInputField());
if (!inputContent) if (!inputContent)
return; return;
nsAccTreeWalker walker(mWeakShell, inputContent, false); nsAccTreeWalker walker(mDoc->GetWeakShell(), inputContent, false);
nsAccessible* child = nsnull; nsAccessible* child = nsnull;
while ((child = walker.NextChild()) && AppendChild(child)); while ((child = walker.NextChild()) && AppendChild(child));

View File

@ -61,7 +61,7 @@ class nsXULButtonAccessible : public nsAccessibleWrap
{ {
public: public:
enum { eAction_Click = 0 }; enum { eAction_Click = 0 };
nsXULButtonAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULButtonAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsISupports // nsISupports
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
@ -100,7 +100,7 @@ class nsXULCheckboxAccessible : public nsFormControlAccessible
{ {
public: public:
enum { eAction_Click = 0 }; enum { eAction_Click = 0 };
nsXULCheckboxAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULCheckboxAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName); NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName);
@ -121,7 +121,7 @@ class nsXULDropmarkerAccessible : public nsFormControlAccessible
{ {
public: public:
enum { eAction_Click = 0 }; enum { eAction_Click = 0 };
nsXULDropmarkerAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULDropmarkerAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName); NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName);
@ -144,7 +144,7 @@ private:
class nsXULGroupboxAccessible : public nsAccessibleWrap class nsXULGroupboxAccessible : public nsAccessibleWrap
{ {
public: public:
nsXULGroupboxAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULGroupboxAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
@ -159,7 +159,7 @@ class nsXULRadioButtonAccessible : public nsRadioButtonAccessible
{ {
public: public:
nsXULRadioButtonAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULRadioButtonAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual void GetPositionAndSizeInternal(PRInt32 *aPosInSet, virtual void GetPositionAndSizeInternal(PRInt32 *aPosInSet,
@ -176,7 +176,7 @@ public:
class nsXULRadioGroupAccessible : public XULSelectControlAccessible class nsXULRadioGroupAccessible : public XULSelectControlAccessible
{ {
public: public:
nsXULRadioGroupAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULRadioGroupAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
@ -194,7 +194,7 @@ public:
class nsXULStatusBarAccessible : public nsAccessibleWrap class nsXULStatusBarAccessible : public nsAccessibleWrap
{ {
public: public:
nsXULStatusBarAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULStatusBarAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
@ -206,7 +206,7 @@ public:
class nsXULToolbarButtonAccessible : public nsXULButtonAccessible class nsXULToolbarButtonAccessible : public nsXULButtonAccessible
{ {
public: public:
nsXULToolbarButtonAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULToolbarButtonAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual void GetPositionAndSizeInternal(PRInt32 *aPosInSet, virtual void GetPositionAndSizeInternal(PRInt32 *aPosInSet,
@ -222,7 +222,7 @@ public:
class nsXULToolbarAccessible : public nsAccessibleWrap class nsXULToolbarAccessible : public nsAccessibleWrap
{ {
public: public:
nsXULToolbarAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULToolbarAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
@ -236,7 +236,7 @@ class nsXULToolbarSeparatorAccessible : public nsLeafAccessible
{ {
public: public:
nsXULToolbarSeparatorAccessible(nsIContent* aContent, nsXULToolbarSeparatorAccessible(nsIContent* aContent,
nsIWeakReference *aShell); nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
@ -251,7 +251,7 @@ class nsXULTextFieldAccessible : public nsHyperTextAccessibleWrap
public: public:
enum { eAction_Click = 0 }; enum { eAction_Click = 0 };
nsXULTextFieldAccessible(nsIContent* aContent, nsIWeakReference *aShell); nsXULTextFieldAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED

View File

@ -42,6 +42,7 @@
#include "nsAccessibilityService.h" #include "nsAccessibilityService.h"
#include "nsAccUtils.h" #include "nsAccUtils.h"
#include "nsDocAccessible.h"
#include "Role.h" #include "Role.h"
#include "States.h" #include "States.h"
@ -61,8 +62,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULColumnsAccessible:: nsXULColumnsAccessible::
nsXULColumnsAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULColumnsAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
} }
@ -84,8 +85,8 @@ nsXULColumnsAccessible::NativeState()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULColumnItemAccessible:: nsXULColumnItemAccessible::
nsXULColumnItemAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULColumnItemAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsLeafAccessible(aContent, aShell) nsLeafAccessible(aContent, aDoc)
{ {
} }
@ -132,8 +133,8 @@ nsXULColumnItemAccessible::DoAction(PRUint8 aIndex)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULListboxAccessible:: nsXULListboxAccessible::
nsXULListboxAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULListboxAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
XULSelectControlAccessible(aContent, aShell) XULSelectControlAccessible(aContent, aDoc)
{ {
nsIContent* parentContent = mContent->GetParent(); nsIContent* parentContent = mContent->GetParent();
if (parentContent) { if (parentContent) {
@ -316,9 +317,8 @@ nsXULListboxAccessible::GetCellAt(PRInt32 aRow, PRInt32 aColumn,
NS_ENSURE_TRUE(item, NS_ERROR_INVALID_ARG); NS_ENSURE_TRUE(item, NS_ERROR_INVALID_ARG);
nsCOMPtr<nsIContent> itemContent(do_QueryInterface(item)); nsCOMPtr<nsIContent> itemContent(do_QueryInterface(item));
NS_ENSURE_TRUE(mDoc, NS_ERROR_FAILURE);
nsAccessible *row = nsAccessible *row = mDoc->GetAccessible(itemContent);
GetAccService()->GetAccessibleInWeakShell(itemContent, mWeakShell);
NS_ENSURE_STATE(row); NS_ENSURE_STATE(row);
nsresult rv = row->GetChildAt(aColumn, aAccessibleCell); nsresult rv = row->GetChildAt(aColumn, aAccessibleCell);
@ -601,13 +601,13 @@ nsXULListboxAccessible::GetSelectedCells(nsIArray **aCells)
rv = selectedItems->GetLength(&selectedItemsCount); rv = selectedItems->GetLength(&selectedItemsCount);
NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_SUCCESS(rv, rv);
NS_ENSURE_TRUE(mDoc, NS_ERROR_FAILURE);
PRUint32 index = 0; PRUint32 index = 0;
for (; index < selectedItemsCount; index++) { for (; index < selectedItemsCount; index++) {
nsCOMPtr<nsIDOMNode> itemNode; nsCOMPtr<nsIDOMNode> itemNode;
selectedItems->Item(index, getter_AddRefs(itemNode)); selectedItems->Item(index, getter_AddRefs(itemNode));
nsCOMPtr<nsIContent> itemContent(do_QueryInterface(itemNode)); nsCOMPtr<nsIContent> itemContent(do_QueryInterface(itemNode));
nsAccessible *item = nsAccessible *item = mDoc->GetAccessible(itemContent);
GetAccService()->GetAccessibleInWeakShell(itemContent, mWeakShell);
if (item) { if (item) {
PRInt32 cellCount = item->GetChildCount(); PRInt32 cellCount = item->GetChildCount();
@ -900,8 +900,8 @@ nsXULListboxAccessible::ContainerWidget() const
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULListitemAccessible:: nsXULListitemAccessible::
nsXULListitemAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULListitemAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXULMenuitemAccessible(aContent, aShell) nsXULMenuitemAccessible(aContent, aDoc)
{ {
mIsCheckbox = mContent->AttrValueIs(kNameSpaceID_None, mIsCheckbox = mContent->AttrValueIs(kNameSpaceID_None,
nsGkAtoms::type, nsGkAtoms::type,
@ -929,7 +929,7 @@ nsXULListitemAccessible::GetListAccessible()
if (!listContent) if (!listContent)
return nsnull; return nsnull;
return GetAccService()->GetAccessibleInWeakShell(listContent, mWeakShell); return mDoc->GetAccessible(listContent);
} }
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -1053,8 +1053,8 @@ nsXULListitemAccessible::ContainerWidget() const
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULListCellAccessible:: nsXULListCellAccessible::
nsXULListCellAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULListCellAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }

View File

@ -56,7 +56,7 @@ class nsIWeakReference;
class nsXULColumnsAccessible : public nsAccessibleWrap class nsXULColumnsAccessible : public nsAccessibleWrap
{ {
public: public:
nsXULColumnsAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULColumnsAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
@ -70,7 +70,7 @@ public:
class nsXULColumnItemAccessible : public nsLeafAccessible class nsXULColumnItemAccessible : public nsLeafAccessible
{ {
public: public:
nsXULColumnItemAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULColumnItemAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName); NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName);
@ -93,7 +93,7 @@ class nsXULListboxAccessible : public XULSelectControlAccessible,
public nsIAccessibleTable public nsIAccessibleTable
{ {
public: public:
nsXULListboxAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULListboxAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsXULListboxAccessible() {} virtual ~nsXULListboxAccessible() {}
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
@ -127,7 +127,7 @@ public:
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
nsXULListitemAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULListitemAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
virtual ~nsXULListitemAccessible() {} virtual ~nsXULListitemAccessible() {}
// nsIAccessible // nsIAccessible
@ -163,7 +163,7 @@ class nsXULListCellAccessible : public nsHyperTextAccessibleWrap,
public nsIAccessibleTableCell public nsIAccessibleTableCell
{ {
public: public:
nsXULListCellAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULListCellAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsISupports // nsISupports
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED

View File

@ -71,8 +71,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULMenuitemAccessible:: nsXULMenuitemAccessible::
nsXULMenuitemAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULMenuitemAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
} }
@ -408,8 +408,8 @@ nsXULMenuitemAccessible::ContainerWidget() const
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULMenuSeparatorAccessible:: nsXULMenuSeparatorAccessible::
nsXULMenuSeparatorAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULMenuSeparatorAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXULMenuitemAccessible(aContent, aShell) nsXULMenuitemAccessible(aContent, aDoc)
{ {
} }
@ -454,8 +454,8 @@ nsXULMenuSeparatorAccessible::ActionCount()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULMenupopupAccessible:: nsXULMenupopupAccessible::
nsXULMenupopupAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULMenupopupAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
XULSelectControlAccessible(aContent, aShell) XULSelectControlAccessible(aContent, aDoc)
{ {
nsMenuPopupFrame* menuPopupFrame = do_QueryFrame(GetFrame()); nsMenuPopupFrame* menuPopupFrame = do_QueryFrame(GetFrame());
if (menuPopupFrame && menuPopupFrame->IsMenu()) if (menuPopupFrame && menuPopupFrame->IsMenu())
@ -594,8 +594,8 @@ nsXULMenupopupAccessible::ContainerWidget() const
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULMenubarAccessible:: nsXULMenubarAccessible::
nsXULMenubarAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULMenubarAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
} }

View File

@ -51,7 +51,7 @@ class nsXULMenuitemAccessible : public nsAccessibleWrap
public: public:
enum { eAction_Click = 0 }; enum { eAction_Click = 0 };
nsXULMenuitemAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULMenuitemAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD DoAction(PRUint8 index); NS_IMETHOD DoAction(PRUint8 index);
@ -85,7 +85,7 @@ public:
class nsXULMenuSeparatorAccessible : public nsXULMenuitemAccessible class nsXULMenuSeparatorAccessible : public nsXULMenuitemAccessible
{ {
public: public:
nsXULMenuSeparatorAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULMenuSeparatorAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD DoAction(PRUint8 index); NS_IMETHOD DoAction(PRUint8 index);
@ -107,7 +107,7 @@ public:
class nsXULMenupopupAccessible : public XULSelectControlAccessible class nsXULMenupopupAccessible : public XULSelectControlAccessible
{ {
public: public:
nsXULMenupopupAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULMenupopupAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual nsresult GetNameInternal(nsAString& aName); virtual nsresult GetNameInternal(nsAString& aName);
@ -128,7 +128,7 @@ public:
class nsXULMenubarAccessible : public nsAccessibleWrap class nsXULMenubarAccessible : public nsAccessibleWrap
{ {
public: public:
nsXULMenubarAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULMenubarAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual nsresult GetNameInternal(nsAString& aName); virtual nsresult GetNameInternal(nsAString& aName);

View File

@ -53,8 +53,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULSliderAccessible:: nsXULSliderAccessible::
nsXULSliderAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULSliderAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
} }
@ -289,8 +289,8 @@ nsXULSliderAccessible::SetSliderAttr(nsIAtom *aName, double aValue)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULThumbAccessible:: nsXULThumbAccessible::
nsXULThumbAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULThumbAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
} }

View File

@ -49,7 +49,7 @@
class nsXULSliderAccessible : public nsAccessibleWrap class nsXULSliderAccessible : public nsAccessibleWrap
{ {
public: public:
nsXULSliderAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULSliderAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsISupports // nsISupports
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
@ -90,7 +90,7 @@ private:
class nsXULThumbAccessible : public nsAccessibleWrap class nsXULThumbAccessible : public nsAccessibleWrap
{ {
public: public:
nsXULThumbAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULThumbAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();

View File

@ -59,8 +59,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULTabAccessible:: nsXULTabAccessible::
nsXULTabAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULTabAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
} }
@ -178,8 +178,8 @@ nsXULTabAccessible::GetPositionAndSizeInternal(PRInt32 *aPosInSet,
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULTabsAccessible:: nsXULTabsAccessible::
nsXULTabsAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULTabsAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
XULSelectControlAccessible(aContent, aShell) XULSelectControlAccessible(aContent, aDoc)
{ {
} }
@ -214,8 +214,8 @@ nsXULTabsAccessible::GetNameInternal(nsAString& aName)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULTabpanelsAccessible:: nsXULTabpanelsAccessible::
nsXULTabpanelsAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULTabpanelsAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
} }
@ -231,8 +231,8 @@ nsXULTabpanelsAccessible::NativeRole()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULTabpanelAccessible:: nsXULTabpanelAccessible::
nsXULTabpanelAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULTabpanelAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
} }

View File

@ -52,7 +52,7 @@ class nsXULTabAccessible : public nsAccessibleWrap
public: public:
enum { eAction_Switch = 0 }; enum { eAction_Switch = 0 };
nsXULTabAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULTabAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName); NS_IMETHOD GetActionName(PRUint8 aIndex, nsAString& aName);
@ -76,7 +76,7 @@ public:
class nsXULTabsAccessible : public XULSelectControlAccessible class nsXULTabsAccessible : public XULSelectControlAccessible
{ {
public: public:
nsXULTabsAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULTabsAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsIAccessible // nsIAccessible
NS_IMETHOD GetValue(nsAString& _retval); NS_IMETHOD GetValue(nsAString& _retval);
@ -96,7 +96,7 @@ public:
class nsXULTabpanelsAccessible : public nsAccessibleWrap class nsXULTabpanelsAccessible : public nsAccessibleWrap
{ {
public: public:
nsXULTabpanelsAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULTabpanelsAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
@ -116,7 +116,7 @@ public:
class nsXULTabpanelAccessible : public nsAccessibleWrap class nsXULTabpanelAccessible : public nsAccessibleWrap
{ {
public: public:
nsXULTabpanelAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULTabpanelAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();

View File

@ -61,8 +61,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULTextAccessible:: nsXULTextAccessible::
nsXULTextAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULTextAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }
@ -112,8 +112,8 @@ nsXULTextAccessible::RelationByType(PRUint32 aType)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULTooltipAccessible:: nsXULTooltipAccessible::
nsXULTooltipAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULTooltipAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsLeafAccessible(aContent, aShell) nsLeafAccessible(aContent, aDoc)
{ {
} }
@ -139,8 +139,8 @@ nsXULTooltipAccessible::NativeRole()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULLinkAccessible:: nsXULLinkAccessible::
nsXULLinkAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULLinkAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsHyperTextAccessibleWrap(aContent, aShell) nsHyperTextAccessibleWrap(aContent, aDoc)
{ {
} }

View File

@ -49,7 +49,7 @@
class nsXULTextAccessible : public nsHyperTextAccessibleWrap class nsXULTextAccessible : public nsHyperTextAccessibleWrap
{ {
public: public:
nsXULTextAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULTextAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual nsresult GetNameInternal(nsAString& aName); virtual nsresult GetNameInternal(nsAString& aName);
@ -65,7 +65,7 @@ class nsXULTooltipAccessible : public nsLeafAccessible
{ {
public: public:
nsXULTooltipAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULTooltipAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsAccessible // nsAccessible
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
@ -76,7 +76,7 @@ class nsXULLinkAccessible : public nsHyperTextAccessibleWrap
{ {
public: public:
nsXULLinkAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULLinkAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED

View File

@ -65,8 +65,8 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULTreeAccessible:: nsXULTreeAccessible::
nsXULTreeAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULTreeAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsAccessibleWrap(aContent, aShell) nsAccessibleWrap(aContent, aDoc)
{ {
mTree = nsCoreUtils::GetTreeBoxObject(aContent); mTree = nsCoreUtils::GetTreeBoxObject(aContent);
if (mTree) if (mTree)
@ -685,7 +685,7 @@ already_AddRefed<nsAccessible>
nsXULTreeAccessible::CreateTreeItemAccessible(PRInt32 aRow) nsXULTreeAccessible::CreateTreeItemAccessible(PRInt32 aRow)
{ {
nsRefPtr<nsAccessible> accessible = nsRefPtr<nsAccessible> accessible =
new nsXULTreeItemAccessible(mContent, mWeakShell, this, mTree, mTreeView, new nsXULTreeItemAccessible(mContent, mDoc, this, mTree, mTreeView,
aRow); aRow);
return accessible.forget(); return accessible.forget();
@ -696,10 +696,10 @@ nsXULTreeAccessible::CreateTreeItemAccessible(PRInt32 aRow)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULTreeItemAccessibleBase:: nsXULTreeItemAccessibleBase::
nsXULTreeItemAccessibleBase(nsIContent *aContent, nsIWeakReference *aShell, nsXULTreeItemAccessibleBase(nsIContent* aContent, nsDocAccessible* aDoc,
nsAccessible *aParent, nsITreeBoxObject *aTree, nsAccessible* aParent, nsITreeBoxObject* aTree,
nsITreeView *aTreeView, PRInt32 aRow) : nsITreeView* aTreeView, PRInt32 aRow) :
nsAccessibleWrap(aContent, aShell), nsAccessibleWrap(aContent, aDoc),
mTree(aTree), mTreeView(aTreeView), mRow(aRow) mTree(aTree), mTreeView(aTreeView), mRow(aRow)
{ {
mParent = aParent; mParent = aParent;
@ -1113,10 +1113,10 @@ nsXULTreeItemAccessibleBase::GetCellName(nsITreeColumn* aColumn,
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULTreeItemAccessible:: nsXULTreeItemAccessible::
nsXULTreeItemAccessible(nsIContent *aContent, nsIWeakReference *aShell, nsXULTreeItemAccessible(nsIContent* aContent, nsDocAccessible* aDoc,
nsAccessible *aParent, nsITreeBoxObject *aTree, nsAccessible* aParent, nsITreeBoxObject* aTree,
nsITreeView *aTreeView, PRInt32 aRow) : nsITreeView* aTreeView, PRInt32 aRow) :
nsXULTreeItemAccessibleBase(aContent, aShell, aParent, aTree, aTreeView, aRow) nsXULTreeItemAccessibleBase(aContent, aDoc, aParent, aTree, aTreeView, aRow)
{ {
mColumn = nsCoreUtils::GetFirstSensibleColumn(mTree); mColumn = nsCoreUtils::GetFirstSensibleColumn(mTree);
} }
@ -1231,8 +1231,8 @@ nsXULTreeItemAccessible::CacheChildren()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
nsXULTreeColumnsAccessible:: nsXULTreeColumnsAccessible::
nsXULTreeColumnsAccessible(nsIContent *aContent, nsIWeakReference *aShell) : nsXULTreeColumnsAccessible(nsIContent* aContent, nsDocAccessible* aDoc) :
nsXULColumnsAccessible(aContent, aShell) nsXULColumnsAccessible(aContent, aDoc)
{ {
} }

View File

@ -67,7 +67,7 @@ public:
using nsAccessible::GetChildCount; using nsAccessible::GetChildCount;
using nsAccessible::GetChildAt; using nsAccessible::GetChildAt;
nsXULTreeAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULTreeAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
// nsISupports and cycle collection // nsISupports and cycle collection
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
@ -180,9 +180,9 @@ class nsXULTreeItemAccessibleBase : public nsAccessibleWrap
public: public:
using nsAccessible::GetParent; using nsAccessible::GetParent;
nsXULTreeItemAccessibleBase(nsIContent *aContent, nsIWeakReference *aShell, nsXULTreeItemAccessibleBase(nsIContent* aContent, nsDocAccessible* aDoc,
nsAccessible *aParent, nsITreeBoxObject *aTree, nsAccessible* aParent, nsITreeBoxObject* aTree,
nsITreeView *aTreeView, PRInt32 aRow); nsITreeView* aTreeView, PRInt32 aRow);
// nsISupports and cycle collection // nsISupports and cycle collection
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
@ -275,9 +275,9 @@ NS_DEFINE_STATIC_IID_ACCESSOR(nsXULTreeItemAccessibleBase,
class nsXULTreeItemAccessible : public nsXULTreeItemAccessibleBase class nsXULTreeItemAccessible : public nsXULTreeItemAccessibleBase
{ {
public: public:
nsXULTreeItemAccessible(nsIContent *aContent, nsIWeakReference *aShell, nsXULTreeItemAccessible(nsIContent* aContent, nsDocAccessible* aDoc,
nsAccessible *aParent, nsITreeBoxObject *aTree, nsAccessible* aParent, nsITreeBoxObject* aTree,
nsITreeView *aTreeView, PRInt32 aRow); nsITreeView* aTreeView, PRInt32 aRow);
// nsISupports and cycle collection // nsISupports and cycle collection
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
@ -314,7 +314,7 @@ protected:
class nsXULTreeColumnsAccessible : public nsXULColumnsAccessible class nsXULTreeColumnsAccessible : public nsXULColumnsAccessible
{ {
public: public:
nsXULTreeColumnsAccessible(nsIContent *aContent, nsIWeakReference *aShell); nsXULTreeColumnsAccessible(nsIContent* aContent, nsDocAccessible* aDoc);
protected: protected:

Some files were not shown because too many files have changed in this diff Show More