Bug 812086 part 1. Add unprefixed version of page visibility API. r=smaug

This commit is contained in:
Boris Zbarsky 2012-11-16 14:22:55 -08:00
parent 04bbbba710
commit 156adc13b1
3 changed files with 20 additions and 2 deletions

View File

@ -9487,6 +9487,10 @@ nsDocument::UpdateVisibilityState()
VisibilityState oldState = mVisibilityState;
mVisibilityState = GetVisibilityState();
if (oldState != mVisibilityState) {
nsContentUtils::DispatchTrustedEvent(this, static_cast<nsIDocument*>(this),
NS_LITERAL_STRING("visibilitychange"),
/* bubbles = */ true,
/* cancelable = */ false);
nsContentUtils::DispatchTrustedEvent(this, static_cast<nsIDocument*>(this),
NS_LITERAL_STRING("mozvisibilitychange"),
/* bubbles = */ true,
@ -9522,6 +9526,12 @@ nsDocument::PostVisibilityUpdateEvent()
NS_IMETHODIMP
nsDocument::GetMozHidden(bool* aHidden)
{
return GetHidden(aHidden);
}
NS_IMETHODIMP
nsDocument::GetHidden(bool* aHidden)
{
*aHidden = mVisibilityState != eVisible;
return NS_OK;
@ -9529,6 +9539,12 @@ nsDocument::GetMozHidden(bool* aHidden)
NS_IMETHODIMP
nsDocument::GetMozVisibilityState(nsAString& aState)
{
return GetVisibilityState(aState);
}
NS_IMETHODIMP
nsDocument::GetVisibilityState(nsAString& aState)
{
// This needs to stay in sync with the VisibilityState enum.
static const char states[][8] = {

View File

@ -1258,7 +1258,7 @@ protected:
nsRefPtr<nsDOMNavigationTiming> mTiming;
private:
friend class nsUnblockOnloadEvent;
// This needs to stay in sync with the list in GetMozVisibilityState.
// This needs to stay in sync with the list in GetVisibilityState.
enum VisibilityState {
eHidden = 0,
eVisible,

View File

@ -27,7 +27,7 @@ interface nsIDOMLocation;
* http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html
*/
[scriptable, uuid(22af46a3-64ac-430a-bcc7-d0a9aefe474f)]
[scriptable, uuid(31ce7ae7-15d5-4fc8-912b-ae0e23e93146)]
interface nsIDOMDocument : nsIDOMNode
{
readonly attribute nsIDOMDocumentType doctype;
@ -385,7 +385,9 @@ interface nsIDOMDocument : nsIDOMNode
/**
* Visibility API implementation.
*/
readonly attribute boolean hidden;
readonly attribute boolean mozHidden;
readonly attribute DOMString visibilityState;
readonly attribute DOMString mozVisibilityState;
/**