From b5e156f5c2f5d4e594be5e55f92acae4e6b52908 Mon Sep 17 00:00:00 2001 From: Eitan Isaacson Date: Fri, 26 May 2017 15:10:57 -0700 Subject: [PATCH] Bug 1368103 - Use DOM doc visibilityState to determine if a tab is hidden. r=surkov --- accessible/generic/Accessible.cpp | 4 ++++ accessible/generic/DocAccessible.h | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/accessible/generic/Accessible.cpp b/accessible/generic/Accessible.cpp index 868b672e1793..690d1608cec7 100644 --- a/accessible/generic/Accessible.cpp +++ b/accessible/generic/Accessible.cpp @@ -335,6 +335,10 @@ Accessible::VisibilityState() if (!frame->StyleVisibility()->IsVisible()) return states::INVISIBLE; + // Offscreen state if the document's visibility state is not visible. + if (Document()->IsHidden()) + return states::OFFSCREEN; + nsIFrame* curFrame = frame; do { nsView* view = curFrame->GetView(); diff --git a/accessible/generic/DocAccessible.h b/accessible/generic/DocAccessible.h index 2977fff4b1ed..885cb8c987b0 100644 --- a/accessible/generic/DocAccessible.h +++ b/accessible/generic/DocAccessible.h @@ -137,6 +137,11 @@ public: (mDocumentNode->IsShowing() || HasLoadState(eDOMLoaded)); } + bool IsHidden() const + { + return mDocumentNode->Hidden(); + } + /** * Document load states. */