author | Kan-Ru Chen <kanru@kanru.info> |
Tue, 15 Nov 2016 04:26:00 +0100 | |
changeset 322738 | 39ac4382a2c019178604b90acd816753fe142908 |
parent 322737 | eca8f585871bbe8074fe5f4476f3157fc7848adf |
child 322739 | 71f75f75b4e73cfa09a564f8c3c1a7e56f797641 |
push id | 83968 |
push user | cbook@mozilla.com |
push date | Wed, 16 Nov 2016 13:53:48 +0000 |
treeherder | mozilla-inbound@dd0312ef40cb [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | billm |
bugs | 1314254 |
milestone | 53.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/accessible/ipc/DocAccessibleParent.cpp +++ b/accessible/ipc/DocAccessibleParent.cpp @@ -10,79 +10,79 @@ #include "xpcAccessibleDocument.h" #include "xpcAccEvents.h" #include "nsAccUtils.h" #include "nsCoreUtils.h" namespace mozilla { namespace a11y { -bool +mozilla::ipc::IPCResult DocAccessibleParent::RecvShowEvent(const ShowEventData& aData, const bool& aFromUser) { if (mShutdown) - return true; + return IPC_OK(); MOZ_DIAGNOSTIC_ASSERT(CheckDocTree()); if (aData.NewTree().IsEmpty()) { NS_ERROR("no children being added"); - return false; + return IPC_FAIL_NO_REASON(this); } ProxyAccessible* parent = GetAccessible(aData.ID()); // XXX This should really never happen, but sometimes we fail to fire the // required show events. if (!parent) { NS_ERROR("adding child to unknown accessible"); - return true; + return IPC_OK(); } uint32_t newChildIdx = aData.Idx(); if (newChildIdx > parent->ChildrenCount()) { NS_ERROR("invalid index to add child at"); - return true; + return IPC_OK(); } uint32_t consumed = AddSubtree(parent, aData.NewTree(), 0, newChildIdx); MOZ_ASSERT(consumed == aData.NewTree().Length()); // XXX This shouldn't happen, but if we failed to add children then the below // is pointless and can crash. if (!consumed) { - return true; + return IPC_OK(); } #ifdef DEBUG for (uint32_t i = 0; i < consumed; i++) { uint64_t id = aData.NewTree()[i].ID(); MOZ_ASSERT(mAccessibles.GetEntry(id)); } #endif MOZ_DIAGNOSTIC_ASSERT(CheckDocTree()); ProxyAccessible* target = parent->ChildAt(newChildIdx); ProxyShowHideEvent(target, parent, true, aFromUser); if (!nsCoreUtils::AccEventObserversExist()) { - return true; + return IPC_OK(); } uint32_t type = nsIAccessibleEvent::EVENT_SHOW; xpcAccessibleGeneric* xpcAcc = GetXPCAccessible(target); xpcAccessibleDocument* doc = GetAccService()->GetXPCDocument(this); nsIDOMNode* node = nullptr; RefPtr<xpcAccEvent> event = new xpcAccEvent(type, xpcAcc, doc, node, aFromUser); nsCoreUtils::DispatchAccEvent(Move(event)); - return true; + return IPC_OK(); } uint32_t DocAccessibleParent::AddSubtree(ProxyAccessible* aParent, const nsTArray<a11y::AccessibleData>& aNewTree, uint32_t aIdx, uint32_t aIdxInParent) { if (aNewTree.Length() <= aIdx) { @@ -125,42 +125,42 @@ DocAccessibleParent::AddSubtree(ProxyAcc accessibles += consumed; } MOZ_ASSERT(newProxy->ChildrenCount() == kids); return accessibles; } -bool +mozilla::ipc::IPCResult DocAccessibleParent::RecvHideEvent(const uint64_t& aRootID, const bool& aFromUser) { if (mShutdown) - return true; + return IPC_OK(); MOZ_DIAGNOSTIC_ASSERT(CheckDocTree()); // We shouldn't actually need this because mAccessibles shouldn't have an // entry for the document itself, but it doesn't hurt to be explicit. if (!aRootID) { NS_ERROR("trying to hide entire document?"); - return false; + return IPC_FAIL_NO_REASON(this); } ProxyEntry* rootEntry = mAccessibles.GetEntry(aRootID); if (!rootEntry) { NS_ERROR("invalid root being removed!"); - return true; + return IPC_OK(); } ProxyAccessible* root = rootEntry->mProxy; if (!root) { NS_ERROR("invalid root being removed!"); - return true; + return IPC_OK(); } ProxyAccessible* parent = root->Parent(); ProxyShowHideEvent(root, parent, false, aFromUser); RefPtr<xpcAccHideEvent> event = nullptr; if (nsCoreUtils::AccEventObserversExist()) { uint32_t type = nsIAccessibleEvent::EVENT_HIDE; @@ -180,191 +180,194 @@ DocAccessibleParent::RecvHideEvent(const root->Shutdown(); MOZ_DIAGNOSTIC_ASSERT(CheckDocTree()); if (event) { nsCoreUtils::DispatchAccEvent(Move(event)); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleParent::RecvEvent(const uint64_t& aID, const uint32_t& aEventType) { ProxyAccessible* proxy = GetAccessible(aID); if (!proxy) { NS_ERROR("no proxy for event!"); - return true; + return IPC_OK(); } ProxyEvent(proxy, aEventType); if (!nsCoreUtils::AccEventObserversExist()) { - return true; + return IPC_OK(); } xpcAccessibleGeneric* xpcAcc = GetXPCAccessible(proxy); xpcAccessibleDocument* doc = GetAccService()->GetXPCDocument(this); nsIDOMNode* node = nullptr; bool fromUser = true; // XXX fix me RefPtr<xpcAccEvent> event = new xpcAccEvent(aEventType, xpcAcc, doc, node, fromUser); nsCoreUtils::DispatchAccEvent(Move(event)); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleParent::RecvStateChangeEvent(const uint64_t& aID, const uint64_t& aState, const bool& aEnabled) { ProxyAccessible* target = GetAccessible(aID); if (!target) { NS_ERROR("we don't know about the target of a state change event!"); - return true; + return IPC_OK(); } ProxyStateChangeEvent(target, aState, aEnabled); if (!nsCoreUtils::AccEventObserversExist()) { - return true; + return IPC_OK(); } xpcAccessibleGeneric* xpcAcc = GetXPCAccessible(target); xpcAccessibleDocument* doc = GetAccService()->GetXPCDocument(this); uint32_t type = nsIAccessibleEvent::EVENT_STATE_CHANGE; bool extra; uint32_t state = nsAccUtils::To32States(aState, &extra); bool fromUser = true; // XXX fix this nsIDOMNode* node = nullptr; // XXX can we do better? RefPtr<xpcAccStateChangeEvent> event = new xpcAccStateChangeEvent(type, xpcAcc, doc, node, fromUser, state, extra, aEnabled); nsCoreUtils::DispatchAccEvent(Move(event)); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleParent::RecvCaretMoveEvent(const uint64_t& aID, const int32_t& aOffset) { ProxyAccessible* proxy = GetAccessible(aID); if (!proxy) { NS_ERROR("unknown caret move event target!"); - return true; + return IPC_OK(); } ProxyCaretMoveEvent(proxy, aOffset); if (!nsCoreUtils::AccEventObserversExist()) { - return true; + return IPC_OK(); } xpcAccessibleGeneric* xpcAcc = GetXPCAccessible(proxy); xpcAccessibleDocument* doc = GetAccService()->GetXPCDocument(this); nsIDOMNode* node = nullptr; bool fromUser = true; // XXX fix me uint32_t type = nsIAccessibleEvent::EVENT_TEXT_CARET_MOVED; RefPtr<xpcAccCaretMoveEvent> event = new xpcAccCaretMoveEvent(type, xpcAcc, doc, node, fromUser, aOffset); nsCoreUtils::DispatchAccEvent(Move(event)); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleParent::RecvTextChangeEvent(const uint64_t& aID, const nsString& aStr, const int32_t& aStart, const uint32_t& aLen, const bool& aIsInsert, const bool& aFromUser) { ProxyAccessible* target = GetAccessible(aID); if (!target) { NS_ERROR("text change event target is unknown!"); - return true; + return IPC_OK(); } ProxyTextChangeEvent(target, aStr, aStart, aLen, aIsInsert, aFromUser); if (!nsCoreUtils::AccEventObserversExist()) { - return true; + return IPC_OK(); } xpcAccessibleGeneric* xpcAcc = GetXPCAccessible(target); xpcAccessibleDocument* doc = GetAccService()->GetXPCDocument(this); uint32_t type = aIsInsert ? nsIAccessibleEvent::EVENT_TEXT_INSERTED : nsIAccessibleEvent::EVENT_TEXT_REMOVED; nsIDOMNode* node = nullptr; RefPtr<xpcAccTextChangeEvent> event = new xpcAccTextChangeEvent(type, xpcAcc, doc, node, aFromUser, aStart, aLen, aIsInsert, aStr); nsCoreUtils::DispatchAccEvent(Move(event)); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleParent::RecvSelectionEvent(const uint64_t& aID, const uint64_t& aWidgetID, const uint32_t& aType) { ProxyAccessible* target = GetAccessible(aID); ProxyAccessible* widget = GetAccessible(aWidgetID); if (!target || !widget) { NS_ERROR("invalid id in selection event"); - return true; + return IPC_OK(); } ProxySelectionEvent(target, widget, aType); if (!nsCoreUtils::AccEventObserversExist()) { - return true; + return IPC_OK(); } xpcAccessibleGeneric* xpcTarget = GetXPCAccessible(target); xpcAccessibleDocument* xpcDoc = GetAccService()->GetXPCDocument(this); RefPtr<xpcAccEvent> event = new xpcAccEvent(aType, xpcTarget, xpcDoc, nullptr, false); nsCoreUtils::DispatchAccEvent(Move(event)); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleParent::RecvRoleChangedEvent(const uint32_t& aRole) { if (aRole >= roles::LAST_ROLE) { NS_ERROR("child sent bad role in RoleChangedEvent"); - return false; + return IPC_FAIL_NO_REASON(this); } mRole = static_cast<a11y::role>(aRole); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleParent::RecvBindChildDoc(PDocAccessibleParent* aChildDoc, const uint64_t& aID) { // One document should never directly be the child of another. // We should always have at least an outer doc accessible in between. MOZ_ASSERT(aID); if (!aID) - return false; + return IPC_FAIL_NO_REASON(this); MOZ_DIAGNOSTIC_ASSERT(CheckDocTree()); auto childDoc = static_cast<DocAccessibleParent*>(aChildDoc); childDoc->Unbind(); bool result = AddChildDoc(childDoc, aID, false); MOZ_ASSERT(result); MOZ_DIAGNOSTIC_ASSERT(CheckDocTree()); - return result; + if (!result) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); } bool DocAccessibleParent::AddChildDoc(DocAccessibleParent* aChildDoc, uint64_t aParentID, bool aCreating) { // We do not use GetAccessible here because we want to be sure to not get the // document it self. @@ -390,26 +393,28 @@ DocAccessibleParent::AddChildDoc(DocAcce if (aCreating) { ProxyCreated(aChildDoc, Interfaces::DOCUMENT | Interfaces::HYPERTEXT); } return true; } -bool +mozilla::ipc::IPCResult DocAccessibleParent::RecvShutdown() { Destroy(); if (!static_cast<dom::TabParent*>(Manager())->IsDestroyed()) { - return PDocAccessibleParent::Send__delete__(this); + if (!PDocAccessibleParent::Send__delete__(this)) { + return IPC_FAIL_NO_REASON(this); + } } - return true; + return IPC_OK(); } void DocAccessibleParent::Destroy() { NS_ASSERTION(mChildDocs.IsEmpty(), "why weren't the child docs destroyed already?"); MOZ_ASSERT(!mShutdown); @@ -460,28 +465,28 @@ DocAccessibleParent::GetXPCAccessible(Pr #if defined(XP_WIN) /** * @param aCOMProxy COM Proxy to the document in the content process. * @param aParentCOMProxy COM Proxy to the OuterDocAccessible that is * the parent of the document. The content process will use this * proxy when traversing up across the content/chrome boundary. */ -bool +mozilla::ipc::IPCResult DocAccessibleParent::RecvCOMProxy(const IAccessibleHolder& aCOMProxy, IAccessibleHolder* aParentCOMProxy) { RefPtr<IAccessible> ptr(aCOMProxy.Get()); SetCOMInterface(ptr); Accessible* outerDoc = OuterDocOfRemoteBrowser(); IAccessible* rawNative = nullptr; if (outerDoc) { outerDoc->GetNativeInterface((void**) &rawNative); } aParentCOMProxy->Set(IAccessibleHolder::COMPtrType(rawNative)); - return true; + return IPC_OK(); } #endif // defined(XP_WIN) } // a11y } // mozilla
--- a/accessible/ipc/DocAccessibleParent.h +++ b/accessible/ipc/DocAccessibleParent.h @@ -42,54 +42,54 @@ public: bool IsTopLevel() const { return mTopLevel; } bool IsShutdown() const { return mShutdown; } /* * Called when a message from a document in a child process notifies the main * process it is firing an event. */ - virtual bool RecvEvent(const uint64_t& aID, const uint32_t& aType) + virtual mozilla::ipc::IPCResult RecvEvent(const uint64_t& aID, const uint32_t& aType) override; - virtual bool RecvShowEvent(const ShowEventData& aData, const bool& aFromUser) + virtual mozilla::ipc::IPCResult RecvShowEvent(const ShowEventData& aData, const bool& aFromUser) override; - virtual bool RecvHideEvent(const uint64_t& aRootID, const bool& aFromUser) + virtual mozilla::ipc::IPCResult RecvHideEvent(const uint64_t& aRootID, const bool& aFromUser) override; - virtual bool RecvStateChangeEvent(const uint64_t& aID, - const uint64_t& aState, - const bool& aEnabled) override final; + virtual mozilla::ipc::IPCResult RecvStateChangeEvent(const uint64_t& aID, + const uint64_t& aState, + const bool& aEnabled) override final; - virtual bool RecvCaretMoveEvent(const uint64_t& aID, const int32_t& aOffset) + virtual mozilla::ipc::IPCResult RecvCaretMoveEvent(const uint64_t& aID, const int32_t& aOffset) override final; - virtual bool RecvTextChangeEvent(const uint64_t& aID, const nsString& aStr, - const int32_t& aStart, const uint32_t& aLen, - const bool& aIsInsert, - const bool& aFromUser) override; + virtual mozilla::ipc::IPCResult RecvTextChangeEvent(const uint64_t& aID, const nsString& aStr, + const int32_t& aStart, const uint32_t& aLen, + const bool& aIsInsert, + const bool& aFromUser) override; - virtual bool RecvSelectionEvent(const uint64_t& aID, - const uint64_t& aWidgetID, - const uint32_t& aType) override; + virtual mozilla::ipc::IPCResult RecvSelectionEvent(const uint64_t& aID, + const uint64_t& aWidgetID, + const uint32_t& aType) override; - virtual bool RecvRoleChangedEvent(const uint32_t& aRole) override final; + virtual mozilla::ipc::IPCResult RecvRoleChangedEvent(const uint32_t& aRole) override final; - virtual bool RecvBindChildDoc(PDocAccessibleParent* aChildDoc, const uint64_t& aID) override; + virtual mozilla::ipc::IPCResult RecvBindChildDoc(PDocAccessibleParent* aChildDoc, const uint64_t& aID) override; void Unbind() { mParent = nullptr; if (DocAccessibleParent* parent = ParentDoc()) { parent->mChildDocs.RemoveElement(this); } mParentDoc = nullptr; } - virtual bool RecvShutdown() override; + virtual mozilla::ipc::IPCResult RecvShutdown() override; void Destroy(); virtual void ActorDestroy(ActorDestroyReason aWhy) override { MOZ_DIAGNOSTIC_ASSERT(CheckDocTree()); if (!mShutdown) Destroy(); } @@ -139,18 +139,18 @@ public: const ProxyAccessible* GetAccessible(uintptr_t aID) const { return const_cast<DocAccessibleParent*>(this)->GetAccessible(aID); } size_t ChildDocCount() const { return mChildDocs.Length(); } const DocAccessibleParent* ChildDocAt(size_t aIdx) const { return mChildDocs[aIdx]; } #if defined(XP_WIN) - virtual bool RecvCOMProxy(const IAccessibleHolder& aCOMProxy, - IAccessibleHolder* aParentCOMProxy) override; + virtual mozilla::ipc::IPCResult RecvCOMProxy(const IAccessibleHolder& aCOMProxy, + IAccessibleHolder* aParentCOMProxy) override; #endif private: class ProxyEntry : public PLDHashEntryHdr { public: explicit ProxyEntry(const void*) : mProxy(nullptr) {}
--- a/accessible/ipc/other/DocAccessibleChild.cpp +++ b/accessible/ipc/other/DocAccessibleChild.cpp @@ -80,99 +80,102 @@ DocAccessibleChild::IdToTableCellAccessi TableAccessible* DocAccessibleChild::IdToTableAccessible(const uint64_t& aID) const { Accessible* acc = IdToAccessible(aID); return (acc && acc->IsTable()) ? acc->AsTable() : nullptr; } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvState(const uint64_t& aID, uint64_t* aState) { Accessible* acc = IdToAccessible(aID); if (!acc) { *aState = states::DEFUNCT; - return true; + return IPC_OK(); } *aState = acc->State(); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvNativeState(const uint64_t& aID, uint64_t* aState) { Accessible* acc = IdToAccessible(aID); if (!acc) { *aState = states::DEFUNCT; - return true; + return IPC_OK(); } *aState = acc->NativeState(); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvName(const uint64_t& aID, nsString* aName) { Accessible* acc = IdToAccessible(aID); if (!acc) - return true; + return IPC_OK(); acc->Name(*aName); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvValue(const uint64_t& aID, nsString* aValue) { Accessible* acc = IdToAccessible(aID); if (!acc) { - return true; + return IPC_OK(); } acc->Value(*aValue); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvHelp(const uint64_t& aID, nsString* aHelp) { Accessible* acc = IdToAccessible(aID); if (!acc) { - return true; + return IPC_OK(); } acc->Help(*aHelp); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvDescription(const uint64_t& aID, nsString* aDesc) { Accessible* acc = IdToAccessible(aID); if (!acc) - return true; + return IPC_OK(); acc->Description(*aDesc); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvAttributes(const uint64_t& aID, nsTArray<Attribute>* aAttributes) { Accessible* acc = IdToAccessible(aID); if (!acc) - return true; + return IPC_OK(); nsCOMPtr<nsIPersistentProperties> props = acc->Attributes(); - return PersistentPropertiesToArray(props, aAttributes); + if (!PersistentPropertiesToArray(props, aAttributes)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); } bool DocAccessibleChild::PersistentPropertiesToArray(nsIPersistentProperties* aProps, nsTArray<Attribute>* aAttributes) { if (!aProps) { return true; @@ -199,31 +202,31 @@ DocAccessibleChild::PersistentProperties NS_ENSURE_SUCCESS(rv, false); aAttributes->AppendElement(Attribute(name, value)); } return true; } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvRelationByType(const uint64_t& aID, const uint32_t& aType, nsTArray<uint64_t>* aTargets) { Accessible* acc = IdToAccessible(aID); if (!acc) - return true; + return IPC_OK(); auto type = static_cast<RelationType>(aType); Relation rel = acc->RelationByType(type); while (Accessible* target = rel.Next()) aTargets->AppendElement(reinterpret_cast<uintptr_t>(target)); - return true; + return IPC_OK(); } static void AddRelation(Accessible* aAcc, RelationType aType, nsTArray<RelationTargets>* aTargets) { Relation rel = aAcc->RelationByType(aType); nsTArray<uint64_t> targets; @@ -233,309 +236,315 @@ AddRelation(Accessible* aAcc, RelationTy if (!targets.IsEmpty()) { RelationTargets* newRelation = aTargets->AppendElement(RelationTargets(static_cast<uint32_t>(aType), nsTArray<uint64_t>())); newRelation->Targets().SwapElements(targets); } } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvRelations(const uint64_t& aID, nsTArray<RelationTargets>* aRelations) { Accessible* acc = IdToAccessible(aID); if (!acc) - return true; + return IPC_OK(); #define RELATIONTYPE(gecko, s, a, m, i) AddRelation(acc, RelationType::gecko, aRelations); #include "RelationTypeMap.h" #undef RELATIONTYPE - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvIsSearchbox(const uint64_t& aID, bool* aRetVal) { Accessible* acc = IdToAccessible(aID); if (!acc) - return true; + return IPC_OK(); *aRetVal = acc->IsSearchbox(); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvLandmarkRole(const uint64_t& aID, nsString* aLandmark) { Accessible* acc = IdToAccessible(aID); if (!acc) { - return true; + return IPC_OK(); } if (nsIAtom* roleAtom = acc->LandmarkRole()) { roleAtom->ToString(*aLandmark); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvARIARoleAtom(const uint64_t& aID, nsString* aRole) { Accessible* acc = IdToAccessible(aID); if (!acc) { - return true; + return IPC_OK(); } if (const nsRoleMapEntry* roleMap = acc->ARIARoleMap()) { if (nsIAtom* roleAtom = *(roleMap->roleAtom)) { roleAtom->ToString(*aRole); } } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvGetLevelInternal(const uint64_t& aID, int32_t* aLevel) { Accessible* acc = IdToAccessible(aID); if (acc) { *aLevel = acc->GetLevelInternal(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvScrollTo(const uint64_t& aID, const uint32_t& aScrollType) { Accessible* acc = IdToAccessible(aID); if (acc) { nsCoreUtils::ScrollTo(acc->Document()->PresShell(), acc->GetContent(), aScrollType); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvScrollToPoint(const uint64_t& aID, const uint32_t& aScrollType, const int32_t& aX, const int32_t& aY) { Accessible* acc = IdToAccessible(aID); if (acc) { acc->ScrollToPoint(aScrollType, aX, aY); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvCaretLineNumber(const uint64_t& aID, int32_t* aLineNumber) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); *aLineNumber = acc && acc->IsTextRole() ? acc->CaretLineNumber() : 0; - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvCaretOffset(const uint64_t& aID, int32_t* aOffset) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); *aOffset = acc && acc->IsTextRole() ? acc->CaretOffset() : 0; - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvSetCaretOffset(const uint64_t& aID, const int32_t& aOffset) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc && acc->IsTextRole() && acc->IsValidOffset(aOffset)) { acc->SetCaretOffset(aOffset); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvCharacterCount(const uint64_t& aID, int32_t* aCount) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); *aCount = acc ? acc->CharacterCount() : 0; - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvSelectionCount(const uint64_t& aID, int32_t* aCount) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); *aCount = acc ? acc->SelectionCount() : 0; - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTextSubstring(const uint64_t& aID, const int32_t& aStartOffset, const int32_t& aEndOffset, nsString* aText, bool* aValid) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (!acc) { - return true; + return IPC_OK(); } *aValid = acc->IsValidRange(aStartOffset, aEndOffset); acc->TextSubstring(aStartOffset, aEndOffset, *aText); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvGetTextAfterOffset(const uint64_t& aID, const int32_t& aOffset, const int32_t& aBoundaryType, nsString* aText, int32_t* aStartOffset, int32_t* aEndOffset) { *aStartOffset = 0; *aEndOffset = 0; HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc) { acc->TextAfterOffset(aOffset, aBoundaryType, aStartOffset, aEndOffset, *aText); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvGetTextAtOffset(const uint64_t& aID, const int32_t& aOffset, const int32_t& aBoundaryType, nsString* aText, int32_t* aStartOffset, int32_t* aEndOffset) { *aStartOffset = 0; *aEndOffset = 0; HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc) { acc->TextAtOffset(aOffset, aBoundaryType, aStartOffset, aEndOffset, *aText); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvGetTextBeforeOffset(const uint64_t& aID, const int32_t& aOffset, const int32_t& aBoundaryType, nsString* aText, int32_t* aStartOffset, int32_t* aEndOffset) { *aStartOffset = 0; *aEndOffset = 0; HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc) { acc->TextBeforeOffset(aOffset, aBoundaryType, aStartOffset, aEndOffset, *aText); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvCharAt(const uint64_t& aID, const int32_t& aOffset, uint16_t* aChar) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); *aChar = acc && acc->IsTextRole() ? static_cast<uint16_t>(acc->CharAt(aOffset)) : 0; - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTextAttributes(const uint64_t& aID, const bool& aIncludeDefAttrs, const int32_t& aOffset, nsTArray<Attribute>* aAttributes, int32_t* aStartOffset, int32_t* aEndOffset) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (!acc || !acc->IsTextRole()) { - return true; + return IPC_OK(); } nsCOMPtr<nsIPersistentProperties> props = acc->TextAttributes(aIncludeDefAttrs, aOffset, aStartOffset, aEndOffset); - return PersistentPropertiesToArray(props, aAttributes); + if (!PersistentPropertiesToArray(props, aAttributes)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvDefaultTextAttributes(const uint64_t& aID, nsTArray<Attribute> *aAttributes) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (!acc || !acc->IsTextRole()) { - return true; + return IPC_OK(); } nsCOMPtr<nsIPersistentProperties> props = acc->DefaultTextAttributes(); - return PersistentPropertiesToArray(props, aAttributes); + if (!PersistentPropertiesToArray(props, aAttributes)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTextBounds(const uint64_t& aID, const int32_t& aStartOffset, const int32_t& aEndOffset, const uint32_t& aCoordType, nsIntRect* aRetVal) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc && acc->IsTextRole()) { *aRetVal = acc->TextBounds(aStartOffset, aEndOffset, aCoordType); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvCharBounds(const uint64_t& aID, const int32_t& aOffset, const uint32_t& aCoordType, nsIntRect* aRetVal) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc && acc->IsTextRole()) { *aRetVal = acc->CharBounds(aOffset, aCoordType); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvOffsetAtPoint(const uint64_t& aID, const int32_t& aX, const int32_t& aY, const uint32_t& aCoordType, int32_t* aRetVal) { *aRetVal = -1; HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc && acc->IsTextRole()) { *aRetVal = acc->OffsetAtPoint(aX, aY, aCoordType); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvSelectionBoundsAt(const uint64_t& aID, const int32_t& aSelectionNum, bool* aSucceeded, nsString* aData, int32_t* aStartOffset, int32_t* aEndOffset) { *aSucceeded = false; @@ -545,581 +554,581 @@ DocAccessibleChild::RecvSelectionBoundsA if (acc && acc->IsTextRole()) { *aSucceeded = acc->SelectionBoundsAt(aSelectionNum, aStartOffset, aEndOffset); if (*aSucceeded) { acc->TextSubstring(*aStartOffset, *aEndOffset, *aData); } } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvSetSelectionBoundsAt(const uint64_t& aID, const int32_t& aSelectionNum, const int32_t& aStartOffset, const int32_t& aEndOffset, bool* aSucceeded) { *aSucceeded = false; HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc && acc->IsTextRole()) { *aSucceeded = acc->SetSelectionBoundsAt(aSelectionNum, aStartOffset, aEndOffset); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvAddToSelection(const uint64_t& aID, const int32_t& aStartOffset, const int32_t& aEndOffset, bool* aSucceeded) { *aSucceeded = false; HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc && acc->IsTextRole()) { *aSucceeded = acc->AddToSelection(aStartOffset, aEndOffset); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvRemoveFromSelection(const uint64_t& aID, const int32_t& aSelectionNum, bool* aSucceeded) { *aSucceeded = false; HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc && acc->IsTextRole()) { *aSucceeded = acc->RemoveFromSelection(aSelectionNum); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvScrollSubstringTo(const uint64_t& aID, const int32_t& aStartOffset, const int32_t& aEndOffset, const uint32_t& aScrollType) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc) { acc->ScrollSubstringTo(aStartOffset, aEndOffset, aScrollType); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvScrollSubstringToPoint(const uint64_t& aID, const int32_t& aStartOffset, const int32_t& aEndOffset, const uint32_t& aCoordinateType, const int32_t& aX, const int32_t& aY) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc) { acc->ScrollSubstringToPoint(aStartOffset, aEndOffset, aCoordinateType, aX, aY); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvText(const uint64_t& aID, nsString* aText) { TextLeafAccessible* acc = IdToTextLeafAccessible(aID); if (acc) { *aText = acc->Text(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvReplaceText(const uint64_t& aID, const nsString& aText) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc && acc->IsTextRole()) { acc->ReplaceText(aText); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvInsertText(const uint64_t& aID, const nsString& aText, const int32_t& aPosition, bool* aValid) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc && acc->IsTextRole()) { *aValid = acc->IsValidOffset(aPosition); acc->InsertText(aText, aPosition); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvCopyText(const uint64_t& aID, const int32_t& aStartPos, const int32_t& aEndPos, bool* aValid) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc && acc->IsTextRole()) { acc->CopyText(aStartPos, aEndPos); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvCutText(const uint64_t& aID, const int32_t& aStartPos, const int32_t& aEndPos, bool* aValid) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc && acc->IsTextRole()) { *aValid = acc->IsValidRange(aStartPos, aEndPos); acc->CutText(aStartPos, aEndPos); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvDeleteText(const uint64_t& aID, const int32_t& aStartPos, const int32_t& aEndPos, bool* aValid) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc && acc->IsTextRole()) { *aValid = acc->IsValidRange(aStartPos, aEndPos); acc->DeleteText(aStartPos, aEndPos); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvPasteText(const uint64_t& aID, const int32_t& aPosition, bool* aValid) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc && acc->IsTextRole()) { *aValid = acc->IsValidOffset(aPosition); acc->PasteText(aPosition); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvImagePosition(const uint64_t& aID, const uint32_t& aCoordType, nsIntPoint* aRetVal) { ImageAccessible* acc = IdToImageAccessible(aID); if (acc) { *aRetVal = acc->Position(aCoordType); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvImageSize(const uint64_t& aID, nsIntSize* aRetVal) { ImageAccessible* acc = IdToImageAccessible(aID); if (acc) { *aRetVal = acc->Size(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvStartOffset(const uint64_t& aID, uint32_t* aRetVal, bool* aOk) { Accessible* acc = IdToAccessibleLink(aID); if (acc) { *aRetVal = acc->StartOffset(); *aOk = true; } else { *aRetVal = 0; *aOk = false; } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvEndOffset(const uint64_t& aID, uint32_t* aRetVal, bool* aOk) { Accessible* acc = IdToAccessibleLink(aID); if (acc) { *aRetVal = acc->EndOffset(); *aOk = true; } else { *aRetVal = 0; *aOk = false; } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvIsLinkValid(const uint64_t& aID, bool* aRetVal) { Accessible* acc = IdToAccessibleLink(aID); if (acc) { *aRetVal = acc->IsLinkValid(); } else { *aRetVal = false; } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvAnchorCount(const uint64_t& aID, uint32_t* aRetVal, bool* aOk) { Accessible* acc = IdToAccessibleLink(aID); if (acc) { *aRetVal = acc->AnchorCount(); *aOk = true; } else { *aRetVal = 0; *aOk = false; } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvAnchorURIAt(const uint64_t& aID, const uint32_t& aIndex, nsCString* aURI, bool* aOk) { Accessible* acc = IdToAccessibleLink(aID); *aOk = false; if (acc) { nsCOMPtr<nsIURI> uri = acc->AnchorURIAt(aIndex); if (uri) { uri->GetSpec(*aURI); *aOk = true; } } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvAnchorAt(const uint64_t& aID, const uint32_t& aIndex, uint64_t* aIDOfAnchor, bool* aOk) { *aIDOfAnchor = 0; *aOk = false; Accessible* acc = IdToAccessibleLink(aID); if (acc) { Accessible* anchor = acc->AnchorAt(aIndex); if (anchor) { *aIDOfAnchor = reinterpret_cast<uint64_t>(anchor->UniqueID()); *aOk = true; } } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvLinkCount(const uint64_t& aID, uint32_t* aCount) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); *aCount = acc ? acc->LinkCount() : 0; - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvLinkAt(const uint64_t& aID, const uint32_t& aIndex, uint64_t* aIDOfLink, bool* aOk) { *aIDOfLink = 0; *aOk = false; HyperTextAccessible* acc = IdToHyperTextAccessible(aID); if (acc) { Accessible* link = acc->LinkAt(aIndex); if (link) { *aIDOfLink = reinterpret_cast<uint64_t>(link->UniqueID()); *aOk = true; } } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvLinkIndexOf(const uint64_t& aID, const uint64_t& aLinkID, int32_t* aIndex) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); Accessible* link = IdToAccessible(aLinkID); *aIndex = -1; if (acc && link) { *aIndex = acc->LinkIndexOf(link); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvLinkIndexAtOffset(const uint64_t& aID, const uint32_t& aOffset, int32_t* aIndex) { HyperTextAccessible* acc = IdToHyperTextAccessible(aID); *aIndex = acc ? acc->LinkIndexAtOffset(aOffset) : -1; - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableOfACell(const uint64_t& aID, uint64_t* aTableID, bool* aOk) { *aTableID = 0; *aOk = false; TableCellAccessible* acc = IdToTableCellAccessible(aID); if (acc) { TableAccessible* table = acc->Table(); if (table) { *aTableID = reinterpret_cast<uint64_t>(table->AsAccessible()->UniqueID()); *aOk = true; } } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvColIdx(const uint64_t& aID, uint32_t* aIndex) { *aIndex = 0; TableCellAccessible* acc = IdToTableCellAccessible(aID); if (acc) { *aIndex = acc->ColIdx(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvRowIdx(const uint64_t& aID, uint32_t* aIndex) { *aIndex = 0; TableCellAccessible* acc = IdToTableCellAccessible(aID); if (acc) { *aIndex = acc->RowIdx(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvGetPosition(const uint64_t& aID, uint32_t* aColIdx, uint32_t* aRowIdx) { *aColIdx = 0; *aRowIdx = 0; TableCellAccessible* acc = IdToTableCellAccessible(aID); if (acc) { *aColIdx = acc->ColIdx(); *aRowIdx = acc->RowIdx(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvGetColRowExtents(const uint64_t& aID, uint32_t* aColIdx, uint32_t* aRowIdx, uint32_t* aColExtent, uint32_t* aRowExtent) { *aColIdx = 0; *aRowIdx = 0; *aColExtent = 0; *aRowExtent = 0; TableCellAccessible* acc = IdToTableCellAccessible(aID); if (acc) { *aColIdx = acc->ColIdx(); *aRowIdx = acc->RowIdx(); *aColExtent = acc->ColExtent(); *aRowExtent = acc->RowExtent(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvColExtent(const uint64_t& aID, uint32_t* aExtent) { *aExtent = 0; TableCellAccessible* acc = IdToTableCellAccessible(aID); if (acc) { *aExtent = acc->ColExtent(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvRowExtent(const uint64_t& aID, uint32_t* aExtent) { *aExtent = 0; TableCellAccessible* acc = IdToTableCellAccessible(aID); if (acc) { *aExtent = acc->RowExtent(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvColHeaderCells(const uint64_t& aID, nsTArray<uint64_t>* aCells) { TableCellAccessible* acc = IdToTableCellAccessible(aID); if (acc) { AutoTArray<Accessible*, 10> headerCells; acc->ColHeaderCells(&headerCells); aCells->SetCapacity(headerCells.Length()); for (uint32_t i = 0; i < headerCells.Length(); ++i) { aCells->AppendElement( reinterpret_cast<uint64_t>(headerCells[i]->UniqueID())); } } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvRowHeaderCells(const uint64_t& aID, nsTArray<uint64_t>* aCells) { TableCellAccessible* acc = IdToTableCellAccessible(aID); if (acc) { AutoTArray<Accessible*, 10> headerCells; acc->RowHeaderCells(&headerCells); aCells->SetCapacity(headerCells.Length()); for (uint32_t i = 0; i < headerCells.Length(); ++i) { aCells->AppendElement( reinterpret_cast<uint64_t>(headerCells[i]->UniqueID())); } } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvIsCellSelected(const uint64_t& aID, bool* aSelected) { TableCellAccessible* acc = IdToTableCellAccessible(aID); *aSelected = acc && acc->Selected(); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableCaption(const uint64_t& aID, uint64_t* aCaptionID, bool* aOk) { *aCaptionID = 0; *aOk = false; TableAccessible* acc = IdToTableAccessible(aID); if (acc) { Accessible* caption = acc->Caption(); if (caption) { *aCaptionID = reinterpret_cast<uint64_t>(caption->UniqueID()); *aOk = true; } } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableSummary(const uint64_t& aID, nsString* aSummary) { TableAccessible* acc = IdToTableAccessible(aID); if (acc) { acc->Summary(*aSummary); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableColumnCount(const uint64_t& aID, uint32_t* aColCount) { *aColCount = 0; TableAccessible* acc = IdToTableAccessible(aID); if (acc) { *aColCount = acc->ColCount(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableRowCount(const uint64_t& aID, uint32_t* aRowCount) { *aRowCount = 0; TableAccessible* acc = IdToTableAccessible(aID); if (acc) { *aRowCount = acc->RowCount(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableCellAt(const uint64_t& aID, const uint32_t& aRow, const uint32_t& aCol, uint64_t* aCellID, bool* aOk) { *aCellID = 0; *aOk = false; @@ -1127,332 +1136,332 @@ DocAccessibleChild::RecvTableCellAt(cons if (acc) { Accessible* cell = acc->CellAt(aRow, aCol); if (cell) { *aCellID = reinterpret_cast<uint64_t>(cell->UniqueID()); *aOk = true; } } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableCellIndexAt(const uint64_t& aID, const uint32_t& aRow, const uint32_t& aCol, int32_t* aIndex) { *aIndex = -1; TableAccessible* acc = IdToTableAccessible(aID); if (acc) { *aIndex = acc->CellIndexAt(aRow, aCol); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableColumnIndexAt(const uint64_t& aID, const uint32_t& aCellIndex, int32_t* aCol) { *aCol = -1; TableAccessible* acc = IdToTableAccessible(aID); if (acc) { *aCol = acc->ColIndexAt(aCellIndex); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableRowIndexAt(const uint64_t& aID, const uint32_t& aCellIndex, int32_t* aRow) { *aRow = -1; TableAccessible* acc = IdToTableAccessible(aID); if (acc) { *aRow = acc->RowIndexAt(aCellIndex); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableRowAndColumnIndicesAt(const uint64_t& aID, const uint32_t& aCellIndex, int32_t* aRow, int32_t* aCol) { *aRow = -1; *aCol = -1; TableAccessible* acc = IdToTableAccessible(aID); if (acc) { acc->RowAndColIndicesAt(aCellIndex, aRow, aCol); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableColumnExtentAt(const uint64_t& aID, const uint32_t& aRow, const uint32_t& aCol, uint32_t* aExtent) { *aExtent = 0; TableAccessible* acc = IdToTableAccessible(aID); if (acc) { *aExtent = acc->ColExtentAt(aRow, aCol); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableRowExtentAt(const uint64_t& aID, const uint32_t& aRow, const uint32_t& aCol, uint32_t* aExtent) { *aExtent = 0; TableAccessible* acc = IdToTableAccessible(aID); if (acc) { *aExtent = acc->RowExtentAt(aRow, aCol); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableColumnDescription(const uint64_t& aID, const uint32_t& aCol, nsString* aDescription) { TableAccessible* acc = IdToTableAccessible(aID); if (acc) { acc->ColDescription(aCol, *aDescription); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableRowDescription(const uint64_t& aID, const uint32_t& aRow, nsString* aDescription) { TableAccessible* acc = IdToTableAccessible(aID); if (acc) { acc->RowDescription(aRow, *aDescription); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableColumnSelected(const uint64_t& aID, const uint32_t& aCol, bool* aSelected) { *aSelected = false; TableAccessible* acc = IdToTableAccessible(aID); if (acc) { *aSelected = acc->IsColSelected(aCol); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableRowSelected(const uint64_t& aID, const uint32_t& aRow, bool* aSelected) { *aSelected = false; TableAccessible* acc = IdToTableAccessible(aID); if (acc) { *aSelected = acc->IsRowSelected(aRow); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableCellSelected(const uint64_t& aID, const uint32_t& aRow, const uint32_t& aCol, bool* aSelected) { *aSelected = false; TableAccessible* acc = IdToTableAccessible(aID); if (acc) { *aSelected = acc->IsCellSelected(aRow, aCol); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableSelectedCellCount(const uint64_t& aID, uint32_t* aSelectedCells) { *aSelectedCells = 0; TableAccessible* acc = IdToTableAccessible(aID); if (acc) { *aSelectedCells = acc->SelectedCellCount(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableSelectedColumnCount(const uint64_t& aID, uint32_t* aSelectedColumns) { *aSelectedColumns = 0; TableAccessible* acc = IdToTableAccessible(aID); if (acc) { *aSelectedColumns = acc->SelectedColCount(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableSelectedRowCount(const uint64_t& aID, uint32_t* aSelectedRows) { *aSelectedRows = 0; TableAccessible* acc = IdToTableAccessible(aID); if (acc) { *aSelectedRows = acc->SelectedRowCount(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableSelectedCells(const uint64_t& aID, nsTArray<uint64_t>* aCellIDs) { TableAccessible* acc = IdToTableAccessible(aID); if (acc) { AutoTArray<Accessible*, 30> cells; acc->SelectedCells(&cells); aCellIDs->SetCapacity(cells.Length()); for (uint32_t i = 0; i < cells.Length(); ++i) { aCellIDs->AppendElement( reinterpret_cast<uint64_t>(cells[i]->UniqueID())); } } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableSelectedCellIndices(const uint64_t& aID, nsTArray<uint32_t>* aCellIndices) { TableAccessible* acc = IdToTableAccessible(aID); if (acc) { acc->SelectedCellIndices(aCellIndices); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableSelectedColumnIndices(const uint64_t& aID, nsTArray<uint32_t>* aColumnIndices) { TableAccessible* acc = IdToTableAccessible(aID); if (acc) { acc->SelectedColIndices(aColumnIndices); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableSelectedRowIndices(const uint64_t& aID, nsTArray<uint32_t>* aRowIndices) { TableAccessible* acc = IdToTableAccessible(aID); if (acc) { acc->SelectedRowIndices(aRowIndices); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableSelectColumn(const uint64_t& aID, const uint32_t& aCol) { TableAccessible* acc = IdToTableAccessible(aID); if (acc) { acc->SelectCol(aCol); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableSelectRow(const uint64_t& aID, const uint32_t& aRow) { TableAccessible* acc = IdToTableAccessible(aID); if (acc) { acc->SelectRow(aRow); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableUnselectColumn(const uint64_t& aID, const uint32_t& aCol) { TableAccessible* acc = IdToTableAccessible(aID); if (acc) { acc->UnselectCol(aCol); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableUnselectRow(const uint64_t& aID, const uint32_t& aRow) { TableAccessible* acc = IdToTableAccessible(aID); if (acc) { acc->UnselectRow(aRow); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTableIsProbablyForLayout(const uint64_t& aID, bool* aForLayout) { *aForLayout = false; TableAccessible* acc = IdToTableAccessible(aID); if (acc) { *aForLayout = acc->IsProbablyLayoutTable(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvAtkTableColumnHeader(const uint64_t& aID, const int32_t& aCol, uint64_t* aHeader, bool* aOk) { *aHeader = 0; *aOk = false; @@ -1462,20 +1471,20 @@ DocAccessibleChild::RecvAtkTableColumnHe Accessible* header = AccessibleWrap::GetColumnHeader(acc, aCol); if (header) { *aHeader = reinterpret_cast<uint64_t>(header->UniqueID()); *aOk = true; } } #endif - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvAtkTableRowHeader(const uint64_t& aID, const int32_t& aRow, uint64_t* aHeader, bool* aOk) { *aHeader = 0; *aOk = false; @@ -1485,434 +1494,434 @@ DocAccessibleChild::RecvAtkTableRowHeade Accessible* header = AccessibleWrap::GetRowHeader(acc, aRow); if (header) { *aHeader = reinterpret_cast<uint64_t>(header->UniqueID()); *aOk = true; } } #endif - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvSelectedItems(const uint64_t& aID, nsTArray<uint64_t>* aSelectedItemIDs) { Accessible* acc = IdToAccessibleSelect(aID); if (acc) { AutoTArray<Accessible*, 10> selectedItems; acc->SelectedItems(&selectedItems); aSelectedItemIDs->SetCapacity(selectedItems.Length()); for (size_t i = 0; i < selectedItems.Length(); ++i) { aSelectedItemIDs->AppendElement( reinterpret_cast<uint64_t>(selectedItems[i]->UniqueID())); } } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvSelectedItemCount(const uint64_t& aID, uint32_t* aCount) { *aCount = 0; Accessible* acc = IdToAccessibleSelect(aID); if (acc) { *aCount = acc->SelectedItemCount(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvGetSelectedItem(const uint64_t& aID, const uint32_t& aIndex, uint64_t* aSelected, bool* aOk) { *aSelected = 0; *aOk = false; Accessible* acc = IdToAccessibleSelect(aID); if (acc) { Accessible* item = acc->GetSelectedItem(aIndex); if (item) { *aSelected = reinterpret_cast<uint64_t>(item->UniqueID()); *aOk = true; } } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvIsItemSelected(const uint64_t& aID, const uint32_t& aIndex, bool* aSelected) { *aSelected = false; Accessible* acc = IdToAccessibleSelect(aID); if (acc) { *aSelected = acc->IsItemSelected(aIndex); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvAddItemToSelection(const uint64_t& aID, const uint32_t& aIndex, bool* aSuccess) { *aSuccess = false; Accessible* acc = IdToAccessibleSelect(aID); if (acc) { *aSuccess = acc->AddItemToSelection(aIndex); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvRemoveItemFromSelection(const uint64_t& aID, const uint32_t& aIndex, bool* aSuccess) { *aSuccess = false; Accessible* acc = IdToAccessibleSelect(aID); if (acc) { *aSuccess = acc->RemoveItemFromSelection(aIndex); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvSelectAll(const uint64_t& aID, bool* aSuccess) { *aSuccess = false; Accessible* acc = IdToAccessibleSelect(aID); if (acc) { *aSuccess = acc->SelectAll(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvUnselectAll(const uint64_t& aID, bool* aSuccess) { *aSuccess = false; Accessible* acc = IdToAccessibleSelect(aID); if (acc) { *aSuccess = acc->UnselectAll(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTakeSelection(const uint64_t& aID) { Accessible* acc = IdToAccessible(aID); if (acc) { acc->TakeSelection(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvSetSelected(const uint64_t& aID, const bool& aSelect) { Accessible* acc = IdToAccessible(aID); if (acc) { acc->SetSelected(aSelect); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvDoAction(const uint64_t& aID, const uint8_t& aIndex, bool* aSuccess) { *aSuccess = false; Accessible* acc = IdToAccessible(aID); if (acc) { *aSuccess = acc->DoAction(aIndex); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvActionCount(const uint64_t& aID, uint8_t* aCount) { *aCount = 0; Accessible* acc = IdToAccessible(aID); if (acc) { *aCount = acc->ActionCount(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvActionDescriptionAt(const uint64_t& aID, const uint8_t& aIndex, nsString* aDescription) { Accessible* acc = IdToAccessible(aID); if (acc) { acc->ActionDescriptionAt(aIndex, *aDescription); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvActionNameAt(const uint64_t& aID, const uint8_t& aIndex, nsString* aName) { Accessible* acc = IdToAccessible(aID); if (acc) { acc->ActionNameAt(aIndex, *aName); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvAccessKey(const uint64_t& aID, uint32_t* aKey, uint32_t* aModifierMask) { *aKey = 0; *aModifierMask = 0; Accessible* acc = IdToAccessible(aID); if (acc) { KeyBinding kb = acc->AccessKey(); *aKey = kb.Key(); *aModifierMask = kb.ModifierMask(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvKeyboardShortcut(const uint64_t& aID, uint32_t* aKey, uint32_t* aModifierMask) { *aKey = 0; *aModifierMask = 0; Accessible* acc = IdToAccessible(aID); if (acc) { KeyBinding kb = acc->KeyboardShortcut(); *aKey = kb.Key(); *aModifierMask = kb.ModifierMask(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvAtkKeyBinding(const uint64_t& aID, nsString* aResult) { #ifdef MOZ_ACCESSIBILITY_ATK Accessible* acc = IdToAccessible(aID); if (acc) { AccessibleWrap::GetKeyBinding(acc, *aResult); } #endif - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvCurValue(const uint64_t& aID, double* aValue) { *aValue = UnspecifiedNaN<double>(); Accessible* acc = IdToAccessible(aID); if (acc) { *aValue = acc->CurValue(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvSetCurValue(const uint64_t& aID, const double& aValue, bool* aRetVal) { *aRetVal = false; Accessible* acc = IdToAccessible(aID); if (acc) { *aRetVal = acc->SetCurValue(aValue); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvMinValue(const uint64_t& aID, double* aValue) { *aValue = UnspecifiedNaN<double>(); Accessible* acc = IdToAccessible(aID); if (acc) { *aValue = acc->MinValue(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvMaxValue(const uint64_t& aID, double* aValue) { *aValue = UnspecifiedNaN<double>(); Accessible* acc = IdToAccessible(aID); if (acc) { *aValue = acc->MaxValue(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvStep(const uint64_t& aID, double* aStep) { *aStep = UnspecifiedNaN<double>(); Accessible* acc = IdToAccessible(aID); if (acc) { *aStep = acc->Step(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTakeFocus(const uint64_t& aID) { Accessible* acc = IdToAccessible(aID); if (acc) { acc->TakeFocus(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvFocusedChild(const uint64_t& aID, uint64_t* aChild, bool* aOk) { *aChild = 0; *aOk = false; Accessible* acc = IdToAccessible(aID); if (acc) { Accessible* child = acc->FocusedChild(); if (child) { *aChild = reinterpret_cast<uint64_t>(child->UniqueID()); *aOk = true; } } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvLanguage(const uint64_t& aID, nsString* aLocale) { Accessible* acc = IdToAccessible(aID); if (acc) { acc->Language(*aLocale); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvDocType(const uint64_t& aID, nsString* aType) { Accessible* acc = IdToAccessible(aID); if (acc && acc->IsDoc()) { acc->AsDoc()->DocType(*aType); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvTitle(const uint64_t& aID, nsString* aTitle) { Accessible* acc = IdToAccessible(aID); if (acc) { mozilla::ErrorResult rv; acc->GetContent()->GetTextContent(*aTitle, rv); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvURL(const uint64_t& aID, nsString* aURL) { Accessible* acc = IdToAccessible(aID); if (acc && acc->IsDoc()) { acc->AsDoc()->URL(*aURL); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvMimeType(const uint64_t& aID, nsString* aMime) { Accessible* acc = IdToAccessible(aID); if (acc && acc->IsDoc()) { acc->AsDoc()->MimeType(*aMime); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvURLDocTypeMimeType(const uint64_t& aID, nsString* aURL, nsString* aDocType, nsString* aMimeType) { Accessible* acc = IdToAccessible(aID); if (acc && acc->IsDoc()) { DocAccessible* doc = acc->AsDoc(); doc->URL(*aURL); doc->DocType(*aDocType); doc->MimeType(*aMimeType); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvAccessibleAtPoint(const uint64_t& aID, const int32_t& aX, const int32_t& aY, const bool& aNeedsScreenCoords, const uint32_t& aWhich, uint64_t* aResult, bool* aOk) { @@ -1933,20 +1942,20 @@ DocAccessibleChild::RecvAccessibleAtPoin acc->ChildAtPoint(x, y, static_cast<Accessible::EWhichChildAtPoint>(aWhich)); if (result) { *aResult = reinterpret_cast<uint64_t>(result->UniqueID()); *aOk = true; } } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvExtents(const uint64_t& aID, const bool& aNeedsScreenCoords, int32_t* aX, int32_t* aY, int32_t* aWidth, int32_t* aHeight) { *aX = 0; @@ -1965,34 +1974,34 @@ DocAccessibleChild::RecvExtents(const ui } *aX = screenRect.x; *aY = screenRect.y; *aWidth = screenRect.width; *aHeight = screenRect.height; } } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult DocAccessibleChild::RecvDOMNodeID(const uint64_t& aID, nsString* aDOMNodeID) { Accessible* acc = IdToAccessible(aID); if (!acc) { - return true; + return IPC_OK(); } nsIContent* content = acc->GetContent(); if (!content) { - return true; + return IPC_OK(); } nsIAtom* id = content->GetID(); if (id) { id->ToString(*aDOMNodeID); } - return true; + return IPC_OK(); } } }
--- a/accessible/ipc/other/DocAccessibleChild.h +++ b/accessible/ipc/other/DocAccessibleChild.h @@ -35,444 +35,444 @@ public: ~DocAccessibleChild() { MOZ_COUNT_DTOR_INHERITED(DocAccessibleChild, DocAccessibleChildBase); } /* * Return the state for the accessible with given ID. */ - virtual bool RecvState(const uint64_t& aID, uint64_t* aState) override; + virtual mozilla::ipc::IPCResult RecvState(const uint64_t& aID, uint64_t* aState) override; /* * Return the native state for the accessible with given ID. */ - virtual bool RecvNativeState(const uint64_t& aID, uint64_t* aState) override; + virtual mozilla::ipc::IPCResult RecvNativeState(const uint64_t& aID, uint64_t* aState) override; /* * Get the name for the accessible with given id. */ - virtual bool RecvName(const uint64_t& aID, nsString* aName) override; + virtual mozilla::ipc::IPCResult RecvName(const uint64_t& aID, nsString* aName) override; - virtual bool RecvValue(const uint64_t& aID, nsString* aValue) override; + virtual mozilla::ipc::IPCResult RecvValue(const uint64_t& aID, nsString* aValue) override; - virtual bool RecvHelp(const uint64_t& aID, nsString* aHelp) override; + virtual mozilla::ipc::IPCResult RecvHelp(const uint64_t& aID, nsString* aHelp) override; /* * Get the description for the accessible with given id. */ - virtual bool RecvDescription(const uint64_t& aID, nsString* aDesc) override; - virtual bool RecvRelationByType(const uint64_t& aID, const uint32_t& aType, - nsTArray<uint64_t>* aTargets) override; - virtual bool RecvRelations(const uint64_t& aID, - nsTArray<RelationTargets>* aRelations) + virtual mozilla::ipc::IPCResult RecvDescription(const uint64_t& aID, nsString* aDesc) override; + virtual mozilla::ipc::IPCResult RecvRelationByType(const uint64_t& aID, const uint32_t& aType, + nsTArray<uint64_t>* aTargets) override; + virtual mozilla::ipc::IPCResult RecvRelations(const uint64_t& aID, + nsTArray<RelationTargets>* aRelations) override; - virtual bool RecvIsSearchbox(const uint64_t& aID, bool* aRetVal) override; + virtual mozilla::ipc::IPCResult RecvIsSearchbox(const uint64_t& aID, bool* aRetVal) override; - virtual bool RecvLandmarkRole(const uint64_t& aID, nsString* aLandmark) override; + virtual mozilla::ipc::IPCResult RecvLandmarkRole(const uint64_t& aID, nsString* aLandmark) override; - virtual bool RecvARIARoleAtom(const uint64_t& aID, nsString* aRole) override; + virtual mozilla::ipc::IPCResult RecvARIARoleAtom(const uint64_t& aID, nsString* aRole) override; - virtual bool RecvGetLevelInternal(const uint64_t& aID, int32_t* aLevel) override; + virtual mozilla::ipc::IPCResult RecvGetLevelInternal(const uint64_t& aID, int32_t* aLevel) override; - virtual bool RecvAttributes(const uint64_t& aID, - nsTArray<Attribute> *aAttributes) override; - virtual bool RecvScrollTo(const uint64_t& aID, const uint32_t& aScrollType) + virtual mozilla::ipc::IPCResult RecvAttributes(const uint64_t& aID, + nsTArray<Attribute> *aAttributes) override; + virtual mozilla::ipc::IPCResult RecvScrollTo(const uint64_t& aID, const uint32_t& aScrollType) override; - virtual bool RecvScrollToPoint(const uint64_t& aID, - const uint32_t& aScrollType, - const int32_t& aX, const int32_t& aY) override; + virtual mozilla::ipc::IPCResult RecvScrollToPoint(const uint64_t& aID, + const uint32_t& aScrollType, + const int32_t& aX, const int32_t& aY) override; - virtual bool RecvCaretLineNumber(const uint64_t& aID, int32_t* aLineNumber) + virtual mozilla::ipc::IPCResult RecvCaretLineNumber(const uint64_t& aID, int32_t* aLineNumber) override; - virtual bool RecvCaretOffset(const uint64_t& aID, int32_t* aOffset) + virtual mozilla::ipc::IPCResult RecvCaretOffset(const uint64_t& aID, int32_t* aOffset) override; - virtual bool RecvSetCaretOffset(const uint64_t& aID, const int32_t& aOffset) + virtual mozilla::ipc::IPCResult RecvSetCaretOffset(const uint64_t& aID, const int32_t& aOffset) override; - virtual bool RecvCharacterCount(const uint64_t& aID, int32_t* aCount) + virtual mozilla::ipc::IPCResult RecvCharacterCount(const uint64_t& aID, int32_t* aCount) override; - virtual bool RecvSelectionCount(const uint64_t& aID, int32_t* aCount) + virtual mozilla::ipc::IPCResult RecvSelectionCount(const uint64_t& aID, int32_t* aCount) override; - virtual bool RecvTextSubstring(const uint64_t& aID, - const int32_t& aStartOffset, - const int32_t& aEndOffset, nsString* aText, - bool* aValid) override; + virtual mozilla::ipc::IPCResult RecvTextSubstring(const uint64_t& aID, + const int32_t& aStartOffset, + const int32_t& aEndOffset, nsString* aText, + bool* aValid) override; - virtual bool RecvGetTextAfterOffset(const uint64_t& aID, - const int32_t& aOffset, - const int32_t& aBoundaryType, - nsString* aText, int32_t* aStartOffset, - int32_t* aEndOffset) override; - virtual bool RecvGetTextAtOffset(const uint64_t& aID, - const int32_t& aOffset, - const int32_t& aBoundaryType, - nsString* aText, int32_t* aStartOffset, - int32_t* aEndOffset) override; - virtual bool RecvGetTextBeforeOffset(const uint64_t& aID, - const int32_t& aOffset, - const int32_t& aBoundaryType, - nsString* aText, int32_t* aStartOffset, - int32_t* aEndOffset) override; + virtual mozilla::ipc::IPCResult RecvGetTextAfterOffset(const uint64_t& aID, + const int32_t& aOffset, + const int32_t& aBoundaryType, + nsString* aText, int32_t* aStartOffset, + int32_t* aEndOffset) override; + virtual mozilla::ipc::IPCResult RecvGetTextAtOffset(const uint64_t& aID, + const int32_t& aOffset, + const int32_t& aBoundaryType, + nsString* aText, int32_t* aStartOffset, + int32_t* aEndOffset) override; + virtual mozilla::ipc::IPCResult RecvGetTextBeforeOffset(const uint64_t& aID, + const int32_t& aOffset, + const int32_t& aBoundaryType, + nsString* aText, int32_t* aStartOffset, + int32_t* aEndOffset) override; - virtual bool RecvCharAt(const uint64_t& aID, - const int32_t& aOffset, - uint16_t* aChar) override; + virtual mozilla::ipc::IPCResult RecvCharAt(const uint64_t& aID, + const int32_t& aOffset, + uint16_t* aChar) override; - virtual bool RecvTextAttributes(const uint64_t& aID, - const bool& aIncludeDefAttrs, - const int32_t& aOffset, - nsTArray<Attribute>* aAttributes, - int32_t* aStartOffset, - int32_t* aEndOffset) + virtual mozilla::ipc::IPCResult RecvTextAttributes(const uint64_t& aID, + const bool& aIncludeDefAttrs, + const int32_t& aOffset, + nsTArray<Attribute>* aAttributes, + int32_t* aStartOffset, + int32_t* aEndOffset) override; - virtual bool RecvDefaultTextAttributes(const uint64_t& aID, - nsTArray<Attribute>* aAttributes) + virtual mozilla::ipc::IPCResult RecvDefaultTextAttributes(const uint64_t& aID, + nsTArray<Attribute>* aAttributes) override; - virtual bool RecvTextBounds(const uint64_t& aID, - const int32_t& aStartOffset, - const int32_t& aEndOffset, - const uint32_t& aCoordType, - nsIntRect* aRetVal) override; + virtual mozilla::ipc::IPCResult RecvTextBounds(const uint64_t& aID, + const int32_t& aStartOffset, + const int32_t& aEndOffset, + const uint32_t& aCoordType, + nsIntRect* aRetVal) override; - virtual bool RecvCharBounds(const uint64_t& aID, - const int32_t& aOffset, - const uint32_t& aCoordType, - nsIntRect* aRetVal) override; + virtual mozilla::ipc::IPCResult RecvCharBounds(const uint64_t& aID, + const int32_t& aOffset, + const uint32_t& aCoordType, + nsIntRect* aRetVal) override; - virtual bool RecvOffsetAtPoint(const uint64_t& aID, - const int32_t& aX, - const int32_t& aY, - const uint32_t& aCoordType, - int32_t* aRetVal) override; + virtual mozilla::ipc::IPCResult RecvOffsetAtPoint(const uint64_t& aID, + const int32_t& aX, + const int32_t& aY, + const uint32_t& aCoordType, + int32_t* aRetVal) override; - virtual bool RecvSelectionBoundsAt(const uint64_t& aID, - const int32_t& aSelectionNum, - bool* aSucceeded, - nsString* aData, - int32_t* aStartOffset, - int32_t* aEndOffset) override; + virtual mozilla::ipc::IPCResult RecvSelectionBoundsAt(const uint64_t& aID, + const int32_t& aSelectionNum, + bool* aSucceeded, + nsString* aData, + int32_t* aStartOffset, + int32_t* aEndOffset) override; - virtual bool RecvSetSelectionBoundsAt(const uint64_t& aID, - const int32_t& aSelectionNum, - const int32_t& aStartOffset, - const int32_t& aEndOffset, - bool* aSucceeded) override; + virtual mozilla::ipc::IPCResult RecvSetSelectionBoundsAt(const uint64_t& aID, + const int32_t& aSelectionNum, + const int32_t& aStartOffset, + const int32_t& aEndOffset, + bool* aSucceeded) override; - virtual bool RecvAddToSelection(const uint64_t& aID, - const int32_t& aStartOffset, - const int32_t& aEndOffset, - bool* aSucceeded) override; + virtual mozilla::ipc::IPCResult RecvAddToSelection(const uint64_t& aID, + const int32_t& aStartOffset, + const int32_t& aEndOffset, + bool* aSucceeded) override; - virtual bool RecvRemoveFromSelection(const uint64_t& aID, - const int32_t& aSelectionNum, - bool* aSucceeded) override; + virtual mozilla::ipc::IPCResult RecvRemoveFromSelection(const uint64_t& aID, + const int32_t& aSelectionNum, + bool* aSucceeded) override; - virtual bool RecvScrollSubstringTo(const uint64_t& aID, - const int32_t& aStartOffset, - const int32_t& aEndOffset, - const uint32_t& aScrollType) override; + virtual mozilla::ipc::IPCResult RecvScrollSubstringTo(const uint64_t& aID, + const int32_t& aStartOffset, + const int32_t& aEndOffset, + const uint32_t& aScrollType) override; - virtual bool RecvScrollSubstringToPoint(const uint64_t& aID, - const int32_t& aStartOffset, - const int32_t& aEndOffset, - const uint32_t& aCoordinateType, - const int32_t& aX, - const int32_t& aY) override; + virtual mozilla::ipc::IPCResult RecvScrollSubstringToPoint(const uint64_t& aID, + const int32_t& aStartOffset, + const int32_t& aEndOffset, + const uint32_t& aCoordinateType, + const int32_t& aX, + const int32_t& aY) override; - virtual bool RecvText(const uint64_t& aID, - nsString* aText) override; + virtual mozilla::ipc::IPCResult RecvText(const uint64_t& aID, + nsString* aText) override; - virtual bool RecvReplaceText(const uint64_t& aID, - const nsString& aText) override; + virtual mozilla::ipc::IPCResult RecvReplaceText(const uint64_t& aID, + const nsString& aText) override; - virtual bool RecvInsertText(const uint64_t& aID, - const nsString& aText, - const int32_t& aPosition, bool* aValid) override; + virtual mozilla::ipc::IPCResult RecvInsertText(const uint64_t& aID, + const nsString& aText, + const int32_t& aPosition, bool* aValid) override; - virtual bool RecvCopyText(const uint64_t& aID, - const int32_t& aStartPos, - const int32_t& aEndPos, bool* aValid) override; + virtual mozilla::ipc::IPCResult RecvCopyText(const uint64_t& aID, + const int32_t& aStartPos, + const int32_t& aEndPos, bool* aValid) override; - virtual bool RecvCutText(const uint64_t& aID, - const int32_t& aStartPos, - const int32_t& aEndPos, bool* aValid) override; + virtual mozilla::ipc::IPCResult RecvCutText(const uint64_t& aID, + const int32_t& aStartPos, + const int32_t& aEndPos, bool* aValid) override; - virtual bool RecvDeleteText(const uint64_t& aID, - const int32_t& aStartPos, - const int32_t& aEndPos, bool* aValid) override; + virtual mozilla::ipc::IPCResult RecvDeleteText(const uint64_t& aID, + const int32_t& aStartPos, + const int32_t& aEndPos, bool* aValid) override; - virtual bool RecvPasteText(const uint64_t& aID, - const int32_t& aPosition, bool* aValid) override; + virtual mozilla::ipc::IPCResult RecvPasteText(const uint64_t& aID, + const int32_t& aPosition, bool* aValid) override; - virtual bool RecvImagePosition(const uint64_t& aID, - const uint32_t& aCoordType, - nsIntPoint* aRetVal) override; + virtual mozilla::ipc::IPCResult RecvImagePosition(const uint64_t& aID, + const uint32_t& aCoordType, + nsIntPoint* aRetVal) override; - virtual bool RecvImageSize(const uint64_t& aID, - nsIntSize* aRetVal) override; + virtual mozilla::ipc::IPCResult RecvImageSize(const uint64_t& aID, + nsIntSize* aRetVal) override; - virtual bool RecvStartOffset(const uint64_t& aID, - uint32_t* aRetVal, - bool* aOk) override; - virtual bool RecvEndOffset(const uint64_t& aID, - uint32_t* aRetVal, - bool* aOk) override; - virtual bool RecvIsLinkValid(const uint64_t& aID, - bool* aRetVal) override; - virtual bool RecvAnchorCount(const uint64_t& aID, - uint32_t* aRetVal, bool* aOk) override; - virtual bool RecvAnchorURIAt(const uint64_t& aID, - const uint32_t& aIndex, - nsCString* aURI, - bool* aOk) override; - virtual bool RecvAnchorAt(const uint64_t& aID, - const uint32_t& aIndex, - uint64_t* aIDOfAnchor, - bool* aOk) override; + virtual mozilla::ipc::IPCResult RecvStartOffset(const uint64_t& aID, + uint32_t* aRetVal, + bool* aOk) override; + virtual mozilla::ipc::IPCResult RecvEndOffset(const uint64_t& aID, + uint32_t* aRetVal, + bool* aOk) override; + virtual mozilla::ipc::IPCResult RecvIsLinkValid(const uint64_t& aID, + bool* aRetVal) override; + virtual mozilla::ipc::IPCResult RecvAnchorCount(const uint64_t& aID, + uint32_t* aRetVal, bool* aOk) override; + virtual mozilla::ipc::IPCResult RecvAnchorURIAt(const uint64_t& aID, + const uint32_t& aIndex, + nsCString* aURI, + bool* aOk) override; + virtual mozilla::ipc::IPCResult RecvAnchorAt(const uint64_t& aID, + const uint32_t& aIndex, + uint64_t* aIDOfAnchor, + bool* aOk) override; - virtual bool RecvLinkCount(const uint64_t& aID, - uint32_t* aCount) override; + virtual mozilla::ipc::IPCResult RecvLinkCount(const uint64_t& aID, + uint32_t* aCount) override; - virtual bool RecvLinkAt(const uint64_t& aID, - const uint32_t& aIndex, - uint64_t* aIDOfLink, - bool* aOk) override; + virtual mozilla::ipc::IPCResult RecvLinkAt(const uint64_t& aID, + const uint32_t& aIndex, + uint64_t* aIDOfLink, + bool* aOk) override; - virtual bool RecvLinkIndexOf(const uint64_t& aID, - const uint64_t& aLinkID, - int32_t* aIndex) override; + virtual mozilla::ipc::IPCResult RecvLinkIndexOf(const uint64_t& aID, + const uint64_t& aLinkID, + int32_t* aIndex) override; - virtual bool RecvLinkIndexAtOffset(const uint64_t& aID, - const uint32_t& aOffset, - int32_t* aIndex) override; + virtual mozilla::ipc::IPCResult RecvLinkIndexAtOffset(const uint64_t& aID, + const uint32_t& aOffset, + int32_t* aIndex) override; - virtual bool RecvTableOfACell(const uint64_t& aID, - uint64_t* aTableID, - bool* aOk) override; + virtual mozilla::ipc::IPCResult RecvTableOfACell(const uint64_t& aID, + uint64_t* aTableID, + bool* aOk) override; - virtual bool RecvColIdx(const uint64_t& aID, uint32_t* aIndex) override; + virtual mozilla::ipc::IPCResult RecvColIdx(const uint64_t& aID, uint32_t* aIndex) override; - virtual bool RecvRowIdx(const uint64_t& aID, uint32_t* aIndex) override; + virtual mozilla::ipc::IPCResult RecvRowIdx(const uint64_t& aID, uint32_t* aIndex) override; - virtual bool RecvColExtent(const uint64_t& aID, uint32_t* aExtent) override; + virtual mozilla::ipc::IPCResult RecvColExtent(const uint64_t& aID, uint32_t* aExtent) override; - virtual bool RecvGetPosition(const uint64_t& aID, - uint32_t* aColIdx, uint32_t* aRowIdx) override; + virtual mozilla::ipc::IPCResult RecvGetPosition(const uint64_t& aID, + uint32_t* aColIdx, uint32_t* aRowIdx) override; - virtual bool RecvGetColRowExtents(const uint64_t& aID, - uint32_t* aColIdx, uint32_t* aRowIdx, - uint32_t* aColExtent, uint32_t* aRowExtent) override; + virtual mozilla::ipc::IPCResult RecvGetColRowExtents(const uint64_t& aID, + uint32_t* aColIdx, uint32_t* aRowIdx, + uint32_t* aColExtent, uint32_t* aRowExtent) override; - virtual bool RecvRowExtent(const uint64_t& aID, uint32_t* aExtent) override; + virtual mozilla::ipc::IPCResult RecvRowExtent(const uint64_t& aID, uint32_t* aExtent) override; - virtual bool RecvColHeaderCells(const uint64_t& aID, - nsTArray<uint64_t>* aCells) override; + virtual mozilla::ipc::IPCResult RecvColHeaderCells(const uint64_t& aID, + nsTArray<uint64_t>* aCells) override; - virtual bool RecvRowHeaderCells(const uint64_t& aID, - nsTArray<uint64_t>* aCells) override; + virtual mozilla::ipc::IPCResult RecvRowHeaderCells(const uint64_t& aID, + nsTArray<uint64_t>* aCells) override; - virtual bool RecvIsCellSelected(const uint64_t& aID, - bool* aSelected) override; + virtual mozilla::ipc::IPCResult RecvIsCellSelected(const uint64_t& aID, + bool* aSelected) override; - virtual bool RecvTableCaption(const uint64_t& aID, - uint64_t* aCaptionID, - bool* aOk) override; - virtual bool RecvTableSummary(const uint64_t& aID, - nsString* aSummary) override; - virtual bool RecvTableColumnCount(const uint64_t& aID, - uint32_t* aColCount) override; - virtual bool RecvTableRowCount(const uint64_t& aID, - uint32_t* aRowCount) override; - virtual bool RecvTableCellAt(const uint64_t& aID, - const uint32_t& aRow, - const uint32_t& aCol, - uint64_t* aCellID, - bool* aOk) override; - virtual bool RecvTableCellIndexAt(const uint64_t& aID, - const uint32_t& aRow, - const uint32_t& aCol, - int32_t* aIndex) override; - virtual bool RecvTableColumnIndexAt(const uint64_t& aID, - const uint32_t& aCellIndex, - int32_t* aCol) override; - virtual bool RecvTableRowIndexAt(const uint64_t& aID, - const uint32_t& aCellIndex, - int32_t* aRow) override; - virtual bool RecvTableRowAndColumnIndicesAt(const uint64_t& aID, - const uint32_t& aCellIndex, - int32_t* aRow, - int32_t* aCol) override; - virtual bool RecvTableColumnExtentAt(const uint64_t& aID, - const uint32_t& aRow, - const uint32_t& aCol, - uint32_t* aExtent) override; - virtual bool RecvTableRowExtentAt(const uint64_t& aID, - const uint32_t& aRow, - const uint32_t& aCol, - uint32_t* aExtent) override; - virtual bool RecvTableColumnDescription(const uint64_t& aID, - const uint32_t& aCol, - nsString* aDescription) override; - virtual bool RecvTableRowDescription(const uint64_t& aID, - const uint32_t& aRow, - nsString* aDescription) override; - virtual bool RecvTableColumnSelected(const uint64_t& aID, - const uint32_t& aCol, - bool* aSelected) override; - virtual bool RecvTableRowSelected(const uint64_t& aID, - const uint32_t& aRow, - bool* aSelected) override; - virtual bool RecvTableCellSelected(const uint64_t& aID, - const uint32_t& aRow, - const uint32_t& aCol, - bool* aSelected) override; - virtual bool RecvTableSelectedCellCount(const uint64_t& aID, - uint32_t* aSelectedCells) override; - virtual bool RecvTableSelectedColumnCount(const uint64_t& aID, - uint32_t* aSelectedColumns) override; - virtual bool RecvTableSelectedRowCount(const uint64_t& aID, - uint32_t* aSelectedRows) override; - virtual bool RecvTableSelectedCells(const uint64_t& aID, - nsTArray<uint64_t>* aCellIDs) override; - virtual bool RecvTableSelectedCellIndices(const uint64_t& aID, - nsTArray<uint32_t>* aCellIndices) override; - virtual bool RecvTableSelectedColumnIndices(const uint64_t& aID, - nsTArray<uint32_t>* aColumnIndices) override; - virtual bool RecvTableSelectedRowIndices(const uint64_t& aID, - nsTArray<uint32_t>* aRowIndices) override; - virtual bool RecvTableSelectColumn(const uint64_t& aID, - const uint32_t& aCol) override; - virtual bool RecvTableSelectRow(const uint64_t& aID, - const uint32_t& aRow) override; - virtual bool RecvTableUnselectColumn(const uint64_t& aID, - const uint32_t& aCol) override; - virtual bool RecvTableUnselectRow(const uint64_t& aID, - const uint32_t& aRow) override; - virtual bool RecvTableIsProbablyForLayout(const uint64_t& aID, - bool* aForLayout) override; - virtual bool RecvAtkTableColumnHeader(const uint64_t& aID, - const int32_t& aCol, - uint64_t* aHeader, - bool* aOk) override; - virtual bool RecvAtkTableRowHeader(const uint64_t& aID, - const int32_t& aRow, - uint64_t* aHeader, - bool* aOk) override; + virtual mozilla::ipc::IPCResult RecvTableCaption(const uint64_t& aID, + uint64_t* aCaptionID, + bool* aOk) override; + virtual mozilla::ipc::IPCResult RecvTableSummary(const uint64_t& aID, + nsString* aSummary) override; + virtual mozilla::ipc::IPCResult RecvTableColumnCount(const uint64_t& aID, + uint32_t* aColCount) override; + virtual mozilla::ipc::IPCResult RecvTableRowCount(const uint64_t& aID, + uint32_t* aRowCount) override; + virtual mozilla::ipc::IPCResult RecvTableCellAt(const uint64_t& aID, + const uint32_t& aRow, + const uint32_t& aCol, + uint64_t* aCellID, + bool* aOk) override; + virtual mozilla::ipc::IPCResult RecvTableCellIndexAt(const uint64_t& aID, + const uint32_t& aRow, + const uint32_t& aCol, + int32_t* aIndex) override; + virtual mozilla::ipc::IPCResult RecvTableColumnIndexAt(const uint64_t& aID, + const uint32_t& aCellIndex, + int32_t* aCol) override; + virtual mozilla::ipc::IPCResult RecvTableRowIndexAt(const uint64_t& aID, + const uint32_t& aCellIndex, + int32_t* aRow) override; + virtual mozilla::ipc::IPCResult RecvTableRowAndColumnIndicesAt(const uint64_t& aID, + const uint32_t& aCellIndex, + int32_t* aRow, + int32_t* aCol) override; + virtual mozilla::ipc::IPCResult RecvTableColumnExtentAt(const uint64_t& aID, + const uint32_t& aRow, + const uint32_t& aCol, + uint32_t* aExtent) override; + virtual mozilla::ipc::IPCResult RecvTableRowExtentAt(const uint64_t& aID, + const uint32_t& aRow, + const uint32_t& aCol, + uint32_t* aExtent) override; + virtual mozilla::ipc::IPCResult RecvTableColumnDescription(const uint64_t& aID, + const uint32_t& aCol, + nsString* aDescription) override; + virtual mozilla::ipc::IPCResult RecvTableRowDescription(const uint64_t& aID, + const uint32_t& aRow, + nsString* aDescription) override; + virtual mozilla::ipc::IPCResult RecvTableColumnSelected(const uint64_t& aID, + const uint32_t& aCol, + bool* aSelected) override; + virtual mozilla::ipc::IPCResult RecvTableRowSelected(const uint64_t& aID, + const uint32_t& aRow, + bool* aSelected) override; + virtual mozilla::ipc::IPCResult RecvTableCellSelected(const uint64_t& aID, + const uint32_t& aRow, + const uint32_t& aCol, + bool* aSelected) override; + virtual mozilla::ipc::IPCResult RecvTableSelectedCellCount(const uint64_t& aID, + uint32_t* aSelectedCells) override; + virtual mozilla::ipc::IPCResult RecvTableSelectedColumnCount(const uint64_t& aID, + uint32_t* aSelectedColumns) override; + virtual mozilla::ipc::IPCResult RecvTableSelectedRowCount(const uint64_t& aID, + uint32_t* aSelectedRows) override; + virtual mozilla::ipc::IPCResult RecvTableSelectedCells(const uint64_t& aID, + nsTArray<uint64_t>* aCellIDs) override; + virtual mozilla::ipc::IPCResult RecvTableSelectedCellIndices(const uint64_t& aID, + nsTArray<uint32_t>* aCellIndices) override; + virtual mozilla::ipc::IPCResult RecvTableSelectedColumnIndices(const uint64_t& aID, + nsTArray<uint32_t>* aColumnIndices) override; + virtual mozilla::ipc::IPCResult RecvTableSelectedRowIndices(const uint64_t& aID, + nsTArray<uint32_t>* aRowIndices) override; + virtual mozilla::ipc::IPCResult RecvTableSelectColumn(const uint64_t& aID, + const uint32_t& aCol) override; + virtual mozilla::ipc::IPCResult RecvTableSelectRow(const uint64_t& aID, + const uint32_t& aRow) override; + virtual mozilla::ipc::IPCResult RecvTableUnselectColumn(const uint64_t& aID, + const uint32_t& aCol) override; + virtual mozilla::ipc::IPCResult RecvTableUnselectRow(const uint64_t& aID, + const uint32_t& aRow) override; + virtual mozilla::ipc::IPCResult RecvTableIsProbablyForLayout(const uint64_t& aID, + bool* aForLayout) override; + virtual mozilla::ipc::IPCResult RecvAtkTableColumnHeader(const uint64_t& aID, + const int32_t& aCol, + uint64_t* aHeader, + bool* aOk) override; + virtual mozilla::ipc::IPCResult RecvAtkTableRowHeader(const uint64_t& aID, + const int32_t& aRow, + uint64_t* aHeader, + bool* aOk) override; - virtual bool RecvSelectedItems(const uint64_t& aID, - nsTArray<uint64_t>* aSelectedItemIDs) override; + virtual mozilla::ipc::IPCResult RecvSelectedItems(const uint64_t& aID, + nsTArray<uint64_t>* aSelectedItemIDs) override; - virtual bool RecvSelectedItemCount(const uint64_t& aID, - uint32_t* aCount) override; + virtual mozilla::ipc::IPCResult RecvSelectedItemCount(const uint64_t& aID, + uint32_t* aCount) override; - virtual bool RecvGetSelectedItem(const uint64_t& aID, - const uint32_t& aIndex, - uint64_t* aSelected, - bool* aOk) override; + virtual mozilla::ipc::IPCResult RecvGetSelectedItem(const uint64_t& aID, + const uint32_t& aIndex, + uint64_t* aSelected, + bool* aOk) override; - virtual bool RecvIsItemSelected(const uint64_t& aID, - const uint32_t& aIndex, - bool* aSelected) override; + virtual mozilla::ipc::IPCResult RecvIsItemSelected(const uint64_t& aID, + const uint32_t& aIndex, + bool* aSelected) override; - virtual bool RecvAddItemToSelection(const uint64_t& aID, - const uint32_t& aIndex, - bool* aSuccess) override; + virtual mozilla::ipc::IPCResult RecvAddItemToSelection(const uint64_t& aID, + const uint32_t& aIndex, + bool* aSuccess) override; - virtual bool RecvRemoveItemFromSelection(const uint64_t& aID, - const uint32_t& aIndex, - bool* aSuccess) override; + virtual mozilla::ipc::IPCResult RecvRemoveItemFromSelection(const uint64_t& aID, + const uint32_t& aIndex, + bool* aSuccess) override; - virtual bool RecvSelectAll(const uint64_t& aID, - bool* aSuccess) override; + virtual mozilla::ipc::IPCResult RecvSelectAll(const uint64_t& aID, + bool* aSuccess) override; - virtual bool RecvUnselectAll(const uint64_t& aID, - bool* aSuccess) override; + virtual mozilla::ipc::IPCResult RecvUnselectAll(const uint64_t& aID, + bool* aSuccess) override; - virtual bool RecvTakeSelection(const uint64_t& aID) override; - virtual bool RecvSetSelected(const uint64_t& aID, - const bool& aSelect) override; + virtual mozilla::ipc::IPCResult RecvTakeSelection(const uint64_t& aID) override; + virtual mozilla::ipc::IPCResult RecvSetSelected(const uint64_t& aID, + const bool& aSelect) override; - virtual bool RecvDoAction(const uint64_t& aID, - const uint8_t& aIndex, - bool* aSuccess) override; + virtual mozilla::ipc::IPCResult RecvDoAction(const uint64_t& aID, + const uint8_t& aIndex, + bool* aSuccess) override; - virtual bool RecvActionCount(const uint64_t& aID, - uint8_t* aCount) override; + virtual mozilla::ipc::IPCResult RecvActionCount(const uint64_t& aID, + uint8_t* aCount) override; - virtual bool RecvActionDescriptionAt(const uint64_t& aID, - const uint8_t& aIndex, - nsString* aDescription) override; + virtual mozilla::ipc::IPCResult RecvActionDescriptionAt(const uint64_t& aID, + const uint8_t& aIndex, + nsString* aDescription) override; - virtual bool RecvActionNameAt(const uint64_t& aID, - const uint8_t& aIndex, - nsString* aName) override; + virtual mozilla::ipc::IPCResult RecvActionNameAt(const uint64_t& aID, + const uint8_t& aIndex, + nsString* aName) override; - virtual bool RecvAccessKey(const uint64_t& aID, - uint32_t* aKey, - uint32_t* aModifierMask) override; + virtual mozilla::ipc::IPCResult RecvAccessKey(const uint64_t& aID, + uint32_t* aKey, + uint32_t* aModifierMask) override; - virtual bool RecvKeyboardShortcut(const uint64_t& aID, - uint32_t* aKey, - uint32_t* aModifierMask) override; + virtual mozilla::ipc::IPCResult RecvKeyboardShortcut(const uint64_t& aID, + uint32_t* aKey, + uint32_t* aModifierMask) override; - virtual bool RecvAtkKeyBinding(const uint64_t& aID, - nsString* aResult) override; + virtual mozilla::ipc::IPCResult RecvAtkKeyBinding(const uint64_t& aID, + nsString* aResult) override; - virtual bool RecvCurValue(const uint64_t& aID, - double* aValue) override; + virtual mozilla::ipc::IPCResult RecvCurValue(const uint64_t& aID, + double* aValue) override; - virtual bool RecvSetCurValue(const uint64_t& aID, - const double& aValue, - bool* aRetVal) override; + virtual mozilla::ipc::IPCResult RecvSetCurValue(const uint64_t& aID, + const double& aValue, + bool* aRetVal) override; - virtual bool RecvMinValue(const uint64_t& aID, - double* aValue) override; + virtual mozilla::ipc::IPCResult RecvMinValue(const uint64_t& aID, + double* aValue) override; - virtual bool RecvMaxValue(const uint64_t& aID, - double* aValue) override; + virtual mozilla::ipc::IPCResult RecvMaxValue(const uint64_t& aID, + double* aValue) override; - virtual bool RecvStep(const uint64_t& aID, - double* aStep) override; + virtual mozilla::ipc::IPCResult RecvStep(const uint64_t& aID, + double* aStep) override; - virtual bool RecvTakeFocus(const uint64_t& aID) override; + virtual mozilla::ipc::IPCResult RecvTakeFocus(const uint64_t& aID) override; - virtual bool RecvFocusedChild(const uint64_t& aID, - uint64_t* aChild, - bool* aOk) override; + virtual mozilla::ipc::IPCResult RecvFocusedChild(const uint64_t& aID, + uint64_t* aChild, + bool* aOk) override; - virtual bool RecvLanguage(const uint64_t& aID, nsString* aLocale) override; - virtual bool RecvDocType(const uint64_t& aID, nsString* aType) override; - virtual bool RecvTitle(const uint64_t& aID, nsString* aTitle) override; - virtual bool RecvURL(const uint64_t& aID, nsString* aURL) override; - virtual bool RecvMimeType(const uint64_t& aID, nsString* aMime) override; - virtual bool RecvURLDocTypeMimeType(const uint64_t& aID, - nsString* aURL, - nsString* aDocType, - nsString* aMimeType) override; + virtual mozilla::ipc::IPCResult RecvLanguage(const uint64_t& aID, nsString* aLocale) override; + virtual mozilla::ipc::IPCResult RecvDocType(const uint64_t& aID, nsString* aType) override; + virtual mozilla::ipc::IPCResult RecvTitle(const uint64_t& aID, nsString* aTitle) override; + virtual mozilla::ipc::IPCResult RecvURL(const uint64_t& aID, nsString* aURL) override; + virtual mozilla::ipc::IPCResult RecvMimeType(const uint64_t& aID, nsString* aMime) override; + virtual mozilla::ipc::IPCResult RecvURLDocTypeMimeType(const uint64_t& aID, + nsString* aURL, + nsString* aDocType, + nsString* aMimeType) override; - virtual bool RecvAccessibleAtPoint(const uint64_t& aID, - const int32_t& aX, - const int32_t& aY, - const bool& aNeedsScreenCoords, - const uint32_t& aWhich, - uint64_t* aResult, - bool* aOk) override; + virtual mozilla::ipc::IPCResult RecvAccessibleAtPoint(const uint64_t& aID, + const int32_t& aX, + const int32_t& aY, + const bool& aNeedsScreenCoords, + const uint32_t& aWhich, + uint64_t* aResult, + bool* aOk) override; - virtual bool RecvExtents(const uint64_t& aID, - const bool& aNeedsScreenCoords, - int32_t* aX, - int32_t* aY, - int32_t* aWidth, - int32_t* aHeight) override; - virtual bool RecvDOMNodeID(const uint64_t& aID, nsString* aDOMNodeID) override; + virtual mozilla::ipc::IPCResult RecvExtents(const uint64_t& aID, + const bool& aNeedsScreenCoords, + int32_t* aX, + int32_t* aY, + int32_t* aWidth, + int32_t* aHeight) override; + virtual mozilla::ipc::IPCResult RecvDOMNodeID(const uint64_t& aID, nsString* aDOMNodeID) override; private: Accessible* IdToAccessible(const uint64_t& aID) const; Accessible* IdToAccessibleLink(const uint64_t& aID) const; Accessible* IdToAccessibleSelect(const uint64_t& aID) const; HyperTextAccessible* IdToHyperTextAccessible(const uint64_t& aID) const; TextLeafAccessible* IdToTextLeafAccessible(const uint64_t& aID) const; ImageAccessible* IdToImageAccessible(const uint64_t& aID) const;
--- a/devtools/shared/heapsnapshot/HeapSnapshotTempFileHelperParent.cpp +++ b/devtools/shared/heapsnapshot/HeapSnapshotTempFileHelperParent.cpp @@ -19,35 +19,43 @@ using ipc::FileDescriptor; static bool openFileFailure(ErrorResult& rv, OpenHeapSnapshotTempFileResponse* outResponse) { *outResponse = rv.StealNSResult(); return true; } -bool +mozilla::ipc::IPCResult HeapSnapshotTempFileHelperParent::RecvOpenHeapSnapshotTempFile( OpenHeapSnapshotTempFileResponse* outResponse) { auto start = TimeStamp::Now(); ErrorResult rv; nsAutoString filePath; nsCOMPtr<nsIFile> file = HeapSnapshot::CreateUniqueCoreDumpFile(rv, start, filePath); - if (NS_WARN_IF(rv.Failed())) - return openFileFailure(rv, outResponse); + if (NS_WARN_IF(rv.Failed())) { + if (!openFileFailure(rv, outResponse)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); + } PRFileDesc* prfd; rv = file->OpenNSPRFileDesc(PR_WRONLY, 0, &prfd); - if (NS_WARN_IF(rv.Failed())) - return openFileFailure(rv, outResponse); + if (NS_WARN_IF(rv.Failed())) { + if (!openFileFailure(rv, outResponse)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); + } FileDescriptor::PlatformHandleType handle = FileDescriptor::PlatformHandleType(PR_FileDesc2NativeHandle(prfd)); FileDescriptor fd(handle); *outResponse = OpenedFile(filePath, fd); - return true; + return IPC_OK(); } } // namespace devtools } // namespace mozilla
--- a/devtools/shared/heapsnapshot/HeapSnapshotTempFileHelperParent.h +++ b/devtools/shared/heapsnapshot/HeapSnapshotTempFileHelperParent.h @@ -11,17 +11,17 @@ namespace mozilla { namespace devtools { class HeapSnapshotTempFileHelperParent : public PHeapSnapshotTempFileHelperParent { explicit HeapSnapshotTempFileHelperParent() { } void ActorDestroy(ActorDestroyReason why) override { } - bool RecvOpenHeapSnapshotTempFile(OpenHeapSnapshotTempFileResponse* outResponse) + mozilla::ipc::IPCResult RecvOpenHeapSnapshotTempFile(OpenHeapSnapshotTempFileResponse* outResponse) override; public: static inline PHeapSnapshotTempFileHelperParent* Create(); }; /* static */ inline PHeapSnapshotTempFileHelperParent* HeapSnapshotTempFileHelperParent::Create()
--- a/dom/asmjscache/AsmJSCache.cpp +++ b/dom/asmjscache/AsmJSCache.cpp @@ -511,31 +511,31 @@ private: // OpenDirectoryListener overrides. void DirectoryLockAcquired(DirectoryLock* aLock) override; void DirectoryLockFailed() override; // IPDL methods. - bool + mozilla::ipc::IPCResult Recv__delete__(const JS::AsmJSCacheResult& aResult) override { AssertIsOnOwningThread(); MOZ_ASSERT(mState != eFinished); if (mOpened) { Close(); } else { Fail(); } MOZ_ASSERT(mState == eFinished); - return true; + return IPC_OK(); } void ActorDestroy(ActorDestroyReason why) override { AssertIsOnOwningThread(); MOZ_ASSERT(!mActorDestroyed); @@ -552,40 +552,40 @@ private: Close(); } else { Fail(); } MOZ_ASSERT(mState == eFinished); } - bool + mozilla::ipc::IPCResult RecvSelectCacheFileToRead(const uint32_t& aModuleIndex) override { AssertIsOnOwningThread(); MOZ_ASSERT(mState == eWaitingToOpenCacheFileForRead); MOZ_ASSERT(mOpenMode == eOpenForRead); // A cache entry has been selected to open. mModuleIndex = aModuleIndex; mState = eReadyToOpenCacheFileForRead; DispatchToIOThread(); - return true; + return IPC_OK(); } - bool + mozilla::ipc::IPCResult RecvCacheMiss() override { AssertIsOnOwningThread(); CacheMiss(); - return true; + return IPC_OK(); } nsCOMPtr<nsIEventTarget> mOwningThread; const PrincipalInfo mPrincipalInfo; const OpenMode mOpenMode; const WriteParams mWriteParams; // State initialized during eInitial: @@ -1281,58 +1281,64 @@ private: MOZ_ASSERT(!mWaiting, "Shouldn't be destroyed while thread is waiting"); MOZ_ASSERT(!mOpened); MOZ_ASSERT(mState == eFinished); MOZ_ASSERT(mActorDestroyed); MOZ_COUNT_DTOR(ChildRunnable); } // IPDL methods. - bool + mozilla::ipc::IPCResult RecvOnOpenMetadataForRead(const Metadata& aMetadata) override { MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(mState == eOpening); uint32_t moduleIndex; if (FindHashMatch(aMetadata, mReadParams, &moduleIndex)) { - return SendSelectCacheFileToRead(moduleIndex); + if (!SendSelectCacheFileToRead(moduleIndex)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); } - return SendCacheMiss(); + if (!SendCacheMiss()) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); } - bool + mozilla::ipc::IPCResult RecvOnOpenCacheFile(const int64_t& aFileSize, const FileDescriptor& aFileDesc) override { MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(mState == eOpening); mFileSize = aFileSize; auto rawFD = aFileDesc.ClonePlatformHandle(); mFileDesc = PR_ImportFile(PROsfd(rawFD.release())); if (!mFileDesc) { - return false; + return IPC_FAIL_NO_REASON(this); } mState = eOpened; Notify(JS::AsmJSCache_Success); - return true; + return IPC_OK(); } - bool + mozilla::ipc::IPCResult Recv__delete__(const JS::AsmJSCacheResult& aResult) override { MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(mState == eOpening); Fail(aResult); - return true; + return IPC_OK(); } void ActorDestroy(ActorDestroyReason why) override { MOZ_ASSERT(NS_IsMainThread()); NoteActorDestroyed(); }
--- a/dom/base/nsContentPermissionHelper.cpp +++ b/dom/base/nsContentPermissionHelper.cpp @@ -139,19 +139,19 @@ class ContentPermissionRequestParent : p bool IsBeingDestroyed(); nsCOMPtr<nsIPrincipal> mPrincipal; nsCOMPtr<Element> mElement; RefPtr<nsContentPermissionRequestProxy> mProxy; nsTArray<PermissionRequest> mRequests; private: - virtual bool Recvprompt(); - virtual bool RecvNotifyVisibility(const bool& aIsVisible); - virtual bool RecvDestroy(); + virtual mozilla::ipc::IPCResult Recvprompt(); + virtual mozilla::ipc::IPCResult RecvNotifyVisibility(const bool& aIsVisible); + virtual mozilla::ipc::IPCResult RecvDestroy(); virtual void ActorDestroy(ActorDestroyReason why); }; ContentPermissionRequestParent::ContentPermissionRequestParent(const nsTArray<PermissionRequest>& aRequests, Element* aElement, const IPC::Principal& aPrincipal) { MOZ_COUNT_CTOR(ContentPermissionRequestParent); @@ -161,41 +161,41 @@ ContentPermissionRequestParent::ContentP mRequests = aRequests; } ContentPermissionRequestParent::~ContentPermissionRequestParent() { MOZ_COUNT_DTOR(ContentPermissionRequestParent); } -bool +mozilla::ipc::IPCResult ContentPermissionRequestParent::Recvprompt() { mProxy = new nsContentPermissionRequestProxy(); if (NS_FAILED(mProxy->Init(mRequests, this))) { mProxy->Cancel(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult ContentPermissionRequestParent::RecvNotifyVisibility(const bool& aIsVisible) { if (!mProxy) { - return false; + return IPC_FAIL_NO_REASON(this); } mProxy->NotifyVisibility(aIsVisible); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult ContentPermissionRequestParent::RecvDestroy() { Unused << PContentPermissionRequestParent::Send__delete__(this); - return true; + return IPC_OK(); } void ContentPermissionRequestParent::ActorDestroy(ActorDestroyReason why) { if (mProxy) { mProxy->OnParentDestroyed(); } @@ -775,68 +775,68 @@ RemotePermissionRequest::DoCancel() void RemotePermissionRequest::DoAllow(JS::HandleValue aChoices) { NS_ASSERTION(mRequest, "We need a request"); mRequest->Allow(aChoices); } // PContentPermissionRequestChild -bool +mozilla::ipc::IPCResult RemotePermissionRequest::RecvNotifyResult(const bool& aAllow, InfallibleTArray<PermissionChoice>&& aChoices) { Destroy(); if (aAllow && mWindow->IsCurrentInnerWindow()) { // Use 'undefined' if no choice is provided. if (aChoices.IsEmpty()) { DoAllow(JS::UndefinedHandleValue); - return true; + return IPC_OK(); } // Convert choices to a JS val if any. // {"type1": "choice1", "type2": "choiceA"} AutoJSAPI jsapi; if (NS_WARN_IF(!jsapi.Init(mWindow))) { - return true; // This is not an IPC error. + return IPC_OK(); // This is not an IPC error. } JSContext* cx = jsapi.cx(); JS::Rooted<JSObject*> obj(cx); obj = JS_NewPlainObject(cx); for (uint32_t i = 0; i < aChoices.Length(); ++i) { const nsString& choice = aChoices[i].choice(); const nsCString& type = aChoices[i].type(); JS::Rooted<JSString*> jChoice(cx, JS_NewUCStringCopyN(cx, choice.get(), choice.Length())); JS::Rooted<JS::Value> vChoice(cx, StringValue(jChoice)); if (!JS_SetProperty(cx, obj, type.get(), vChoice)) { - return false; + return IPC_FAIL_NO_REASON(this); } } JS::RootedValue val(cx, JS::ObjectValue(*obj)); DoAllow(val); } else { DoCancel(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult RemotePermissionRequest::RecvGetVisibility() { nsCOMPtr<nsIDocShell> docshell = mWindow->GetDocShell(); if (!docshell) { - return false; + return IPC_FAIL_NO_REASON(this); } bool isActive = false; docshell->GetIsActive(&isActive); Unused << SendNotifyVisibility(isActive); - return true; + return IPC_OK(); } void RemotePermissionRequest::Destroy() { if (!IPCOpen()) { return; }
--- a/dom/base/nsContentPermissionHelper.h +++ b/dom/base/nsContentPermissionHelper.h @@ -172,20 +172,20 @@ class RemotePermissionRequest final : pu public: NS_DECL_ISUPPORTS NS_DECL_NSICONTENTPERMISSIONREQUESTCALLBACK RemotePermissionRequest(nsIContentPermissionRequest* aRequest, nsPIDOMWindowInner* aWindow); // It will be called when prompt dismissed. - virtual bool RecvNotifyResult(const bool &aAllow, - InfallibleTArray<PermissionChoice>&& aChoices) override; + virtual mozilla::ipc::IPCResult RecvNotifyResult(const bool &aAllow, + InfallibleTArray<PermissionChoice>&& aChoices) override; - virtual bool RecvGetVisibility() override; + virtual mozilla::ipc::IPCResult RecvGetVisibility() override; void IPDLAddRef() { mIPCOpen = true; AddRef(); } void IPDLRelease()
--- a/dom/broadcastchannel/BroadcastChannelChild.cpp +++ b/dom/broadcastchannel/BroadcastChannelChild.cpp @@ -33,17 +33,17 @@ BroadcastChannelChild::BroadcastChannelC CopyUTF8toUTF16(aOrigin, mOrigin); } BroadcastChannelChild::~BroadcastChannelChild() { MOZ_ASSERT(!mBC); } -bool +mozilla::ipc::IPCResult BroadcastChannelChild::RecvNotify(const ClonedMessageData& aData) { // Make sure to retrieve all blobs from the message before returning to avoid // leaking their actors. nsTArray<RefPtr<BlobImpl>> blobs; if (!aData.blobsChild().IsEmpty()) { blobs.SetCapacity(aData.blobsChild().Length()); @@ -55,23 +55,23 @@ BroadcastChannelChild::RecvNotify(const } } nsCOMPtr<DOMEventTargetHelper> helper = mBC; nsCOMPtr<EventTarget> eventTarget = do_QueryInterface(helper); // The object is going to be deleted soon. No notify is required. if (!eventTarget) { - return true; + return IPC_OK(); } // CheckInnerWindowCorrectness can be used also without a window when // BroadcastChannel is running in a worker. In this case, it's a NOP. if (NS_FAILED(mBC->CheckInnerWindowCorrectness())) { - return true; + return IPC_OK(); } mBC->RemoveDocFromBFCache(); AutoJSAPI jsapi; nsCOMPtr<nsIGlobalObject> globalObject; if (NS_IsMainThread()) { @@ -79,55 +79,55 @@ BroadcastChannelChild::RecvNotify(const } else { WorkerPrivate* workerPrivate = GetCurrentThreadWorkerPrivate(); MOZ_ASSERT(workerPrivate); globalObject = workerPrivate->GlobalScope(); } if (!globalObject || !jsapi.Init(globalObject)) { NS_WARNING("Failed to initialize AutoJSAPI object."); - return true; + return IPC_OK(); } ipc::StructuredCloneData cloneData; cloneData.BlobImpls().AppendElements(blobs); const SerializedStructuredCloneBuffer& buffer = aData.data(); JSContext* cx = jsapi.cx(); JS::Rooted<JS::Value> value(cx, JS::NullValue()); if (buffer.data.Size()) { ErrorResult rv; cloneData.UseExternalData(buffer.data); cloneData.Read(cx, &value, rv); if (NS_WARN_IF(rv.Failed())) { rv.SuppressException(); - return true; + return IPC_OK(); } } RootedDictionary<MessageEventInit> init(cx); init.mBubbles = false; init.mCancelable = false; init.mOrigin = mOrigin; init.mData = value; ErrorResult rv; RefPtr<MessageEvent> event = MessageEvent::Constructor(mBC, NS_LITERAL_STRING("message"), init, rv); if (NS_WARN_IF(rv.Failed())) { rv.SuppressException(); - return true; + return IPC_OK(); } event->SetTrusted(true); bool status; mBC->DispatchEvent(static_cast<Event*>(event.get()), &status); - return true; + return IPC_OK(); } void BroadcastChannelChild::ActorDestroy(ActorDestroyReason aWhy) { mActorDestroyed = true; }
--- a/dom/broadcastchannel/BroadcastChannelChild.h +++ b/dom/broadcastchannel/BroadcastChannelChild.h @@ -26,17 +26,17 @@ class BroadcastChannelChild final : publ public: NS_INLINE_DECL_REFCOUNTING(BroadcastChannelChild) void SetParent(BroadcastChannel* aBC) { mBC = aBC; } - virtual bool RecvNotify(const ClonedMessageData& aData) override; + virtual mozilla::ipc::IPCResult RecvNotify(const ClonedMessageData& aData) override; bool IsActorDestroyed() const { return mActorDestroyed; } private: explicit BroadcastChannelChild(const nsACString& aOrigin);
--- a/dom/broadcastchannel/BroadcastChannelParent.cpp +++ b/dom/broadcastchannel/BroadcastChannelParent.cpp @@ -26,44 +26,44 @@ BroadcastChannelParent::BroadcastChannel mService->RegisterActor(this, mOriginChannelKey); } BroadcastChannelParent::~BroadcastChannelParent() { AssertIsOnBackgroundThread(); } -bool +mozilla::ipc::IPCResult BroadcastChannelParent::RecvPostMessage(const ClonedMessageData& aData) { AssertIsOnBackgroundThread(); if (NS_WARN_IF(!mService)) { - return false; + return IPC_FAIL_NO_REASON(this); } mService->PostMessage(this, aData, mOriginChannelKey); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult BroadcastChannelParent::RecvClose() { AssertIsOnBackgroundThread(); if (NS_WARN_IF(!mService)) { - return false; + return IPC_FAIL_NO_REASON(this); } mService->UnregisterActor(this, mOriginChannelKey); mService = nullptr; Unused << Send__delete__(this); - return true; + return IPC_OK(); } void BroadcastChannelParent::ActorDestroy(ActorDestroyReason aWhy) { AssertIsOnBackgroundThread(); if (mService) {
--- a/dom/broadcastchannel/BroadcastChannelParent.h +++ b/dom/broadcastchannel/BroadcastChannelParent.h @@ -28,20 +28,20 @@ class BroadcastChannelParent final : pub public: void Deliver(const ClonedMessageData& aData); private: explicit BroadcastChannelParent(const nsAString& aOriginChannelKey); ~BroadcastChannelParent(); - virtual bool + virtual mozilla::ipc::IPCResult RecvPostMessage(const ClonedMessageData& aData) override; - virtual bool RecvClose() override; + virtual mozilla::ipc::IPCResult RecvClose() override; virtual void ActorDestroy(ActorDestroyReason aWhy) override; RefPtr<BroadcastChannelService> mService; const nsString mOriginChannelKey; }; } // namespace dom
--- a/dom/cache/CacheOpChild.cpp +++ b/dom/cache/CacheOpChild.cpp @@ -94,30 +94,30 @@ CacheOpChild::ActorDestroy(ActorDestroyR if (mPromise) { mPromise->MaybeReject(NS_ERROR_FAILURE); mPromise = nullptr; } RemoveWorkerHolder(); } -bool +mozilla::ipc::IPCResult CacheOpChild::Recv__delete__(const ErrorResult& aRv, const CacheOpResult& aResult) { NS_ASSERT_OWNINGTHREAD(CacheOpChild); if (NS_WARN_IF(aRv.Failed())) { MOZ_ASSERT(aResult.type() == CacheOpResult::Tvoid_t); // TODO: Remove this const_cast (bug 1152078). // It is safe for now since this ErrorResult is handed off to us by IPDL // and is thrown into the trash afterwards. mPromise->MaybeReject(const_cast<ErrorResult&>(aRv)); mPromise = nullptr; - return true; + return IPC_OK(); } switch (aResult.type()) { case CacheOpResult::TCacheMatchResult: { HandleResponse(aResult.get_CacheMatchResult().responseOrVoid()); break; } @@ -171,17 +171,17 @@ CacheOpChild::Recv__delete__(const Error break; } default: MOZ_CRASH("Unknown Cache op result type!"); } mPromise = nullptr; - return true; + return IPC_OK(); } void CacheOpChild::StartDestroy() { NS_ASSERT_OWNINGTHREAD(CacheOpChild); // Do not cancel on-going operations when WorkerHolder calls this. Instead,
--- a/dom/cache/CacheOpChild.h +++ b/dom/cache/CacheOpChild.h @@ -34,17 +34,17 @@ private: CacheOpChild(CacheWorkerHolder* aWorkerHolder, nsIGlobalObject* aGlobal, nsISupports* aParent, Promise* aPromise); ~CacheOpChild(); // PCacheOpChild methods virtual void ActorDestroy(ActorDestroyReason aReason) override; - virtual bool + virtual mozilla::ipc::IPCResult Recv__delete__(const ErrorResult& aRv, const CacheOpResult& aResult) override; // ActorChild methods virtual void StartDestroy() override; // TypeUtils methods virtual nsIGlobalObject*
--- a/dom/cache/CacheParent.cpp +++ b/dom/cache/CacheParent.cpp @@ -60,30 +60,30 @@ CacheParent::AllocPCacheOpParent(const C bool CacheParent::DeallocPCacheOpParent(PCacheOpParent* aActor) { delete aActor; return true; } -bool +mozilla::ipc::IPCResult CacheParent::RecvPCacheOpConstructor(PCacheOpParent* aActor, const CacheOpArgs& aOpArgs) { auto actor = static_cast<CacheOpParent*>(aActor); actor->Execute(mManager); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult CacheParent::RecvTeardown() { if (!Send__delete__(this)) { // child process is gone, warn and allow actor to clean up normally NS_WARNING("Cache failed to send delete."); } - return true; + return IPC_OK(); } } // namespace cache } // namespace dom } // namespace mozilla
--- a/dom/cache/CacheParent.h +++ b/dom/cache/CacheParent.h @@ -27,21 +27,21 @@ private: virtual void ActorDestroy(ActorDestroyReason aReason) override; virtual PCacheOpParent* AllocPCacheOpParent(const CacheOpArgs& aOpArgs) override; virtual bool DeallocPCacheOpParent(PCacheOpParent* aActor) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvPCacheOpConstructor(PCacheOpParent* actor, const CacheOpArgs& aOpArgs) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvTeardown() override; RefPtr<cache::Manager> mManager; const CacheId mCacheId; }; } // namespace cache } // namespace dom
--- a/dom/cache/CacheStorageParent.cpp +++ b/dom/cache/CacheStorageParent.cpp @@ -83,48 +83,48 @@ CacheStorageParent::AllocPCacheOpParent( bool CacheStorageParent::DeallocPCacheOpParent(PCacheOpParent* aActor) { delete aActor; return true; } -bool +mozilla::ipc::IPCResult CacheStorageParent::RecvPCacheOpConstructor(PCacheOpParent* aActor, const CacheOpArgs& aOpArgs) { auto actor = static_cast<CacheOpParent*>(aActor); if (mVerifier) { MOZ_ASSERT(!mManagerId); actor->WaitForVerification(mVerifier); - return true; + return IPC_OK(); } if (NS_WARN_IF(NS_FAILED(mVerifiedStatus))) { ErrorResult result(mVerifiedStatus); Unused << CacheOpParent::Send__delete__(actor, result, void_t()); result.SuppressException(); - return true; + return IPC_OK(); } MOZ_ASSERT(mManagerId); actor->Execute(mManagerId); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult CacheStorageParent::RecvTeardown() { if (!Send__delete__(this)) { // child process is gone, warn and allow actor to clean up normally NS_WARNING("CacheStorage failed to delete actor."); } - return true; + return IPC_OK(); } void CacheStorageParent::OnPrincipalVerified(nsresult aRv, ManagerId* aManagerId) { MOZ_ASSERT(mVerifier); MOZ_ASSERT(!mManagerId); MOZ_ASSERT(NS_SUCCEEDED(mVerifiedStatus));
--- a/dom/cache/CacheStorageParent.h +++ b/dom/cache/CacheStorageParent.h @@ -31,21 +31,21 @@ private: ActorDestroy(ActorDestroyReason aReason) override; virtual PCacheOpParent* AllocPCacheOpParent(const CacheOpArgs& aOpArgs) override; virtual bool DeallocPCacheOpParent(PCacheOpParent* aActor) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvPCacheOpConstructor(PCacheOpParent* actor, const CacheOpArgs& aOpArgs) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvTeardown() override; // PrincipalVerifier::Listener methods virtual void OnPrincipalVerified(nsresult aRv, ManagerId* aManagerId) override; const Namespace mNamespace; RefPtr<PrincipalVerifier> mVerifier;
--- a/dom/cache/CacheStreamControlChild.cpp +++ b/dom/cache/CacheStreamControlChild.cpp @@ -133,27 +133,27 @@ CacheStreamControlChild::AssertOwningThr void CacheStreamControlChild::ActorDestroy(ActorDestroyReason aReason) { NS_ASSERT_OWNINGTHREAD(CacheStreamControlChild); CloseAllReadStreamsWithoutReporting(); RemoveWorkerHolder(); } -bool +mozilla::ipc::IPCResult CacheStreamControlChild::RecvClose(const nsID& aId) { NS_ASSERT_OWNINGTHREAD(CacheStreamControlChild); CloseReadStreams(aId); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult CacheStreamControlChild::RecvCloseAll() { NS_ASSERT_OWNINGTHREAD(CacheStreamControlChild); CloseAllReadStreams(); - return true; + return IPC_OK(); } } // namespace cache } // namespace dom } // namespace mozilla
--- a/dom/cache/CacheStreamControlChild.h +++ b/dom/cache/CacheStreamControlChild.h @@ -46,18 +46,18 @@ private: #ifdef DEBUG virtual void AssertOwningThread() override; #endif // PCacheStreamControlChild methods virtual void ActorDestroy(ActorDestroyReason aReason) override; - virtual bool RecvClose(const nsID& aId) override; - virtual bool RecvCloseAll() override; + virtual mozilla::ipc::IPCResult RecvClose(const nsID& aId) override; + virtual mozilla::ipc::IPCResult RecvCloseAll() override; bool mDestroyStarted; bool mDestroyDelayed; NS_DECL_OWNINGTHREAD }; } // namespace cache
--- a/dom/cache/CacheStreamControlParent.cpp +++ b/dom/cache/CacheStreamControlParent.cpp @@ -84,23 +84,23 @@ CacheStreamControlParent::ActorDestroy(A { NS_ASSERT_OWNINGTHREAD(CacheStreamControlParent); CloseAllReadStreamsWithoutReporting(); mStreamList->RemoveStreamControl(this); mStreamList->NoteClosedAll(); mStreamList = nullptr; } -bool +mozilla::ipc::IPCResult CacheStreamControlParent::RecvNoteClosed(const nsID& aId) { NS_ASSERT_OWNINGTHREAD(CacheStreamControlParent); MOZ_ASSERT(mStreamList); mStreamList->NoteClosed(aId); - return true; + return IPC_OK(); } void CacheStreamControlParent::SetStreamList(StreamList* aStreamList) { NS_ASSERT_OWNINGTHREAD(CacheStreamControlParent); MOZ_ASSERT(!mStreamList); mStreamList = aStreamList;
--- a/dom/cache/CacheStreamControlParent.h +++ b/dom/cache/CacheStreamControlParent.h @@ -47,17 +47,17 @@ private: #ifdef DEBUG virtual void AssertOwningThread() override; #endif // PCacheStreamControlParent methods virtual void ActorDestroy(ActorDestroyReason aReason) override; - virtual bool RecvNoteClosed(const nsID& aId) override; + virtual mozilla::ipc::IPCResult RecvNoteClosed(const nsID& aId) override; void NotifyClose(const nsID& aId); void NotifyCloseAll(); // Cycle with StreamList via a weak-ref to us. Cleanup occurs when the actor // is deleted by the PBackground manager. ActorDestroy() then calls // StreamList::RemoveStreamControl() to clear the weak ref. RefPtr<StreamList> mStreamList;
--- a/dom/canvas/DocumentRendererParent.cpp +++ b/dom/canvas/DocumentRendererParent.cpp @@ -49,15 +49,15 @@ void DocumentRendererParent::DrawToCanva } void DocumentRendererParent::ActorDestroy(ActorDestroyReason aWhy) { // Implement me! Bug 1005139 } -bool +mozilla::ipc::IPCResult DocumentRendererParent::Recv__delete__(const nsIntSize& renderedSize, const nsCString& data) { DrawToCanvas(renderedSize, data); - return true; + return IPC_OK(); }
--- a/dom/canvas/DocumentRendererParent.h +++ b/dom/canvas/DocumentRendererParent.h @@ -23,18 +23,18 @@ public: void SetCanvasContext(nsICanvasRenderingContextInternal* aCanvas, gfxContext* ctx); void DrawToCanvas(const nsIntSize& renderedSize, const nsCString& aData); virtual void ActorDestroy(ActorDestroyReason aWhy) override; - virtual bool Recv__delete__(const nsIntSize& renderedSize, - const nsCString& data) override; + virtual mozilla::ipc::IPCResult Recv__delete__(const nsIntSize& renderedSize, + const nsCString& data) override; private: nsCOMPtr<nsICanvasRenderingContextInternal> mCanvas; RefPtr<gfxContext> mCanvasContext; DISALLOW_EVIL_CONSTRUCTORS(DocumentRendererParent); };
--- a/dom/devicestorage/DeviceStorageRequestChild.cpp +++ b/dom/devicestorage/DeviceStorageRequestChild.cpp @@ -26,17 +26,17 @@ DeviceStorageRequestChild::DeviceStorage MOZ_ASSERT(aRequest); MOZ_COUNT_CTOR(DeviceStorageRequestChild); } DeviceStorageRequestChild::~DeviceStorageRequestChild() { MOZ_COUNT_DTOR(DeviceStorageRequestChild); } -bool +mozilla::ipc::IPCResult DeviceStorageRequestChild:: Recv__delete__(const DeviceStorageResponseValue& aValue) { switch (aValue.type()) { case DeviceStorageResponseValue::TErrorResponse: { DS_LOG_INFO("error %u", mRequest->GetId()); @@ -138,14 +138,14 @@ DeviceStorageRequestChild:: default: { DS_LOG_ERROR("unknown %u", mRequest->GetId()); NS_RUNTIMEABORT("not reached"); break; } } - return true; + return IPC_OK(); } } // namespace devicestorage } // namespace dom } // namespace mozilla
--- a/dom/devicestorage/DeviceStorageRequestChild.h +++ b/dom/devicestorage/DeviceStorageRequestChild.h @@ -26,17 +26,17 @@ class DeviceStorageRequestChildCallback class DeviceStorageRequestChild : public PDeviceStorageRequestChild { public: DeviceStorageRequestChild(); explicit DeviceStorageRequestChild(DeviceStorageRequest* aRequest); ~DeviceStorageRequestChild(); - virtual bool Recv__delete__(const DeviceStorageResponseValue& value); + virtual mozilla::ipc::IPCResult Recv__delete__(const DeviceStorageResponseValue& value); private: RefPtr<DeviceStorageRequest> mRequest; }; } // namespace devicestorage } // namespace dom } // namespace mozilla
--- a/dom/filehandle/ActorsChild.cpp +++ b/dom/filehandle/ActorsChild.cpp @@ -534,26 +534,26 @@ BackgroundFileHandleChild::NoteComplete( void BackgroundFileHandleChild::ActorDestroy(ActorDestroyReason aWhy) { AssertIsOnOwningThread(); NoteActorDestroyed(); } -bool +mozilla::ipc::IPCResult BackgroundFileHandleChild::RecvComplete(const bool& aAborted) { AssertIsOnOwningThread(); MOZ_ASSERT(mFileHandle); mFileHandle->HandleCompleteOrAbort(aAborted); NoteComplete(); - return true; + return IPC_OK(); } PBackgroundFileRequestChild* BackgroundFileHandleChild::AllocPBackgroundFileRequestChild( const FileRequestParams& aParams) { MOZ_CRASH("PBackgroundFileRequestChild actors should be manually " "constructed!"); @@ -666,17 +666,17 @@ BackgroundFileRequestChild::ActorDestroy mFileHandle->OnRequestFinished(/* aActorDestroyedNormally */ aWhy == Deletion); DEBUGONLY(mFileHandle = nullptr;) } } -bool +mozilla::ipc::IPCResult BackgroundFileRequestChild::Recv__delete__(const FileRequestResponse& aResponse) { AssertIsOnOwningThread(); MOZ_ASSERT(mFileRequest); MOZ_ASSERT(mFileHandle); if (mFileHandle->IsAborted()) { // Always handle an "error" with ABORT_ERR if the file handle was aborted, @@ -719,25 +719,25 @@ BackgroundFileRequestChild::Recv__delete } mFileHandle->OnRequestFinished(/* aActorDestroyedNormally */ true); // Null this out so that we don't try to call OnRequestFinished() again in // ActorDestroy. mFileHandle = nullptr; - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult BackgroundFileRequestChild::RecvProgress(const uint64_t& aProgress, const uint64_t& aProgressMax) { AssertIsOnOwningThread(); MOZ_ASSERT(mFileRequest); mFileRequest->OnProgress(aProgress, aProgressMax); - return true; + return IPC_OK(); } } // namespace dom } // namespace mozilla
--- a/dom/filehandle/ActorsChild.h +++ b/dom/filehandle/ActorsChild.h @@ -102,17 +102,17 @@ private: void NoteComplete(); // IPDL methods are only called by IPDL. virtual void ActorDestroy(ActorDestroyReason aWhy) override; - bool + mozilla::ipc::IPCResult RecvComplete(const bool& aAborted) override; virtual PBackgroundFileRequestChild* AllocPBackgroundFileRequestChild(const FileRequestParams& aParams) override; virtual bool DeallocPBackgroundFileRequestChild(PBackgroundFileRequestChild* aActor) @@ -155,20 +155,20 @@ private: void HandleResponse(JS::Handle<JS::Value> aResponse); // IPDL methods are only called by IPDL. virtual void ActorDestroy(ActorDestroyReason aWhy) override; - virtual bool + virtual mozilla::ipc::IPCResult Recv__delete__(const FileRequestResponse& aResponse) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvProgress(const uint64_t& aProgress, const uint64_t& aProgressMax) override; }; } // namespace dom } // namespace mozilla #endif // mozilla_dom_filehandle_ActorsChild_h
--- a/dom/filehandle/ActorsParent.cpp +++ b/dom/filehandle/ActorsParent.cpp @@ -338,29 +338,29 @@ private: void FinishOrAbort(); // IPDL methods are only called by IPDL. virtual void ActorDestroy(ActorDestroyReason aWhy) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvDeleteMe() override; - virtual bool + virtual mozilla::ipc::IPCResult RecvFinish() override; - virtual bool + virtual mozilla::ipc::IPCResult RecvAbort() override; virtual PBackgroundFileRequestParent* AllocPBackgroundFileRequestParent(const FileRequestParams& aParams) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvPBackgroundFileRequestConstructor(PBackgroundFileRequestParent* aActor, const FileRequestParams& aParams) override; virtual bool DeallocPBackgroundFileRequestParent(PBackgroundFileRequestParent* aActor) override; }; @@ -1467,17 +1467,17 @@ BackgroundMutableFileParentBase::AllocPB return nullptr; } RefPtr<FileHandle> fileHandle = new FileHandle(this, aMode); return fileHandle.forget().take(); } -bool +mozilla::ipc::IPCResult BackgroundMutableFileParentBase::RecvPBackgroundFileHandleConstructor( PBackgroundFileHandleParent* aActor, const FileMode& aMode) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aActor); MOZ_ASSERT(aMode == FileMode::Readonly || aMode == FileMode::Readwrite); @@ -1489,50 +1489,53 @@ BackgroundMutableFileParentBase::RecvPBa // Add a placeholder for this file handle immediately. fileHandleThreadPool->Enqueue(fileHandle, nullptr, false); fileHandle->SetActive(); if (NS_WARN_IF(!RegisterFileHandle(fileHandle))) { fileHandle->Abort(/* aForce */ false); - return true; + return IPC_OK(); } - return true; + return IPC_OK(); } bool BackgroundMutableFileParentBase::DeallocPBackgroundFileHandleParent( PBackgroundFileHandleParent* aActor) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aActor); RefPtr<FileHandle> fileHandle = dont_AddRef(static_cast<FileHandle*>(aActor)); return true; } -bool +mozilla::ipc::IPCResult BackgroundMutableFileParentBase::RecvDeleteMe() { AssertIsOnBackgroundThread(); MOZ_ASSERT(!mActorDestroyed); - return PBackgroundMutableFileParent::Send__delete__(this); + if (!PBackgroundMutableFileParent::Send__delete__(this)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); } -bool +mozilla::ipc::IPCResult BackgroundMutableFileParentBase::RecvGetFileId(int64_t* aFileId) { AssertIsOnBackgroundThread(); *aFileId = -1; - return true; + return IPC_OK(); } /******************************************************************************* * FileHandle ******************************************************************************/ FileHandle::FileHandle(BackgroundMutableFileParentBase* aMutableFile, FileMode aMode) @@ -1829,55 +1832,58 @@ FileHandle::ActorDestroy(ActorDestroyRea mAborted = true; mForceAborted = true; MaybeFinishOrAbort(); } } -bool +mozilla::ipc::IPCResult FileHandle::RecvDeleteMe() { AssertIsOnBackgroundThread(); MOZ_ASSERT(!IsActorDestroyed()); - return PBackgroundFileHandleParent::Send__delete__(this); + if (!PBackgroundFileHandleParent::Send__delete__(this)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); } -bool +mozilla::ipc::IPCResult FileHandle::RecvFinish() { AssertIsOnBackgroundThread(); if (NS_WARN_IF(mFinishOrAbortReceived)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } mFinishOrAbortReceived = true; MaybeFinishOrAbort(); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult FileHandle::RecvAbort() { AssertIsOnBackgroundThread(); if (NS_WARN_IF(mFinishOrAbortReceived)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } mFinishOrAbortReceived = true; Abort(/* aForce */ false); - return true; + return IPC_OK(); } PBackgroundFileRequestParent* FileHandle::AllocPBackgroundFileRequestParent(const FileRequestParams& aParams) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aParams.type() != FileRequestParams::T__None); @@ -1933,34 +1939,34 @@ FileHandle::AllocPBackgroundFileRequestP } MOZ_ASSERT(actor); // Transfer ownership to IPDL. return actor.forget().take(); } -bool +mozilla::ipc::IPCResult FileHandle::RecvPBackgroundFileRequestConstructor( PBackgroundFileRequestParent* aActor, const FileRequestParams& aParams) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aActor); MOZ_ASSERT(aParams.type() != FileRequestParams::T__None); auto* op = static_cast<NormalFileHandleOp*>(aActor); if (NS_WARN_IF(!op->Init(this))) { op->Cleanup(); - return false; + return IPC_FAIL_NO_REASON(this); } op->Enqueue(); - return true; + return IPC_OK(); } bool FileHandle::DeallocPBackgroundFileRequestParent( PBackgroundFileRequestParent* aActor) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aActor);
--- a/dom/filehandle/ActorsParent.h +++ b/dom/filehandle/ActorsParent.h @@ -195,27 +195,27 @@ protected: // IPDL methods are only called by IPDL. virtual void ActorDestroy(ActorDestroyReason aWhy) override; virtual PBackgroundFileHandleParent* AllocPBackgroundFileHandleParent(const FileMode& aMode) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvPBackgroundFileHandleConstructor(PBackgroundFileHandleParent* aActor, const FileMode& aMode) override; virtual bool DeallocPBackgroundFileHandleParent(PBackgroundFileHandleParent* aActor) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvDeleteMe() override; - virtual bool + virtual mozilla::ipc::IPCResult RecvGetFileId(int64_t* aFileId) override; }; } // namespace dom } // namespace mozilla #endif // mozilla_dom_filehandle_ActorsParent_h
--- a/dom/filesystem/FileSystemTaskBase.cpp +++ b/dom/filesystem/FileSystemTaskBase.cpp @@ -179,24 +179,24 @@ FileSystemTaskChildBase::SetRequestResul mErrorValue = r.error(); } else { ErrorResult rv; SetSuccessRequestResult(aValue, rv); mErrorValue = rv.StealNSResult(); } } -bool +mozilla::ipc::IPCResult FileSystemTaskChildBase::Recv__delete__(const FileSystemResponseValue& aValue) { mFileSystem->AssertIsOnOwningThread(); SetRequestResult(aValue); HandlerCallback(); - return true; + return IPC_OK(); } void FileSystemTaskChildBase::SetError(const nsresult& aErrorValue) { mErrorValue = FileSystemErrorFromNsError(aErrorValue); }
--- a/dom/filesystem/FileSystemTaskBase.h +++ b/dom/filesystem/FileSystemTaskBase.h @@ -182,17 +182,17 @@ protected: * message is received in the child process and we want to get the task * success result. This method runs in the owning thread. */ virtual void SetSuccessRequestResult(const FileSystemResponseValue& aValue, ErrorResult& aRv) = 0; // Overrides PFileSystemRequestChild - virtual bool + virtual mozilla::ipc::IPCResult Recv__delete__(const FileSystemResponseValue& value) override; nsresult mErrorValue; RefPtr<FileSystemBase> mFileSystem; private: /*
--- a/dom/flyweb/FlyWebPublishedServer.cpp +++ b/dom/flyweb/FlyWebPublishedServer.cpp @@ -283,52 +283,52 @@ FlyWebPublishedServerChild::PermissionGr FlyWebPublishOptions options; options.mUiUrl = mUiUrl; // Proceed with initialization. ContentChild::GetSingleton()-> SendPFlyWebPublishedServerConstructor(this, mName, options); } -bool +mozilla::ipc::IPCResult FlyWebPublishedServerChild::RecvServerReady(const nsresult& aStatus) { LOG_I("FlyWebPublishedServerChild::RecvServerReady(%p)", this); MOZ_ASSERT(mActorExists); PublishedServerStarted(aStatus); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult FlyWebPublishedServerChild::RecvServerClose() { LOG_I("FlyWebPublishedServerChild::RecvServerClose(%p)", this); MOZ_ASSERT(mActorExists); Close(); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult FlyWebPublishedServerChild::RecvFetchRequest(const IPCInternalRequest& aRequest, const uint64_t& aRequestId) { LOG_I("FlyWebPublishedServerChild::RecvFetchRequest(%p)", this); MOZ_ASSERT(mActorExists); RefPtr<InternalRequest> request = new InternalRequest(aRequest); mPendingRequests.Put(request, aRequestId); FireFetchEvent(request); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult FlyWebPublishedServerChild::RecvWebSocketRequest(const IPCInternalRequest& aRequest, const uint64_t& aRequestId, PTransportProviderChild* aProvider) { LOG_I("FlyWebPublishedServerChild::RecvWebSocketRequest(%p)", this); MOZ_ASSERT(mActorExists); RefPtr<InternalRequest> request = new InternalRequest(aRequest); @@ -336,17 +336,17 @@ FlyWebPublishedServerChild::RecvWebSocke // Not addreffing here. The addref was already done when the // PTransportProvider child constructor original ran. mPendingTransportProviders.Put(aRequestId, dont_AddRef(static_cast<TransportProviderChild*>(aProvider))); FireWebsocketEvent(request); - return true; + return IPC_OK(); } void FlyWebPublishedServerChild::ActorDestroy(ActorDestroyReason aWhy) { LOG_I("FlyWebPublishedServerChild::ActorDestroy(%p)", this); mActorExists = false; @@ -561,115 +561,115 @@ FlyWebPublishedServerParent::HandleEvent return NS_OK; } MOZ_CRASH("Unknown event type"); return NS_OK; } -bool +mozilla::ipc::IPCResult FlyWebPublishedServerParent::RecvFetchResponse(const IPCInternalResponse& aResponse, const uint64_t& aRequestId) { MOZ_ASSERT(!mActorDestroyed); RefPtr<InternalRequest> request; mPendingRequests.Remove(aRequestId, getter_AddRefs(request)); if (!request) { static_cast<ContentParent*>(Manager())->KillHard("unknown request id"); - return false; + return IPC_FAIL_NO_REASON(this); } RefPtr<InternalResponse> response = InternalResponse::FromIPC(aResponse); mPublishedServer->OnFetchResponse(request, response); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult FlyWebPublishedServerParent::RecvWebSocketResponse(const IPCInternalResponse& aResponse, const uint64_t& aRequestId) { MOZ_ASSERT(!mActorDestroyed); mPendingTransportProviders.Remove(aRequestId); RefPtr<InternalRequest> request; mPendingRequests.Remove(aRequestId, getter_AddRefs(request)); if (!request) { static_cast<ContentParent*>(Manager())->KillHard("unknown websocket request id"); - return false; + return IPC_FAIL_NO_REASON(this); } RefPtr<InternalResponse> response = InternalResponse::FromIPC(aResponse); mPublishedServer->OnWebSocketResponse(request, response); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult FlyWebPublishedServerParent::RecvWebSocketAccept(const nsString& aProtocol, const uint64_t& aRequestId) { MOZ_ASSERT(!mActorDestroyed); RefPtr<TransportProviderParent> providerIPC; mPendingTransportProviders.Remove(aRequestId, getter_AddRefs(providerIPC)); RefPtr<InternalRequest> request; mPendingRequests.Remove(aRequestId, getter_AddRefs(request)); if (!request || !providerIPC) { static_cast<ContentParent*>(Manager())->KillHard("unknown websocket request id"); - return false; + return IPC_FAIL_NO_REASON(this); } Optional<nsAString> protocol; if (!aProtocol.IsVoid()) { protocol = &aProtocol; } ErrorResult result; nsCOMPtr<nsITransportProvider> providerServer = mPublishedServer->OnWebSocketAcceptInternal(request, protocol, result); if (result.Failed()) { - return false; + return IPC_FAIL_NO_REASON(this); } providerServer->SetListener(providerIPC); - return true; + return IPC_OK(); } void FlyWebPublishedServerParent::ActorDestroy(ActorDestroyReason aWhy) { LOG_I("FlyWebPublishedServerParent::ActorDestroy(%p)", this); mActorDestroyed = true; } -bool +mozilla::ipc::IPCResult FlyWebPublishedServerParent::Recv__delete__() { LOG_I("FlyWebPublishedServerParent::Recv__delete__(%p)", this); MOZ_ASSERT(!mActorDestroyed); if (mPublishedServer) { mPublishedServer->RemoveEventListener(NS_LITERAL_STRING("fetch"), this, false); mPublishedServer->RemoveEventListener(NS_LITERAL_STRING("websocket"), this, false); mPublishedServer->RemoveEventListener(NS_LITERAL_STRING("close"), this, false); mPublishedServer->Close(); mPublishedServer = nullptr; } - return true; + return IPC_OK(); } } // namespace dom } // namespace mozilla
--- a/dom/flyweb/FlyWebPublishedServerIPC.h +++ b/dom/flyweb/FlyWebPublishedServerIPC.h @@ -95,23 +95,23 @@ class FlyWebPublishedServerChild final : , public PFlyWebPublishedServerChild { public: FlyWebPublishedServerChild(nsPIDOMWindowInner* aOwner, const nsAString& aName, const FlyWebPublishOptions& aOptions); virtual void PermissionGranted(bool aGranted) override; - virtual bool RecvServerReady(const nsresult& aStatus) override; - virtual bool RecvServerClose() override; - virtual bool RecvFetchRequest(const IPCInternalRequest& aRequest, - const uint64_t& aRequestId) override; - virtual bool RecvWebSocketRequest(const IPCInternalRequest& aRequest, - const uint64_t& aRequestId, - PTransportProviderChild* aProvider) override; + virtual mozilla::ipc::IPCResult RecvServerReady(const nsresult& aStatus) override; + virtual mozilla::ipc::IPCResult RecvServerClose() override; + virtual mozilla::ipc::IPCResult RecvFetchRequest(const IPCInternalRequest& aRequest, + const uint64_t& aRequestId) override; + virtual mozilla::ipc::IPCResult RecvWebSocketRequest(const IPCInternalRequest& aRequest, + const uint64_t& aRequestId, + PTransportProviderChild* aProvider) override; virtual void OnFetchResponse(InternalRequest* aRequest, InternalResponse* aResponse) override; virtual void OnWebSocketResponse(InternalRequest* aConnectRequest, InternalResponse* aResponse) override; virtual already_AddRefed<nsITransportProvider> OnWebSocketAcceptInternal(InternalRequest* aConnectRequest, const Optional<nsAString>& aProtocol, @@ -139,25 +139,25 @@ public: NS_DECL_ISUPPORTS NS_DECL_NSIDOMEVENTLISTENER private: virtual void ActorDestroy(ActorDestroyReason aWhy) override; - virtual bool + virtual mozilla::ipc::IPCResult Recv__delete__() override; - virtual bool + virtual mozilla::ipc::IPCResult RecvFetchResponse(const IPCInternalResponse& aResponse, const uint64_t& aRequestId) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvWebSocketResponse(const IPCInternalResponse& aResponse, const uint64_t& aRequestId) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvWebSocketAccept(const nsString& aProtocol, const uint64_t& aRequestId) override; ~FlyWebPublishedServerParent() {} bool mActorDestroyed; uint64_t mNextRequestId; nsRefPtrHashtable<nsUint64HashKey, InternalRequest> mPendingRequests;
--- a/dom/gamepad/ipc/GamepadEventChannelChild.cpp +++ b/dom/gamepad/ipc/GamepadEventChannelChild.cpp @@ -23,20 +23,20 @@ class GamepadUpdateRunnable final : publ return NS_OK; } protected: GamepadChangeEvent mEvent; }; } // namespace -bool +mozilla::ipc::IPCResult GamepadEventChannelChild::RecvGamepadUpdate( const GamepadChangeEvent& aGamepadEvent) { DebugOnly<nsresult> rv = NS_DispatchToMainThread(new GamepadUpdateRunnable(aGamepadEvent)); NS_WARNING_ASSERTION(NS_SUCCEEDED(rv), "NS_DispatchToMainThread failed"); - return true; + return IPC_OK(); } } // namespace dom } // namespace mozilla
--- a/dom/gamepad/ipc/GamepadEventChannelChild.h +++ b/dom/gamepad/ipc/GamepadEventChannelChild.h @@ -9,16 +9,16 @@ namespace mozilla{ namespace dom{ class GamepadEventChannelChild final : public PGamepadEventChannelChild { public: GamepadEventChannelChild() {} ~GamepadEventChannelChild() {} - virtual bool + virtual mozilla::ipc::IPCResult RecvGamepadUpdate(const GamepadChangeEvent& aGamepadEvent) override; }; }// namespace dom }// namespace mozilla #endif
--- a/dom/gamepad/ipc/GamepadEventChannelParent.cpp +++ b/dom/gamepad/ipc/GamepadEventChannelParent.cpp @@ -44,38 +44,38 @@ GamepadEventChannelParent::GamepadEventC { RefPtr<GamepadPlatformService> service = GamepadPlatformService::GetParentService(); MOZ_ASSERT(service); service->AddChannelParent(this); mBackgroundThread = NS_GetCurrentThread(); } -bool +mozilla::ipc::IPCResult GamepadEventChannelParent::RecvGamepadListenerAdded() { AssertIsOnBackgroundThread(); MOZ_ASSERT(!mHasGamepadListener); mHasGamepadListener = true; StartGamepadMonitoring(); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult GamepadEventChannelParent::RecvGamepadListenerRemoved() { AssertIsOnBackgroundThread(); MOZ_ASSERT(mHasGamepadListener); mHasGamepadListener = false; RefPtr<GamepadPlatformService> service = GamepadPlatformService::GetParentService(); MOZ_ASSERT(service); service->RemoveChannelParent(this); Unused << Send__delete__(this); - return true; + return IPC_OK(); } void GamepadEventChannelParent::ActorDestroy(ActorDestroyReason aWhy) { AssertIsOnBackgroundThread(); // It may be called because IPDL child side crashed, we'll
--- a/dom/gamepad/ipc/GamepadEventChannelParent.h +++ b/dom/gamepad/ipc/GamepadEventChannelParent.h @@ -10,18 +10,18 @@ namespace mozilla{ namespace dom{ class GamepadEventChannelParent final : public PGamepadEventChannelParent { public: NS_INLINE_DECL_THREADSAFE_REFCOUNTING(GamepadEventChannelParent) GamepadEventChannelParent(); virtual void ActorDestroy(ActorDestroyReason aWhy) override; - virtual bool RecvGamepadListenerAdded() override; - virtual bool RecvGamepadListenerRemoved() override; + virtual mozilla::ipc::IPCResult RecvGamepadListenerAdded() override; + virtual mozilla::ipc::IPCResult RecvGamepadListenerRemoved() override; void DispatchUpdateEvent(const GamepadChangeEvent& aEvent); bool HasGamepadListener() const { return mHasGamepadListener; } private: ~GamepadEventChannelParent() {} bool mHasGamepadListener; nsCOMPtr<nsIThread> mBackgroundThread; };
--- a/dom/gamepad/ipc/GamepadTestChannelChild.cpp +++ b/dom/gamepad/ipc/GamepadTestChannelChild.cpp @@ -9,24 +9,24 @@ namespace dom { void GamepadTestChannelChild::AddPromise(const uint32_t& aID, Promise* aPromise) { MOZ_ASSERT(!mPromiseList.Get(aID, nullptr)); mPromiseList.Put(aID, aPromise); } -bool +mozilla::ipc::IPCResult GamepadTestChannelChild::RecvReplyGamepadIndex(const uint32_t& aID, const uint32_t& aIndex) { RefPtr<Promise> p; if (!mPromiseList.Get(aID, getter_AddRefs(p))) { MOZ_CRASH("We should always have a promise."); } p->MaybeResolve(aIndex); mPromiseList.Remove(aID); - return true; + return IPC_OK(); } } // namespace dom } // namespace mozilla
--- a/dom/gamepad/ipc/GamepadTestChannelChild.h +++ b/dom/gamepad/ipc/GamepadTestChannelChild.h @@ -13,17 +13,17 @@ namespace dom { class GamepadTestChannelChild final : public PGamepadTestChannelChild { public: GamepadTestChannelChild() {} ~GamepadTestChannelChild() {} void AddPromise(const uint32_t& aID, Promise* aPromise); private: - virtual bool RecvReplyGamepadIndex(const uint32_t& aID, - const uint32_t& aIndex) override; + virtual mozilla::ipc::IPCResult RecvReplyGamepadIndex(const uint32_t& aID, + const uint32_t& aIndex) override; nsRefPtrHashtable<nsUint32HashKey, Promise> mPromiseList; }; }// namespace dom }// namespace mozilla #endif
--- a/dom/gamepad/ipc/GamepadTestChannelParent.cpp +++ b/dom/gamepad/ipc/GamepadTestChannelParent.cpp @@ -5,17 +5,17 @@ #include "GamepadTestChannelParent.h" #include "mozilla/dom/GamepadPlatformService.h" #include "mozilla/Unused.h" namespace mozilla { namespace dom { -bool +mozilla::ipc::IPCResult GamepadTestChannelParent::RecvGamepadTestEvent(const uint32_t& aID, const GamepadChangeEvent& aEvent) { mozilla::ipc::AssertIsOnBackgroundThread(); RefPtr<GamepadPlatformService> service = GamepadPlatformService::GetParentService(); MOZ_ASSERT(service); if (aEvent.type() == GamepadChangeEvent::TGamepadAdded) { @@ -24,40 +24,40 @@ GamepadTestChannelParent::RecvGamepadTes LossyCopyUTF16toASCII(a.id(), gamepadID); uint32_t index = service->AddGamepad(gamepadID.get(), static_cast<GamepadMappingType>(a.mapping()), a.num_buttons(), a.num_axes()); if (!mShuttingdown) { Unused << SendReplyGamepadIndex(aID, index); } - return true; + return IPC_OK(); } if (aEvent.type() == GamepadChangeEvent::TGamepadRemoved) { const GamepadRemoved& a = aEvent.get_GamepadRemoved(); service->RemoveGamepad(a.index()); - return true; + return IPC_OK(); } if (aEvent.type() == GamepadChangeEvent::TGamepadButtonInformation) { const GamepadButtonInformation& a = aEvent.get_GamepadButtonInformation(); service->NewButtonEvent(a.index(), a.button(), a.pressed(), a.value()); - return true; + return IPC_OK(); } if (aEvent.type() == GamepadChangeEvent::TGamepadAxisInformation) { const GamepadAxisInformation& a = aEvent.get_GamepadAxisInformation(); service->NewAxisMoveEvent(a.index(), a.axis(), a.value()); - return true; + return IPC_OK(); } NS_WARNING("Unknown event type."); - return false; + return IPC_FAIL_NO_REASON(this); } -bool +mozilla::ipc::IPCResult GamepadTestChannelParent::RecvShutdownChannel() { mShuttingdown = true; Unused << Send__delete__(this); - return true; + return IPC_OK(); } } // namespace dom } // namespace mozilla
--- a/dom/gamepad/ipc/GamepadTestChannelParent.h +++ b/dom/gamepad/ipc/GamepadTestChannelParent.h @@ -12,20 +12,20 @@ namespace dom { class GamepadTestChannelParent final : public PGamepadTestChannelParent { public: NS_INLINE_DECL_THREADSAFE_REFCOUNTING(GamepadTestChannelParent) GamepadTestChannelParent() : mShuttingdown(false) {} virtual void ActorDestroy(ActorDestroyReason aWhy) override {} - virtual bool + virtual mozilla::ipc::IPCResult RecvGamepadTestEvent(const uint32_t& aID, const GamepadChangeEvent& aGamepadEvent) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvShutdownChannel() override; private: ~GamepadTestChannelParent() {} bool mShuttingdown; }; }// namespace dom }// namespace mozilla
--- a/dom/indexedDB/ActorsChild.cpp +++ b/dom/indexedDB/ActorsChild.cpp @@ -581,17 +581,17 @@ public: MOZ_ASSERT(aFactory); aActor->AssertIsOnOwningThread(); } protected: ~PermissionRequestChildProcessActor() { } - virtual bool + virtual mozilla::ipc::IPCResult Recv__delete__(const uint32_t& aPermission) override; }; void DeserializeStructuredCloneFiles( IDBDatabase* aDatabase, const nsTArray<SerializedStructuredCloneFile>& aSerializedFiles, const nsTArray<RefPtr<JS::WasmModule>>* aModuleSet, @@ -1025,17 +1025,17 @@ public: MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(aChallenge); } protected: ~WorkerPermissionRequestChildProcessActor() {} - virtual bool + virtual mozilla::ipc::IPCResult Recv__delete__(const uint32_t& aPermission) override; }; class WorkerPermissionChallenge final : public Runnable { public: WorkerPermissionChallenge(WorkerPrivate* aWorkerPrivate, BackgroundFactoryRequestChild* aActor, @@ -1179,23 +1179,23 @@ bool WorkerPermissionOperationCompleted::WorkerRun(JSContext* aCx, WorkerPrivate* aWorkerPrivate) { aWorkerPrivate->AssertIsOnWorkerThread(); mChallenge->OperationCompleted(); return true; } -bool +mozilla::ipc::IPCResult WorkerPermissionRequestChildProcessActor::Recv__delete__( const uint32_t& /* aPermission */) { MOZ_ASSERT(NS_IsMainThread()); mChallenge->OperationCompleted(); - return true; + return IPC_OK(); } } // namespace /******************************************************************************* * Actor class declarations ******************************************************************************/ @@ -1284,33 +1284,33 @@ PermissionRequestMainProcessHelper::OnPr MaybeCollectGarbageOnIPCMessage(); mActor->SendPermissionRetry(); mActor = nullptr; mFactory = nullptr; } -bool +mozilla::ipc::IPCResult PermissionRequestChildProcessActor::Recv__delete__( const uint32_t& /* aPermission */) { MOZ_ASSERT(mActor); mActor->AssertIsOnOwningThread(); MOZ_ASSERT(mFactory); MaybeCollectGarbageOnIPCMessage(); RefPtr<IDBFactory> factory; mFactory.swap(factory); mActor->SendPermissionRetry(); mActor = nullptr; - return true; + return IPC_OK(); } /******************************************************************************* * BackgroundRequestChildBase ******************************************************************************/ BackgroundRequestChildBase::BackgroundRequestChildBase(IDBRequest* aRequest) : mRequest(aRequest) @@ -1567,17 +1567,17 @@ BackgroundFactoryRequestChild::ActorDest if (aWhy != Deletion) { IDBOpenDBRequest* openRequest = GetOpenDBRequest(); if (openRequest) { openRequest->NoteComplete(); } } } -bool +mozilla::ipc::IPCResult BackgroundFactoryRequestChild::Recv__delete__( const FactoryRequestResponse& aResponse) { AssertIsOnOwningThread(); MOZ_ASSERT(mRequest); MaybeCollectGarbageOnIPCMessage(); @@ -1601,91 +1601,97 @@ BackgroundFactoryRequestChild::Recv__del } IDBOpenDBRequest* request = GetOpenDBRequest(); MOZ_ASSERT(request); request->NoteComplete(); if (NS_WARN_IF(!result)) { - return false; + return IPC_FAIL_NO_REASON(this); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult BackgroundFactoryRequestChild::RecvPermissionChallenge( const PrincipalInfo& aPrincipalInfo) { AssertIsOnOwningThread(); MaybeCollectGarbageOnIPCMessage(); if (!NS_IsMainThread()) { WorkerPrivate* workerPrivate = GetCurrentThreadWorkerPrivate(); MOZ_ASSERT(workerPrivate); workerPrivate->AssertIsOnWorkerThread(); RefPtr<WorkerPermissionChallenge> challenge = new WorkerPermissionChallenge(workerPrivate, this, mFactory, aPrincipalInfo); - return challenge->Dispatch(); + if (!challenge->Dispatch()) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); } nsresult rv; nsCOMPtr<nsIPrincipal> principal = mozilla::ipc::PrincipalInfoToPrincipal(aPrincipalInfo, &rv); if (NS_WARN_IF(NS_FAILED(rv))) { - return false; + return IPC_FAIL_NO_REASON(this); } if (XRE_IsParentProcess()) { nsCOMPtr<nsPIDOMWindowInner> window = mFactory->GetParentObject(); MOZ_ASSERT(window); nsCOMPtr<Element> ownerElement = do_QueryInterface(window->GetChromeEventHandler()); if (NS_WARN_IF(!ownerElement)) { // If this fails, the page was navigated. Fail the permission check by // forcing an immediate retry. - return SendPermissionRetry(); + if (!SendPermissionRetry()) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); } RefPtr<PermissionRequestMainProcessHelper> helper = new PermissionRequestMainProcessHelper(this, mFactory, ownerElement, principal); PermissionRequestBase::PermissionValue permission; if (NS_WARN_IF(NS_FAILED(helper->PromptIfNeeded(&permission)))) { - return false; + return IPC_FAIL_NO_REASON(this); } MOZ_ASSERT(permission == PermissionRequestBase::kPermissionAllowed || permission == PermissionRequestBase::kPermissionDenied || permission == PermissionRequestBase::kPermissionPrompt); if (permission != PermissionRequestBase::kPermissionPrompt) { SendPermissionRetry(); } - return true; + return IPC_OK(); } RefPtr<TabChild> tabChild = mFactory->GetTabChild(); MOZ_ASSERT(tabChild); IPC::Principal ipcPrincipal(principal); auto* actor = new PermissionRequestChildProcessActor(this, mFactory); tabChild->SendPIndexedDBPermissionRequestConstructor(actor, ipcPrincipal); - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult BackgroundFactoryRequestChild::RecvBlocked(const uint64_t& aCurrentVersion) { AssertIsOnOwningThread(); MOZ_ASSERT(mRequest); MaybeCollectGarbageOnIPCMessage(); const nsDependentString type(kBlockedEventType); @@ -1711,17 +1717,17 @@ BackgroundFactoryRequestChild::RecvBlock IDB_LOG_ID_STRING(), kungFuDeathGrip->LoggingSerialNumber()); bool dummy; if (NS_FAILED(kungFuDeathGrip->DispatchEvent(blockedEvent, &dummy))) { NS_WARNING("Failed to dispatch event!"); } - return true; + return IPC_OK(); } /******************************************************************************* * BackgroundDatabaseChild ******************************************************************************/ BackgroundDatabaseChild::BackgroundDatabaseChild( const DatabaseSpec& aSpec, @@ -1883,17 +1889,17 @@ BackgroundDatabaseChild::AllocPBackgroun AssertIsOnOwningThread(); IDBOpenDBRequest* request = mOpenRequestActor->GetOpenDBRequest(); MOZ_ASSERT(request); return new BackgroundVersionChangeTransactionChild(request); } -bool +mozilla::ipc::IPCResult BackgroundDatabaseChild::RecvPBackgroundIDBVersionChangeTransactionConstructor( PBackgroundIDBVersionChangeTransactionChild* aActor, const uint64_t& aCurrentVersion, const uint64_t& aRequestedVersion, const int64_t& aNextObjectStoreId, const int64_t& aNextIndexId) { AssertIsOnOwningThread(); @@ -1919,17 +1925,17 @@ BackgroundDatabaseChild::RecvPBackground // This can happen if we receive events after a worker has begun its // shutdown process. MOZ_ASSERT(!NS_IsMainThread()); // Report this to the console. IDB_REPORT_INTERNAL_ERR(); MOZ_ALWAYS_TRUE(aActor->SendDeleteMe()); - return true; + return IPC_OK(); } transaction->AssertIsOnOwningThread(); actor->SetDOMTransaction(transaction); mDatabase->EnterSetVersionTransaction(aRequestedVersion); @@ -1941,17 +1947,17 @@ BackgroundDatabaseChild::RecvPBackground aCurrentVersion, aRequestedVersion); MOZ_ASSERT(upgradeNeededEvent); ResultHelper helper(request, transaction, mDatabase); DispatchSuccessEvent(&helper, upgradeNeededEvent); - return true; + return IPC_OK(); } bool BackgroundDatabaseChild::DeallocPBackgroundIDBVersionChangeTransactionChild( PBackgroundIDBVersionChangeTransactionChild* aActor) { MOZ_ASSERT(aActor); @@ -1982,26 +1988,26 @@ BackgroundDatabaseChild::DeallocPBackgro PBackgroundMutableFileChild* aActor) { MOZ_ASSERT(aActor); delete static_cast<BackgroundMutableFileChild*>(aActor); return true; } -bool +mozilla::ipc::IPCResult BackgroundDatabaseChild::RecvVersionChange(const uint64_t& aOldVersion, const NullableVersion& aNewVersion) { AssertIsOnOwningThread(); MaybeCollectGarbageOnIPCMessage(); if (!mDatabase || mDatabase->IsClosed()) { - return true; + return IPC_OK(); } RefPtr<IDBDatabase> kungFuDeathGrip = mDatabase; // Handle bfcache'd windows. if (nsPIDOMWindowInner* owner = kungFuDeathGrip->GetOwner()) { // The database must be closed if the window is already frozen. bool shouldAbortAndClose = owner->IsFrozen(); @@ -2015,17 +2021,17 @@ BackgroundDatabaseChild::RecvVersionChan } } if (shouldAbortAndClose) { // Invalidate() doesn't close the database in the parent, so we have // to call Close() and AbortTransactions() manually. kungFuDeathGrip->AbortTransactions(/* aShouldWarn */ false); kungFuDeathGrip->Close(); - return true; + return IPC_OK(); } } // Otherwise fire a versionchange event. const nsDependentString type(kVersionChangeEventType); nsCOMPtr<nsIDOMEvent> versionChangeEvent; @@ -2057,45 +2063,45 @@ BackgroundDatabaseChild::RecvVersionChan if (NS_FAILED(kungFuDeathGrip->DispatchEvent(versionChangeEvent, &dummy))) { NS_WARNING("Failed to dispatch event!"); } if (!kungFuDeathGrip->IsClosed()) { SendBlocked(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult BackgroundDatabaseChild::RecvInvalidate() { AssertIsOnOwningThread(); MaybeCollectGarbageOnIPCMessage(); if (mDatabase) { mDatabase->Invalidate(); } - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult BackgroundDatabaseChild::RecvCloseAfterInvalidationComplete() { AssertIsOnOwningThread(); MaybeCollectGarbageOnIPCMessage(); if (mDatabase) { mDatabase->DispatchTrustedEvent(nsDependentString(kCloseEventType)); } - return true; + return IPC_OK(); } /******************************************************************************* * BackgroundDatabaseRequestChild ******************************************************************************/ BackgroundDatabaseRequestChild::BackgroundDatabaseRequestChild( IDBDatabase* aDatabase, @@ -2152,29 +2158,35 @@ BackgroundDatabaseRequestChild::HandleRe DispatchSuccessEvent(&helper); mutableFileActor->ReleaseDOMObject(); return true; } -bool +mozilla::ipc::IPCResult BackgroundDatabaseRequestChild::Recv__delete__( const DatabaseRequestResponse& aResponse) { AssertIsOnOwningThread(); MOZ_ASSERT(mRequest); switch (aResponse.type()) { case DatabaseRequestResponse::Tnsresult: - return HandleResponse(aResponse.get_nsresult()); + if (!HandleResponse(aResponse.get_nsresult())) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); case DatabaseRequestResponse::TCreateFileRequestResponse: - return HandleResponse(aResponse.get_CreateFileRequestResponse()); + if (!HandleResponse(aResponse.get_CreateFileRequestResponse())) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); default: MOZ_CRASH("Unknown response type!"); } MOZ_CRASH("Should never get here!"); } @@ -2300,28 +2312,28 @@ BackgroundTransactionChild::ActorDestroy { AssertIsOnOwningThread(); MaybeCollectGarbageOnIPCMessage(); NoteActorDestroyed(); } -bool +mozilla::ipc::IPCResult BackgroundTransactionChild::RecvComplete(const nsresult& aResult) { AssertIsOnOwningThread(); MOZ_ASSERT(mTransaction); MaybeCollectGarbageOnIPCMessage(); mTransaction->FireCompleteOrAbortEvents(aResult); NoteComplete(); - return true; + return IPC_OK(); } PBackgroundIDBRequestChild* BackgroundTransactionChild::AllocPBackgroundIDBRequestChild( const RequestParams& aParams) { MOZ_CRASH("PBackgroundIDBRequestChild actors should be manually " "constructed!"); @@ -2409,25 +2421,25 @@ BackgroundVersionChangeTransactionChild: MaybeCollectGarbageOnIPCMessage(); mOpenDBRequest = nullptr; NoteActorDestroyed(); } -bool +mozilla::ipc::IPCResult BackgroundVersionChangeTransactionChild::RecvComplete(const nsresult& aResult) { AssertIsOnOwningThread(); MaybeCollectGarbageOnIPCMessage(); if (!mTransaction) { - return true; + return IPC_OK(); } MOZ_ASSERT(mOpenDBRequest); IDBDatabase* database = mTransaction->Database(); MOZ_ASSERT(database); database->ExitSetVersionTransaction(); @@ -2437,17 +2449,17 @@ BackgroundVersionChangeTransactionChild: } mTransaction->FireCompleteOrAbortEvents(aResult); mOpenDBRequest->SetTransaction(nullptr); mOpenDBRequest = nullptr; NoteComplete(); - return true; + return IPC_OK(); } PBackgroundIDBRequestChild* BackgroundVersionChangeTransactionChild::AllocPBackgroundIDBRequestChild( const RequestParams& aParams) { MOZ_CRASH("PBackgroundIDBRequestChild actors should be manually " "constructed!"); @@ -2840,17 +2852,17 @@ BackgroundRequestChild::ActorDestroy(Act mTransaction->OnRequestFinished(/* aActorDestroyedNormally */ aWhy == Deletion); #ifdef DEBUG mTransaction = nullptr; #endif } } -bool +mozilla::ipc::IPCResult BackgroundRequestChild::Recv__delete__(const RequestResponse& aResponse) { AssertIsOnOwningThread(); MOZ_ASSERT(mRequest); MOZ_ASSERT(mTransaction); MaybeCollectGarbageOnIPCMessage(); @@ -2926,20 +2938,20 @@ BackgroundRequestChild::Recv__delete__(c } mTransaction->OnRequestFinished(/* aActorDestroyedNormally */ true); // Null this out so that we don't try to call OnRequestFinished() again in // ActorDestroy. mTransaction = nullptr; - return true; + return IPC_OK(); } -bool +mozilla::ipc::IPCResult BackgroundRequestChild::RecvPreprocess(const PreprocessParams& aParams) { AssertIsOnOwningThread(); MOZ_ASSERT(mTransaction); MaybeCollectGarbageOnIPCMessage(); nsresult rv; @@ -2963,20 +2975,23 @@ BackgroundRequestChild::RecvPreprocess(c break; } default: MOZ_CRASH("Unknown params type!"); } if (NS_WARN_IF(NS_FAILED(rv))) { - return SendContinue(rv); + if (!SendContinue(rv)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); } - return true; + return IPC_OK(); } nsresult BackgroundRequestChild:: PreprocessHelper::Init(const nsTArray<StructuredCloneFile>& aFiles) { AssertIsOnOwningThread(); MOZ_ASSERT(!aFiles.IsEmpty()); @@ -3489,17 +3504,17 @@ BackgroundCursorChild::ActorDestroy(Acto #ifdef DEBUG mRequest = nullptr; mTransaction = nullptr; mObjectStore = nullptr; mIndex = nullptr; #endif } -bool +mozilla::ipc::IPCResult BackgroundCursorChild::RecvResponse(const CursorResponse& aResponse) { AssertIsOnOwningThread(); MOZ_ASSERT(aResponse.type() != CursorResponse::T__None); MOZ_ASSERT(mRequest); MOZ_ASSERT(mTransaction); MOZ_ASSERT_IF(mCursor, mStrongCursor); MOZ_ASSERT_IF(!mCursor, mStrongRequest); @@ -3538,17 +3553,17 @@ BackgroundCursorChild::RecvResponse(cons break; default: MOZ_CRASH("Should never get here!"); } mTransaction->OnRequestFinished(/* aActorDestroyedNormally */ true); - return true; + return IPC_OK(); } NS_IMETHODIMP BackgroundCursorChild:: DelayedActionRunnable::Run() { MOZ_ASSERT(mActor); mActor->AssertIsOnOwningThread();
--- a/dom/indexedDB/ActorsChild.h +++ b/dom/indexedDB/ActorsChild.h @@ -280,23 +280,23 @@ private: bool HandleResponse(const DeleteDatabaseRequestResponse& aResponse); // IPDL methods are only called by IPDL. virtual void ActorDestroy(ActorDestroyReason aWhy) override; - virtual bool + virtual mozilla::ipc::IPCResult Recv__delete__(const FactoryRequestResponse& aResponse) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvPermissionChallenge(const PrincipalInfo& aPrincipalInfo) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvBlocked(const uint64_t& aCurrentVersion) override; }; class BackgroundDatabaseChild final : public PBackgroundIDBDatabaseChild { friend class BackgroundFactoryChild; friend class BackgroundFactoryRequestChild; @@ -388,17 +388,17 @@ private: virtual PBackgroundIDBVersionChangeTransactionChild* AllocPBackgroundIDBVersionChangeTransactionChild( const uint64_t& aCurrentVersion, const uint64_t& aRequestedVersion, const int64_t& aNextObjectStoreId, const int64_t& aNextIndexId) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvPBackgroundIDBVersionChangeTransactionConstructor( PBackgroundIDBVersionChangeTransactionChild* aActor, const uint64_t& aCurrentVersion, const uint64_t& aRequestedVersion, const int64_t& aNextObjectStoreId, const int64_t& aNextIndexId) override; @@ -410,25 +410,25 @@ private: virtual PBackgroundMutableFileChild* AllocPBackgroundMutableFileChild(const nsString& aName, const nsString& aType) override; virtual bool DeallocPBackgroundMutableFileChild(PBackgroundMutableFileChild* aActor) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvVersionChange(const uint64_t& aOldVersion, const NullableVersion& aNewVersion) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvInvalidate() override; - virtual bool + virtual mozilla::ipc::IPCResult RecvCloseAfterInvalidationComplete() override; bool SendDeleteMe() = delete; }; class BackgroundDatabaseRequestChild final : public BackgroundRequestChildBase @@ -449,17 +449,17 @@ private: bool HandleResponse(nsresult aResponse); bool HandleResponse(const CreateFileRequestResponse& aResponse); // IPDL methods are only called by IPDL. - virtual bool + virtual mozilla::ipc::IPCResult Recv__delete__(const DatabaseRequestResponse& aResponse) override; }; class BackgroundVersionChangeTransactionChild; class BackgroundTransactionBase { friend class BackgroundVersionChangeTransactionChild; @@ -532,17 +532,17 @@ private: // Only destroyed by BackgroundDatabaseChild. ~BackgroundTransactionChild(); // IPDL methods are only called by IPDL. virtual void ActorDestroy(ActorDestroyReason aWhy) override; - bool + mozilla::ipc::IPCResult RecvComplete(const nsresult& aResult) override; virtual PBackgroundIDBRequestChild* AllocPBackgroundIDBRequestChild(const RequestParams& aParams) override; virtual bool DeallocPBackgroundIDBRequestChild(PBackgroundIDBRequestChild* aActor) override; @@ -588,17 +588,17 @@ private: { BackgroundTransactionBase::SetDOMTransaction(aDOMObject); } // IPDL methods are only called by IPDL. virtual void ActorDestroy(ActorDestroyReason aWhy) override; - bool + mozilla::ipc::IPCResult RecvComplete(const nsresult& aResult) override; virtual PBackgroundIDBRequestChild* AllocPBackgroundIDBRequestChild(const RequestParams& aParams) override; virtual bool DeallocPBackgroundIDBRequestChild(PBackgroundIDBRequestChild* aActor) override; @@ -702,20 +702,20 @@ private: nsresult HandlePreprocess(const nsTArray<WasmModulePreprocessInfo>& aPreprocessInfos); // IPDL methods are only called by IPDL. virtual void ActorDestroy(ActorDestroyReason aWhy) override; - virtual bool + virtual mozilla::ipc::IPCResult Recv__delete__(const RequestResponse& aResponse) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvPreprocess(const PreprocessParams& aParams) override; }; class BackgroundCursorChild final : public PBackgroundIDBCursorChild { friend class BackgroundTransactionChild; friend class BackgroundVersionChangeTransactionChild; @@ -815,17 +815,17 @@ private: void HandleResponse(const IndexKeyCursorResponse& aResponse); // IPDL methods are only called by IPDL. virtual void ActorDestroy(ActorDestroyReason aWhy) override; - virtual bool + virtual mozilla::ipc::IPCResult RecvResponse(const CursorResponse& aResponse) override; // Force callers to use SendContinueInternal. bool SendContinue(const CursorRequestParams& aParams) = delete; bool SendDeleteMe() = delete;
--- a/dom/indexedDB/ActorsParent.cpp +++ b/dom/indexedDB/ActorsParent.cpp @@ -6186,27 +6186,27 @@ private: // Reference counted. ~Factory() override; // IPDL methods are only called by IPDL. void ActorDestroy(ActorDestroyReason aWhy) override; - bool + mozilla::ipc::IPCResult RecvDeleteMe() override; - bool + mozilla::ipc::IPCResult RecvIncrementLoggingRequestSerialNumber() override; PBackgroundIDBFactoryRequestParent* AllocPBackgroundIDBFactoryRequestParent(const FactoryRequestParams& aParams) override; - bool + mozilla::ipc::IPCResult RecvPBackgroundIDBFactoryRequestConstructor( PBackgroundIDBFactoryRequestParent* aActor, const FactoryRequestParams& aParams) override; bool DeallocPBackgroundIDBFactoryRequestParent( PBackgroundIDBFactoryRequestParent* aActor) @@ -6535,34 +6535,34 @@ private: DeallocPBackgroundIDBDatabaseFileParent( PBackgroundIDBDatabaseFileParent* aActor) override; PBackgroundIDBDatabaseRequestParent* AllocPBackgroundIDBDatabaseRequestParent(const DatabaseRequestParams& aParams) override; - bool + mozilla::ipc::IPCResult RecvPBackgroundIDBDatabaseRequestConstructor( PBackgroundIDBDatabaseRequestParent* aActor, const DatabaseRequestParams& aParams) override; bool DeallocPBackgroundIDBDatabaseRequestParent( PBackgroundIDBDatabaseRequestParent* aActor) override; PBackgroundIDBTransactionParent* AllocPBackgroundIDBTransactionParent( const nsTArray<nsString>& aObjectStoreNames, const Mode& aMode) override; - bool + mozilla::ipc::IPCResult RecvPBackgroundIDBTransactionConstructor( PBackgroundIDBTransactionParent* aActor, InfallibleTArray<nsString>&& aObjectStoreNames, const Mode& aMode) override; bool DeallocPBackgroundIDBTransactionParent( @@ -6585,23 +6585,23 @@ private: PBackgroundMutableFileParent* AllocPBackgroundMutableFileParent(const nsString& aName, const nsString& aType) override; bool DeallocPBackgroundMutableFileParent(PBackgroundMutableFileParent* aActor) override; - bool + mozilla::ipc::IPCResult RecvDeleteMe() override; - bool + mozilla::ipc::IPCResult RecvBlocked() override; - bool + mozilla::ipc::IPCResult RecvClose() override; }; class Database::StartTransactionOp final : public TransactionDatabaseOperationBase { friend class Database; @@ -7033,41 +7033,41 @@ private: // Only called by TransactionBase. void SendCompleteNotification(nsresult aResult) override; // IPDL methods are only called by IPDL. void ActorDestroy(ActorDestroyReason aWhy) override; - bool + mozilla::ipc::IPCResult RecvDeleteMe() override; - bool + mozilla::ipc::IPCResult RecvCommit() override; - bool + mozilla::ipc::IPCResult RecvAbort(const nsresult& aResultCode) override; PBackgroundIDBRequestParent* AllocPBackgroundIDBRequestParent(const RequestParams& aParams) override; - bool + mozilla::ipc::IPCResult RecvPBackgroundIDBRequestConstructor(PBackgroundIDBRequestParent* aActor, const RequestParams& aParams) override; bool DeallocPBackgroundIDBRequestParent(PBackgroundIDBRequestParent* aActor) override; PBackgroundIDBCursorParent* AllocPBackgroundIDBCursorParent(const OpenCursorParams& aParams) override; - bool + mozilla::ipc::IPCResult RecvPBackgroundIDBCursorConstructor(PBackgroundIDBCursorParent* aActor, const OpenCursorParams& aParams) override; bool DeallocPBackgroundIDBCursorParent(PBackgroundIDBCursorParent* aActor) override; }; @@ -7107,64 +7107,64 @@ private: // Only called by TransactionBase. void SendCompleteNotification(nsresult aResult) override; // IPDL methods are only called by IPDL. void ActorDestroy(ActorDestroyReason aWhy) override; - bool + mozilla::ipc::IPCResult RecvDeleteMe() override; - bool + mozilla::ipc::IPCResult RecvCommit() override; - bool + mozilla::ipc::IPCResult RecvAbort(const nsresult& aResultCode) override; - bool + mozilla::ipc::IPCResult RecvCreateObjectStore(const ObjectStoreMetadata& aMetadata) override; - bool + mozilla::ipc::IPCResult RecvDeleteObjectStore(const int64_t& aObjectStoreId) override; - bool + mozilla::ipc::IPCResult RecvRenameObjectStore(const int64_t& aObjectStoreId, const nsString& aName) override; - bool + mozilla::ipc::IPCResult RecvCreateIndex(const int64_t& aObjectStoreId, const IndexMetadata& aMetadata) override; - bool + mozilla::ipc::IPCResult RecvDeleteIndex(const int64_t& aObjectStoreId, const int64_t& aIndexId) override; - bool + mozilla::ipc::IPCResult RecvRenameIndex(const int64_t& aObjectStoreId, const int64_t& aIndexId, const nsString& aName) override; PBackgroundIDBRequestParent* AllocPBackgroundIDBRequestParent(const RequestParams& aParams) override; - bool + mozilla::ipc::IPCResult RecvPBackgroundIDBRequestConstructor(PBackgroundIDBRequestParent* aActor, const RequestParams& aParams) override; bool DeallocPBackgroundIDBRequestParent(PBackgroundIDBRequestParent* aActor) override; PBackgroundIDBCursorParent* AllocPBackgroundIDBCursorParent(const OpenCursorParams& aParams) override; - bool + mozilla::ipc::IPCResult RecvPBackgroundIDBCursorConstructor(PBackgroundIDBCursorParent* aActor, const OpenCursorParams& aParams) override; bool DeallocPBackgroundIDBCursorParent(PBackgroundIDBCursorParent* aActor) override; }; @@ -7219,21 +7219,21 @@ private: Database* aDatabase, FileInfo* aFileInfo); ~MutableFile() override; PBackgroundFileHandleParent* AllocPBackgroundFileHandleParent(const FileMode& aMode) override; - bool + mozilla::ipc::IPCResult RecvPBackgroundFileHandleConstructor(PBackgroundFileHandleParent* aActor, const FileMode& aMode) override; - bool + mozilla::ipc::IPCResult RecvGetFileId(int64_t* aFileId) override; }; class FactoryOp : public DatabaseOperationBase , public OpenDirectoryListener , public PBackgroundIDBFactoryRequestParent { @@ -7431,17 +7431,17 @@ protected: void DirectoryLockFailed() override; // IPDL methods. void ActorDestroy(ActorDestroyReason aWhy) override; - bool + mozilla::ipc::IPCResult RecvPermissionRetry() override; virtual void SendBlockedNotification() = 0; private: nsresult CheckPermission(ContentParent* aContentParent, @@ -8150,17 +8150,17 @@ private: bool SendFailureResult(nsresult aResultCode) override; // IPDL methods. void ActorDestroy(ActorDestroyReason aWhy) override; - bool + mozilla::ipc::IPCResult RecvContinue(const PreprocessResponse& aResponse) override; }; class ObjectStoreAddOrPutRequestOp final : public NormalTransactionOp { friend class TransactionBase; @@ -8619,20 +8619,20 @@ private: // Must call SendResponseInternal! bool SendResponse(const CursorResponse& aResponse) = delete; // IPDL methods. void ActorDestroy(ActorDestroyReason aWhy) override; - bool + mozilla::ipc::IPCResult RecvDeleteMe() override; - bool + mozilla::ipc::IPCResult RecvContinue(const CursorRequestParams& aParams) override; bool IsLocaleAware() const { return !mLocale.IsEmpty(); } }; @@ -8757,20 +8757,20 @@ public: private: // Reference counted. ~Utils() override; // IPDL methods are only called by IPDL. void ActorDestroy(ActorDestroyReason aWhy) override; - bool + mozilla::ipc::IPCResult RecvDeleteMe() override; - bool + mozilla::ipc::IPCResult RecvGetFileReferences(const PersistenceType& aPersistenceType, const nsCString& aOrigin, const nsString& aDatabaseName, const int64_t& aFileId, int32_t* aRefCnt, int32_t* aDBRefCnt, int32_t* aSliceRefCnt, bool* aResult) override; @@ -13548,33 +13548,36 @@ Factory::ActorDestroy(ActorDestroyReason #ifdef DEBUG mActorDestroyed = true; #endif // Match the IncreaseBusyCount in Create(). DecreaseBusyCount(); } -bool +mozilla::ipc::IPCResult Factory::RecvDeleteMe() { AssertIsOnBackgroundThread(); MOZ_ASSERT(!mActorDestroyed); - return PBackgroundIDBFactoryParent::Send__delete__(this); -} - -bool + if (!PBackgroundIDBFactoryParent::Send__delete__(this)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); +} + +mozilla::ipc::IPCResult Factory::RecvIncrementLoggingRequestSerialNumber() { AssertIsOnBackgroundThread(); MOZ_ASSERT(mLoggingInfo); mLoggingInfo->NextRequestSN(); - return true; + return IPC_OK(); } PBackgroundIDBFactoryRequestParent* Factory::AllocPBackgroundIDBFactoryRequestParent( const FactoryRequestParams& aParams) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aParams.type() != FactoryRequestParams::T__None); @@ -13637,30 +13640,30 @@ Factory::AllocPBackgroundIDBFactoryReque } else { actor = new DeleteDatabaseOp(this, contentParent.forget(), *commonParams); } // Transfer ownership to IPDL. return actor.forget().take(); } -bool +mozilla::ipc::IPCResult Factory::RecvPBackgroundIDBFactoryRequestConstructor( PBackgroundIDBFactoryRequestParent* aActor, const FactoryRequestParams& aParams) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aActor); MOZ_ASSERT(aParams.type() != FactoryRequestParams::T__None); MOZ_ASSERT(!QuotaClient::IsShuttingDownOnBackgroundThread()); auto* op = static_cast<FactoryOp*>(aActor); MOZ_ALWAYS_SUCCEEDS(NS_DispatchToMainThread(op)); - return true; + return IPC_OK(); } bool Factory::DeallocPBackgroundIDBFactoryRequestParent( PBackgroundIDBFactoryRequestParent* aActor) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aActor); @@ -14267,30 +14270,30 @@ Database::AllocPBackgroundIDBDatabaseReq } MOZ_ASSERT(actor); // Transfer ownership to IPDL. return actor.forget().take(); } -bool +mozilla::ipc::IPCResult Database::RecvPBackgroundIDBDatabaseRequestConstructor( PBackgroundIDBDatabaseRequestParent* aActor, const DatabaseRequestParams& aParams) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aActor); MOZ_ASSERT(aParams.type() != DatabaseRequestParams::T__None); auto* op = static_cast<DatabaseOp*>(aActor); op->RunImmediately(); - return true; + return IPC_OK(); } bool Database::DeallocPBackgroundIDBDatabaseRequestParent( PBackgroundIDBDatabaseRequestParent* aActor) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aActor); @@ -14381,17 +14384,17 @@ Database::AllocPBackgroundIDBTransaction RefPtr<NormalTransaction> transaction = new NormalTransaction(this, aMode, infallibleObjectStores); MOZ_ASSERT(infallibleObjectStores.IsEmpty()); return transaction.forget().take(); } -bool +mozilla::ipc::IPCResult Database::RecvPBackgroundIDBTransactionConstructor( PBackgroundIDBTransactionParent* aActor, InfallibleTArray<nsString>&& aObjectStoreNames, const Mode& aMode) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aActor); MOZ_ASSERT(!aObjectStoreNames.IsEmpty()); @@ -14399,17 +14402,17 @@ Database::RecvPBackgroundIDBTransactionC aMode == IDBTransaction::READ_WRITE || aMode == IDBTransaction::READ_WRITE_FLUSH || aMode == IDBTransaction::CLEANUP); MOZ_ASSERT(!mClosed); if (IsInvalidated()) { // This is an expected race. We don't want the child to die here, just don't // actually do any work. - return true; + return IPC_OK(); } if (!gConnectionPool) { gConnectionPool = new ConnectionPool(); } auto* transaction = static_cast<NormalTransaction*>(aActor); @@ -14422,20 +14425,20 @@ Database::RecvPBackgroundIDBTransactionC aObjectStoreNames, aMode != IDBTransaction::READ_ONLY); transaction->SetActive(transactionId); if (NS_WARN_IF(!RegisterTransaction(transaction))) { IDB_REPORT_INTERNAL_ERR(); transaction->Abort(NS_ERROR_DOM_INDEXEDDB_UNKNOWN_ERR, /* aForce */ false); - return true; - } - - return true; + return IPC_OK(); + } + + return IPC_OK(); } bool Database::DeallocPBackgroundIDBTransactionParent( PBackgroundIDBTransactionParent* aActor) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aActor); @@ -14484,56 +14487,59 @@ Database::DeallocPBackgroundMutableFileP MOZ_ASSERT(aActor); // Transfer ownership back from IPDL. RefPtr<MutableFile> mutableFile = dont_AddRef(static_cast<MutableFile*>(aActor)); return true; } -bool +mozilla::ipc::IPCResult Database::RecvDeleteMe() { AssertIsOnBackgroundThread(); MOZ_ASSERT(!mActorDestroyed); - return PBackgroundIDBDatabaseParent::Send__delete__(this); -} - -bool + if (!PBackgroundIDBDatabaseParent::Send__delete__(this)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); +} + +mozilla::ipc::IPCResult Database::RecvBlocked() { AssertIsOnBackgroundThread(); if (NS_WARN_IF(mClosed)) { - return false; + return IPC_FAIL_NO_REASON(this); } DatabaseActorInfo* info; MOZ_ALWAYS_TRUE(gLiveDatabaseHashtable->Get(Id(), &info)); MOZ_ASSERT(info->mLiveDatabases.Contains(this)); MOZ_ASSERT(info->mWaitingFactoryOp); info->mWaitingFactoryOp->NoteDatabaseBlocked(this); - return true; -} - -bool + return IPC_OK(); +} + +mozilla::ipc::IPCResult Database::RecvClose() { AssertIsOnBackgroundThread(); if (NS_WARN_IF(!CloseInternal())) { ASSERT_UNLESS_FUZZING(); - return false; - } - - return true; + return IPC_FAIL_NO_REASON(this); + } + + return IPC_OK(); } void Database:: StartTransactionOp::RunOnConnectionThread() { MOZ_ASSERT(!IsOnBackgroundThread()); MOZ_ASSERT(Transaction()); @@ -15606,61 +15612,73 @@ NormalTransaction::ActorDestroy(ActorDes } mForceAborted = true; MaybeCommitOrAbort(); } } -bool +mozilla::ipc::IPCResult NormalTransaction::RecvDeleteMe() { AssertIsOnBackgroundThread(); MOZ_ASSERT(!IsActorDestroyed()); - return PBackgroundIDBTransactionParent::Send__delete__(this); -} - -bool + if (!PBackgroundIDBTransactionParent::Send__delete__(this)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); +} + +mozilla::ipc::IPCResult NormalTransaction::RecvCommit() { AssertIsOnBackgroundThread(); - return TransactionBase::RecvCommit(); -} - -bool + if (!TransactionBase::RecvCommit()) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); +} + +mozilla::ipc::IPCResult NormalTransaction::RecvAbort(const nsresult& aResultCode) { AssertIsOnBackgroundThread(); - return TransactionBase::RecvAbort(aResultCode); + if (!TransactionBase::RecvAbort(aResultCode)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); } PBackgroundIDBRequestParent* NormalTransaction::AllocPBackgroundIDBRequestParent( const RequestParams& aParams) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aParams.type() != RequestParams::T__None); return AllocRequest(aParams, IsSameProcessActor()); } -bool +mozilla::ipc::IPCResult NormalTransaction::RecvPBackgroundIDBRequestConstructor( PBackgroundIDBRequestParent* aActor, const RequestParams& aParams) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aActor); MOZ_ASSERT(aParams.type() != RequestParams::T__None); - return StartRequest(aActor); + if (!StartRequest(aActor)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); } bool NormalTransaction::DeallocPBackgroundIDBRequestParent( PBackgroundIDBRequestParent* aActor) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aActor); @@ -15672,26 +15690,29 @@ PBackgroundIDBCursorParent* NormalTransaction::AllocPBackgroundIDBCursorParent( const OpenCursorParams& aParams) { AssertIsOnBackgroundThread(); return AllocCursor(aParams, IsSameProcessActor()); } -bool +mozilla::ipc::IPCResult NormalTransaction::RecvPBackgroundIDBCursorConstructor( PBackgroundIDBCursorParent* aActor, const OpenCursorParams& aParams) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aActor); MOZ_ASSERT(aParams.type() != OpenCursorParams::T__None); - return StartCursor(aActor, aParams); + if (!StartCursor(aActor, aParams)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); } bool NormalTransaction::DeallocPBackgroundIDBCursorParent( PBackgroundIDBCursorParent* aActor) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aActor); @@ -15897,128 +15918,137 @@ VersionChangeTransaction::ActorDestroy(A } mForceAborted = true; MaybeCommitOrAbort(); } } -bool +mozilla::ipc::IPCResult VersionChangeTransaction::RecvDeleteMe() { AssertIsOnBackgroundThread(); MOZ_ASSERT(!IsActorDestroyed()); - return PBackgroundIDBVersionChangeTransactionParent::Send__delete__(this); -} - -bool + if (!PBackgroundIDBVersionChangeTransactionParent::Send__delete__(this)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); +} + +mozilla::ipc::IPCResult VersionChangeTransaction::RecvCommit() { AssertIsOnBackgroundThread(); - return TransactionBase::RecvCommit(); -} - -bool + if (!TransactionBase::RecvCommit()) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); +} + +mozilla::ipc::IPCResult VersionChangeTransaction::RecvAbort(const nsresult& aResultCode) { AssertIsOnBackgroundThread(); - return TransactionBase::RecvAbort(aResultCode); -} - -bool + if (!TransactionBase::RecvAbort(aResultCode)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); +} + +mozilla::ipc::IPCResult VersionChangeTransaction::RecvCreateObjectStore( const ObjectStoreMetadata& aMetadata) { AssertIsOnBackgroundThread(); if (NS_WARN_IF(!aMetadata.id())) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } const RefPtr<FullDatabaseMetadata> dbMetadata = GetDatabase()->Metadata(); MOZ_ASSERT(dbMetadata); if (NS_WARN_IF(aMetadata.id() != dbMetadata->mNextObjectStoreId)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } auto* foundMetadata = MetadataNameOrIdMatcher<FullObjectStoreMetadata>::Match( dbMetadata->mObjectStores, aMetadata.id(), aMetadata.name()); if (NS_WARN_IF(foundMetadata)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } if (NS_WARN_IF(mCommitOrAbortReceived)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } RefPtr<FullObjectStoreMetadata> newMetadata = new FullObjectStoreMetadata(); newMetadata->mCommonMetadata = aMetadata; newMetadata->mNextAutoIncrementId = aMetadata.autoIncrement() ? 1 : 0; newMetadata->mCommittedAutoIncrementId = newMetadata->mNextAutoIncrementId; if (NS_WARN_IF(!dbMetadata->mObjectStores.Put(aMetadata.id(), newMetadata, fallible))) { - return false; + return IPC_FAIL_NO_REASON(this); } dbMetadata->mNextObjectStoreId++; RefPtr<CreateObjectStoreOp> op = new CreateObjectStoreOp(this, aMetadata); if (NS_WARN_IF(!op->Init(this))) { op->Cleanup(); - return false; + return IPC_FAIL_NO_REASON(this); } op->DispatchToConnectionPool(); - return true; -} - -bool + return IPC_OK(); +} + +mozilla::ipc::IPCResult VersionChangeTransaction::RecvDeleteObjectStore(const int64_t& aObjectStoreId) { AssertIsOnBackgroundThread(); if (NS_WARN_IF(!aObjectStoreId)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } const RefPtr<FullDatabaseMetadata> dbMetadata = GetDatabase()->Metadata(); MOZ_ASSERT(dbMetadata); MOZ_ASSERT(dbMetadata->mNextObjectStoreId > 0); if (NS_WARN_IF(aObjectStoreId >= dbMetadata->mNextObjectStoreId)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } RefPtr<FullObjectStoreMetadata> foundMetadata = GetMetadataForObjectStoreId(aObjectStoreId); if (NS_WARN_IF(!foundMetadata)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } if (NS_WARN_IF(mCommitOrAbortReceived)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } foundMetadata->mDeleted = true; bool isLastObjectStore = true; DebugOnly<bool> foundTargetId = false; for (auto iter = dbMetadata->mObjectStores.Iter(); !iter.Done(); @@ -16032,192 +16062,192 @@ VersionChangeTransaction::RecvDeleteObje } MOZ_ASSERT_IF(isLastObjectStore, foundTargetId); RefPtr<DeleteObjectStoreOp> op = new DeleteObjectStoreOp(this, foundMetadata, isLastObjectStore); if (NS_WARN_IF(!op->Init(this))) { op->Cleanup(); - return false; + return IPC_FAIL_NO_REASON(this); } op->DispatchToConnectionPool(); - return true; -} - -bool + return IPC_OK(); +} + +mozilla::ipc::IPCResult VersionChangeTransaction::RecvRenameObjectStore(const int64_t& aObjectStoreId, const nsString& aName) { AssertIsOnBackgroundThread(); if (NS_WARN_IF(!aObjectStoreId)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } const RefPtr<FullDatabaseMetadata> dbMetadata = GetDatabase()->Metadata(); MOZ_ASSERT(dbMetadata); MOZ_ASSERT(dbMetadata->mNextObjectStoreId > 0); if (NS_WARN_IF(aObjectStoreId >= dbMetadata->mNextObjectStoreId)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } RefPtr<FullObjectStoreMetadata> foundMetadata = GetMetadataForObjectStoreId(aObjectStoreId); if (NS_WARN_IF(!foundMetadata)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } if (NS_WARN_IF(mCommitOrAbortReceived)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } foundMetadata->mCommonMetadata.name() = aName; RefPtr<RenameObjectStoreOp> renameOp = new RenameObjectStoreOp(this, foundMetadata); if (NS_WARN_IF(!renameOp->Init(this))) { renameOp->Cleanup(); - return false; + return IPC_FAIL_NO_REASON(this); } renameOp->DispatchToConnectionPool(); - return true; -} - -bool + return IPC_OK(); +} + +mozilla::ipc::IPCResult VersionChangeTransaction::RecvCreateIndex(const int64_t& aObjectStoreId, const IndexMetadata& aMetadata) { AssertIsOnBackgroundThread(); if (NS_WARN_IF(!aObjectStoreId)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } if (NS_WARN_IF(!aMetadata.id())) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } const RefPtr<FullDatabaseMetadata> dbMetadata = GetDatabase()->Metadata(); MOZ_ASSERT(dbMetadata); if (NS_WARN_IF(aMetadata.id() != dbMetadata->mNextIndexId)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } RefPtr<FullObjectStoreMetadata> foundObjectStoreMetadata = GetMetadataForObjectStoreId(aObjectStoreId); if (NS_WARN_IF(!foundObjectStoreMetadata)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } RefPtr<FullIndexMetadata> foundIndexMetadata = MetadataNameOrIdMatcher<FullIndexMetadata>::Match( foundObjectStoreMetadata->mIndexes, aMetadata.id(), aMetadata.name()); if (NS_WARN_IF(foundIndexMetadata)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } if (NS_WARN_IF(mCommitOrAbortReceived)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } RefPtr<FullIndexMetadata> newMetadata = new FullIndexMetadata(); newMetadata->mCommonMetadata = aMetadata; if (NS_WARN_IF(!foundObjectStoreMetadata->mIndexes.Put(aMetadata.id(), newMetadata, fallible))) { - return false; + return IPC_FAIL_NO_REASON(this); } dbMetadata->mNextIndexId++; RefPtr<CreateIndexOp> op = new CreateIndexOp(this, aObjectStoreId, aMetadata); if (NS_WARN_IF(!op->Init(this))) { op->Cleanup(); - return false; + return IPC_FAIL_NO_REASON(this); } op->DispatchToConnectionPool(); - return true; -} - -bool + return IPC_OK(); +} + +mozilla::ipc::IPCResult VersionChangeTransaction::RecvDeleteIndex(const int64_t& aObjectStoreId, const int64_t& aIndexId) { AssertIsOnBackgroundThread(); if (NS_WARN_IF(!aObjectStoreId)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } if (NS_WARN_IF(!aIndexId)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } const RefPtr<FullDatabaseMetadata> dbMetadata = GetDatabase()->Metadata(); MOZ_ASSERT(dbMetadata); MOZ_ASSERT(dbMetadata->mNextObjectStoreId > 0); MOZ_ASSERT(dbMetadata->mNextIndexId > 0); if (NS_WARN_IF(aObjectStoreId >= dbMetadata->mNextObjectStoreId)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } if (NS_WARN_IF(aIndexId >= dbMetadata->mNextIndexId)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } RefPtr<FullObjectStoreMetadata> foundObjectStoreMetadata = GetMetadataForObjectStoreId(aObjectStoreId); if (NS_WARN_IF(!foundObjectStoreMetadata)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } RefPtr<FullIndexMetadata> foundIndexMetadata = GetMetadataForIndexId(foundObjectStoreMetadata, aIndexId); if (NS_WARN_IF(!foundIndexMetadata)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } if (NS_WARN_IF(mCommitOrAbortReceived)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } foundIndexMetadata->mDeleted = true; bool isLastIndex = true; DebugOnly<bool> foundTargetId = false; for (auto iter = foundObjectStoreMetadata->mIndexes.ConstIter(); !iter.Done(); @@ -16235,112 +16265,115 @@ VersionChangeTransaction::RecvDeleteInde new DeleteIndexOp(this, aObjectStoreId, aIndexId, foundIndexMetadata->mCommonMetadata.unique(), isLastIndex); if (NS_WARN_IF(!op->Init(this))) { op->Cleanup(); - return false; + return IPC_FAIL_NO_REASON(this); } op->DispatchToConnectionPool(); - return true; -} - -bool + return IPC_OK(); +} + +mozilla::ipc::IPCResult VersionChangeTransaction::RecvRenameIndex(const int64_t& aObjectStoreId, const int64_t& aIndexId, const nsString& aName) { AssertIsOnBackgroundThread(); if (NS_WARN_IF(!aObjectStoreId)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } if (NS_WARN_IF(!aIndexId)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } const RefPtr<FullDatabaseMetadata> dbMetadata = GetDatabase()->Metadata(); MOZ_ASSERT(dbMetadata); MOZ_ASSERT(dbMetadata->mNextObjectStoreId > 0); MOZ_ASSERT(dbMetadata->mNextIndexId > 0); if (NS_WARN_IF(aObjectStoreId >= dbMetadata->mNextObjectStoreId)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } if (NS_WARN_IF(aIndexId >= dbMetadata->mNextIndexId)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } RefPtr<FullObjectStoreMetadata> foundObjectStoreMetadata = GetMetadataForObjectStoreId(aObjectStoreId); if (NS_WARN_IF(!foundObjectStoreMetadata)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } RefPtr<FullIndexMetadata> foundIndexMetadata = GetMetadataForIndexId(foundObjectStoreMetadata, aIndexId); if (NS_WARN_IF(!foundIndexMetadata)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } if (NS_WARN_IF(mCommitOrAbortReceived)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } foundIndexMetadata->mCommonMetadata.name() = aName; RefPtr<RenameIndexOp> renameOp = new RenameIndexOp(this, foundIndexMetadata, aObjectStoreId); if (NS_WARN_IF(!renameOp->Init(this))) { renameOp->Cleanup(); - return false; + return IPC_FAIL_NO_REASON(this); } renameOp->DispatchToConnectionPool(); - return true; + return IPC_OK(); } PBackgroundIDBRequestParent* VersionChangeTransaction::AllocPBackgroundIDBRequestParent( const RequestParams& aParams) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aParams.type() != RequestParams::T__None); return AllocRequest(aParams, IsSameProcessActor()); } -bool +mozilla::ipc::IPCResult VersionChangeTransaction::RecvPBackgroundIDBRequestConstructor( PBackgroundIDBRequestParent* aActor, const RequestParams& aParams) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aActor); MOZ_ASSERT(aParams.type() != RequestParams::T__None); - return StartRequest(aActor); + if (!StartRequest(aActor)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); } bool VersionChangeTransaction::DeallocPBackgroundIDBRequestParent( PBackgroundIDBRequestParent* aActor) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aActor); @@ -16352,26 +16385,29 @@ PBackgroundIDBCursorParent* VersionChangeTransaction::AllocPBackgroundIDBCursorParent( const OpenCursorParams& aParams) { AssertIsOnBackgroundThread(); return AllocCursor(aParams, IsSameProcessActor()); } -bool +mozilla::ipc::IPCResult VersionChangeTransaction::RecvPBackgroundIDBCursorConstructor( PBackgroundIDBCursorParent* aActor, const OpenCursorParams& aParams) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aActor); MOZ_ASSERT(aParams.type() != OpenCursorParams::T__None); - return StartCursor(aActor, aParams); + if (!StartCursor(aActor, aParams)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); } bool VersionChangeTransaction::DeallocPBackgroundIDBCursorParent( PBackgroundIDBCursorParent* aActor) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aActor); @@ -16672,31 +16708,34 @@ Cursor::ActorDestroy(ActorDestroyReason } mBackgroundParent = nullptr; mObjectStoreMetadata = nullptr; mIndexMetadata = nullptr; } -bool +mozilla::ipc::IPCResult Cursor::RecvDeleteMe() { AssertIsOnBackgroundThread(); MOZ_ASSERT(!mActorDestroyed); if (NS_WARN_IF(mCurrentlyRunningOp)) { ASSERT_UNLESS_FUZZING(); - return false; - } - - return PBackgroundIDBCursorParent::Send__delete__(this); -} - -bool + return IPC_FAIL_NO_REASON(this); + } + + if (!PBackgroundIDBCursorParent::Send__delete__(this)) { + return IPC_FAIL_NO_REASON(this); + } + return IPC_OK(); +} + +mozilla::ipc::IPCResult Cursor::RecvContinue(const CursorRequestParams& aParams) { AssertIsOnBackgroundThread(); MOZ_ASSERT(aParams.type() != CursorRequestParams::T__None); MOZ_ASSERT(!mActorDestroyed); MOZ_ASSERT(mObjectStoreMetadata); MOZ_ASSERT_IF(mType == OpenCursorParams::TIndexOpenCursorParams || mType == OpenCursorParams::TIndexOpenKeyCursorParams, @@ -16708,39 +16747,39 @@ Cursor::RecvContinue(const CursorRequest false #else mIsSameProcessActor #endif ; if (!trustParams && !VerifyRequestParams(aParams)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } if (NS_WARN_IF(mCurrentlyRunningOp)) { ASSERT_UNLESS_FUZZING(); - return false; + return IPC_FAIL_NO_REASON(this); } if (NS_WARN_IF(mTransaction->mCommitOrAbortReceived)) { ASSERT_UNLESS_FUZZING();