Bug 774556 - Remove nsIDOMWindowPerformance* XPCOM interfaces; r=bzbarsky

This commit is contained in:
Ehsan Akhgari 2012-07-16 22:44:22 -04:00
parent a3de3e5cce
commit 8bb5b583b2
14 changed files with 31 additions and 316 deletions

View File

@ -638,7 +638,7 @@ ConvertLoadTypeToNavigationType(PRUint32 aLoadType)
aLoadType = LOAD_NORMAL;
}
nsDOMPerformanceNavigationType result = nsIDOMPerformanceNavigation::TYPE_RESERVED;
nsDOMPerformanceNavigationType result = dom::PerformanceNavigation::TYPE_RESERVED;
switch (aLoadType) {
case LOAD_NORMAL:
case LOAD_NORMAL_EXTERNAL:
@ -649,28 +649,28 @@ ConvertLoadTypeToNavigationType(PRUint32 aLoadType)
case LOAD_LINK:
case LOAD_STOP_CONTENT:
case LOAD_REPLACE_BYPASS_CACHE:
result = nsIDOMPerformanceNavigation::TYPE_NAVIGATE;
result = dom::PerformanceNavigation::TYPE_NAVIGATE;
break;
case LOAD_HISTORY:
result = nsIDOMPerformanceNavigation::TYPE_BACK_FORWARD;
result = dom::PerformanceNavigation::TYPE_BACK_FORWARD;
break;
case LOAD_RELOAD_NORMAL:
case LOAD_RELOAD_CHARSET_CHANGE:
case LOAD_RELOAD_BYPASS_CACHE:
case LOAD_RELOAD_BYPASS_PROXY:
case LOAD_RELOAD_BYPASS_PROXY_AND_CACHE:
result = nsIDOMPerformanceNavigation::TYPE_RELOAD;
result = dom::PerformanceNavigation::TYPE_RELOAD;
break;
case LOAD_STOP_CONTENT_AND_REPLACE:
case LOAD_REFRESH:
case LOAD_BYPASS_HISTORY:
case LOAD_ERROR_PAGE:
case LOAD_PUSHSTATE:
result = nsIDOMPerformanceNavigation::TYPE_RESERVED;
result = dom::PerformanceNavigation::TYPE_RESERVED;
break;
default:
// NS_NOTREACHED("Unexpected load type value");
result = nsIDOMPerformanceNavigation::TYPE_RESERVED;
result = dom::PerformanceNavigation::TYPE_RESERVED;
break;
}

View File

@ -103,9 +103,6 @@
#include "nsIDOMMediaList.h"
#include "nsIDOMChromeWindow.h"
#include "nsIDOMConstructor.h"
#include "nsIDOMPerformanceTiming.h"
#include "nsIDOMPerformanceNavigation.h"
#include "nsIDOMPerformance.h"
#include "nsClientRect.h"
#include "nsIDOMHTMLPropertiesCollection.h"
@ -749,12 +746,6 @@ static nsDOMClassInfoData sClassInfoData[] = {
NS_DEFINE_CLASSINFO_DATA(History, nsHistorySH,
ARRAY_SCRIPTABLE_FLAGS |
nsIXPCScriptable::WANT_PRECREATE)
NS_DEFINE_CLASSINFO_DATA(PerformanceTiming, nsDOMGenericSH,
DOM_DEFAULT_SCRIPTABLE_FLAGS)
NS_DEFINE_CLASSINFO_DATA(PerformanceNavigation, nsDOMGenericSH,
DOM_DEFAULT_SCRIPTABLE_FLAGS)
NS_DEFINE_CLASSINFO_DATA(Performance, nsDOMGenericSH,
DOM_DEFAULT_SCRIPTABLE_FLAGS)
NS_DEFINE_CLASSINFO_DATA(Screen, nsDOMGenericSH,
DOM_DEFAULT_SCRIPTABLE_FLAGS)
NS_DEFINE_CLASSINFO_DATA(DOMPrototype, nsDOMConstructorSH,
@ -2514,21 +2505,6 @@ nsDOMClassInfo::Init()
DOM_CLASSINFO_MAP_ENTRY(nsIDOMHistory)
DOM_CLASSINFO_MAP_END
DOM_CLASSINFO_MAP_BEGIN_MAYBE_DISABLE(PerformanceTiming, nsIDOMPerformanceTiming,
!nsGlobalWindow::HasPerformanceSupport())
DOM_CLASSINFO_MAP_ENTRY(nsIDOMPerformanceTiming)
DOM_CLASSINFO_MAP_END
DOM_CLASSINFO_MAP_BEGIN_MAYBE_DISABLE(PerformanceNavigation, nsIDOMPerformanceNavigation,
!nsGlobalWindow::HasPerformanceSupport())
DOM_CLASSINFO_MAP_ENTRY(nsIDOMPerformanceNavigation)
DOM_CLASSINFO_MAP_END
DOM_CLASSINFO_MAP_BEGIN_MAYBE_DISABLE(Performance, nsIDOMPerformance,
!nsGlobalWindow::HasPerformanceSupport())
DOM_CLASSINFO_MAP_ENTRY(nsIDOMPerformance)
DOM_CLASSINFO_MAP_END
DOM_CLASSINFO_MAP_BEGIN(Screen, nsIDOMScreen)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMScreen)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMEventTarget)

View File

@ -12,9 +12,6 @@ DOMCI_CLASS(MimeType)
DOMCI_CLASS(MimeTypeArray)
DOMCI_CLASS(BarProp)
DOMCI_CLASS(History)
DOMCI_CLASS(PerformanceTiming)
DOMCI_CLASS(PerformanceNavigation)
DOMCI_CLASS(Performance)
DOMCI_CLASS(Screen)
DOMCI_CLASS(DOMPrototype)
DOMCI_CLASS(DOMConstructor)

View File

@ -24,7 +24,7 @@ nsDOMNavigationTiming::~nsDOMNavigationTiming()
void
nsDOMNavigationTiming::Clear()
{
mNavigationType = nsIDOMPerformanceNavigation::TYPE_RESERVED;
mNavigationType = mozilla::dom::PerformanceNavigation::TYPE_RESERVED;
mNavigationStart = 0;
mFetchStart = 0;
mRedirectStart = 0;

View File

@ -6,8 +6,6 @@
#ifndef nsDOMNavigationTiming_h___
#define nsDOMNavigationTiming_h___
#include "nsIDOMPerformanceTiming.h"
#include "nsIDOMPerformanceNavigation.h"
#include "nscore.h"
#include "nsCOMPtr.h"
#include "nsCOMArray.h"
@ -16,6 +14,21 @@
class nsDOMNavigationTimingClock;
typedef unsigned long long DOMTimeMilliSec;
typedef double DOMHighResTimeStamp;
typedef unsigned short nsDOMPerformanceNavigationType;
namespace mozilla {
namespace dom {
namespace PerformanceNavigation {
static const nsDOMPerformanceNavigationType TYPE_NAVIGATE = 0;
static const nsDOMPerformanceNavigationType TYPE_RELOAD = 1;
static const nsDOMPerformanceNavigationType TYPE_BACK_FORWARD = 2;
static const nsDOMPerformanceNavigationType TYPE_RESERVED = 255;
}
}
}
class nsDOMNavigationTiming
{
public:

View File

@ -2920,7 +2920,7 @@ nsGlobalWindow::GetHistory(nsIDOMHistory** aHistory)
}
NS_IMETHODIMP
nsGlobalWindow::GetPerformance(nsIDOMPerformance** aPerformance)
nsGlobalWindow::GetPerformance(nsISupports** aPerformance)
{
FORWARD_TO_INNER(GetPerformance, (aPerformance), NS_ERROR_NOT_INITIALIZED);

View File

@ -9,7 +9,6 @@
#include "nscore.h"
#include "nsIDocShell.h"
#include "nsITimedChannel.h"
#include "nsDOMClassInfoID.h"
#include "nsDOMNavigationTiming.h"
#include "nsContentUtils.h"
#include "nsIDOMWindow.h"
@ -28,9 +27,7 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(nsPerformanceTiming)
// QueryInterface implementation for nsPerformanceTiming
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsPerformanceTiming)
NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDOMPerformanceTiming)
NS_INTERFACE_MAP_ENTRY(nsIDOMPerformanceTiming)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(PerformanceTiming)
NS_INTERFACE_MAP_ENTRY(nsISupports)
NS_INTERFACE_MAP_END
nsPerformanceTiming::nsPerformanceTiming(nsPerformance* aPerformance,
@ -46,55 +43,6 @@ nsPerformanceTiming::~nsPerformanceTiming()
{
}
NS_IMETHODIMP
nsPerformanceTiming::GetNavigationStart(DOMTimeMilliSec* aTime)
{
*aTime = GetNavigationStart();
return NS_OK;
}
NS_IMETHODIMP
nsPerformanceTiming::GetUnloadEventStart(DOMTimeMilliSec* aTime)
{
*aTime = GetUnloadEventStart();
return NS_OK;
}
NS_IMETHODIMP
nsPerformanceTiming::GetUnloadEventEnd(DOMTimeMilliSec* aTime)
{
*aTime = GetUnloadEventEnd();
return NS_OK;
}
NS_IMETHODIMP
nsPerformanceTiming::GetRedirectStart(DOMTimeMilliSec* aTime)
{
*aTime = GetRedirectStart();
return NS_OK;
}
NS_IMETHODIMP
nsPerformanceTiming::GetRedirectEnd(DOMTimeMilliSec* aTime)
{
*aTime = GetRedirectEnd();
return NS_OK;
}
NS_IMETHODIMP
nsPerformanceTiming::GetFetchStart(DOMTimeMilliSec* aTime)
{
*aTime = GetFetchStart();
return NS_OK;
}
NS_IMETHODIMP
nsPerformanceTiming::GetDomainLookupStart(DOMTimeMilliSec* aTime)
{
*aTime = GetDomainLookupStart();
return NS_OK;
}
DOMTimeMilliSec
nsPerformanceTiming::GetDomainLookupStart() const
{
@ -106,13 +54,6 @@ nsPerformanceTiming::GetDomainLookupStart() const
return GetDOMTiming()->TimeStampToDOMOrFetchStart(stamp);
}
NS_IMETHODIMP
nsPerformanceTiming::GetDomainLookupEnd(DOMTimeMilliSec* aTime)
{
*aTime = GetDomainLookupEnd();
return NS_OK;
}
DOMTimeMilliSec
nsPerformanceTiming::GetDomainLookupEnd() const
{
@ -124,13 +65,6 @@ nsPerformanceTiming::GetDomainLookupEnd() const
return GetDOMTiming()->TimeStampToDOMOrFetchStart(stamp);
}
NS_IMETHODIMP
nsPerformanceTiming::GetConnectStart(DOMTimeMilliSec* aTime)
{
*aTime = GetConnectStart();
return NS_OK;
}
DOMTimeMilliSec
nsPerformanceTiming::GetConnectStart() const
{
@ -142,13 +76,6 @@ nsPerformanceTiming::GetConnectStart() const
return GetDOMTiming()->TimeStampToDOMOrFetchStart(stamp);
}
NS_IMETHODIMP
nsPerformanceTiming::GetConnectEnd(DOMTimeMilliSec* aTime)
{
*aTime = GetConnectEnd();
return NS_OK;
}
DOMTimeMilliSec
nsPerformanceTiming::GetConnectEnd() const
{
@ -160,13 +87,6 @@ nsPerformanceTiming::GetConnectEnd() const
return GetDOMTiming()->TimeStampToDOMOrFetchStart(stamp);
}
NS_IMETHODIMP
nsPerformanceTiming::GetRequestStart(DOMTimeMilliSec* aTime)
{
*aTime = GetRequestStart();
return NS_OK;
}
DOMTimeMilliSec
nsPerformanceTiming::GetRequestStart() const
{
@ -178,13 +98,6 @@ nsPerformanceTiming::GetRequestStart() const
return GetDOMTiming()->TimeStampToDOMOrFetchStart(stamp);
}
NS_IMETHODIMP
nsPerformanceTiming::GetResponseStart(DOMTimeMilliSec* aTime)
{
*aTime = GetResponseStart();
return NS_OK;
}
DOMTimeMilliSec
nsPerformanceTiming::GetResponseStart() const
{
@ -201,13 +114,6 @@ nsPerformanceTiming::GetResponseStart() const
return GetDOMTiming()->TimeStampToDOMOrFetchStart(stamp);
}
NS_IMETHODIMP
nsPerformanceTiming::GetResponseEnd(DOMTimeMilliSec* aTime)
{
*aTime = GetResponseEnd();
return NS_OK;
}
DOMTimeMilliSec
nsPerformanceTiming::GetResponseEnd() const
{
@ -224,55 +130,6 @@ nsPerformanceTiming::GetResponseEnd() const
return GetDOMTiming()->TimeStampToDOMOrFetchStart(stamp);
}
NS_IMETHODIMP
nsPerformanceTiming::GetDomLoading(DOMTimeMilliSec* aTime)
{
*aTime = GetDomLoading();
return NS_OK;
}
NS_IMETHODIMP
nsPerformanceTiming::GetDomInteractive(DOMTimeMilliSec* aTime)
{
*aTime = GetDomInteractive();
return NS_OK;
}
NS_IMETHODIMP
nsPerformanceTiming::GetDomContentLoadedEventStart(DOMTimeMilliSec* aTime)
{
*aTime = GetDomContentLoadedEventStart();
return NS_OK;
}
NS_IMETHODIMP
nsPerformanceTiming::GetDomContentLoadedEventEnd(DOMTimeMilliSec* aTime)
{
*aTime = GetDomContentLoadedEventEnd();
return NS_OK;
}
NS_IMETHODIMP
nsPerformanceTiming::GetDomComplete(DOMTimeMilliSec* aTime)
{
*aTime = GetDomComplete();
return NS_OK;
}
NS_IMETHODIMP
nsPerformanceTiming::GetLoadEventStart(DOMTimeMilliSec* aTime)
{
*aTime = GetLoadEventStart();
return NS_OK;
}
NS_IMETHODIMP
nsPerformanceTiming::GetLoadEventEnd(DOMTimeMilliSec* aTime)
{
*aTime = GetLoadEventEnd();
return NS_OK;
}
JSObject*
nsPerformanceTiming::WrapObject(JSContext *cx, JSObject *scope,
bool *triedToWrap)
@ -292,9 +149,7 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(nsPerformanceNavigation)
// QueryInterface implementation for nsPerformanceNavigation
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsPerformanceNavigation)
NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDOMPerformanceNavigation)
NS_INTERFACE_MAP_ENTRY(nsIDOMPerformanceNavigation)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(PerformanceNavigation)
NS_INTERFACE_MAP_ENTRY(nsISupports)
NS_INTERFACE_MAP_END
nsPerformanceNavigation::nsPerformanceNavigation(nsPerformance* aPerformance)
@ -308,21 +163,6 @@ nsPerformanceNavigation::~nsPerformanceNavigation()
{
}
NS_IMETHODIMP
nsPerformanceNavigation::GetType(
nsDOMPerformanceNavigationType* aNavigationType)
{
*aNavigationType = GetType();
return NS_OK;
}
NS_IMETHODIMP
nsPerformanceNavigation::GetRedirectCount(PRUint16* aRedirectCount)
{
*aRedirectCount = GetRedirectCount();
return NS_OK;
}
JSObject*
nsPerformanceNavigation::WrapObject(JSContext *cx, JSObject *scope,
bool *triedToWrap)
@ -358,16 +198,10 @@ nsPerformance::~nsPerformance()
// QueryInterface implementation for nsPerformance
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsPerformance)
NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDOMPerformance)
NS_INTERFACE_MAP_ENTRY(nsIDOMPerformance)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(Performance)
NS_INTERFACE_MAP_ENTRY(nsISupports)
NS_INTERFACE_MAP_END
//
// nsIDOMPerformance methods
//
nsPerformanceTiming*
nsPerformance::GetTiming()
{
@ -377,14 +211,6 @@ nsPerformance::GetTiming()
return mTiming;
}
NS_IMETHODIMP
nsPerformance::GetTiming(nsIDOMPerformanceTiming** aTiming)
{
nsRefPtr<nsPerformanceTiming> timing = GetTiming();
timing.forget(aTiming);
return NS_OK;
}
nsPerformanceNavigation*
nsPerformance::GetNavigation()
{
@ -394,21 +220,6 @@ nsPerformance::GetNavigation()
return mNavigation;
}
NS_IMETHODIMP
nsPerformance::GetNavigation(nsIDOMPerformanceNavigation** aNavigation)
{
nsRefPtr<nsPerformanceNavigation> navigation = GetNavigation();
navigation.forget(aNavigation);
return NS_OK;
}
NS_IMETHODIMP
nsPerformance::Now(DOMHighResTimeStamp* aNow)
{
*aNow = Now();
return NS_OK;
}
DOMHighResTimeStamp
nsPerformance::Now()
{

View File

@ -5,9 +5,6 @@
#ifndef nsPerformance_h___
#define nsPerformance_h___
#include "nsIDOMPerformance.h"
#include "nsIDOMPerformanceTiming.h"
#include "nsIDOMPerformanceNavigation.h"
#include "nscore.h"
#include "nsCOMPtr.h"
#include "nsAutoPtr.h"
@ -17,19 +14,19 @@
class nsIURI;
class nsITimedChannel;
class nsIDOMWindow;
class nsPerformance;
struct JSObject;
struct JSContext;
// Script "performance.timing" object
class nsPerformanceTiming MOZ_FINAL : public nsIDOMPerformanceTiming,
class nsPerformanceTiming MOZ_FINAL : public nsISupports,
public nsWrapperCache
{
public:
nsPerformanceTiming(nsPerformance* aPerformance,
nsITimedChannel* aChannel);
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
NS_DECL_NSIDOMPERFORMANCETIMING
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(nsPerformanceTiming)
nsDOMNavigationTiming* GetDOMTiming() const;
@ -96,13 +93,12 @@ private:
};
// Script "performance.navigation" object
class nsPerformanceNavigation MOZ_FINAL : public nsIDOMPerformanceNavigation,
class nsPerformanceNavigation MOZ_FINAL : public nsISupports,
public nsWrapperCache
{
public:
explicit nsPerformanceNavigation(nsPerformance* aPerformance);
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
NS_DECL_NSIDOMPERFORMANCENAVIGATION
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(nsPerformanceNavigation)
nsDOMNavigationTiming* GetDOMTiming() const;
@ -128,7 +124,7 @@ private:
};
// Script "performance" object
class nsPerformance MOZ_FINAL : public nsIDOMPerformance,
class nsPerformance MOZ_FINAL : public nsISupports,
public nsWrapperCache
{
public:
@ -137,7 +133,6 @@ public:
nsITimedChannel* aChannel);
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
NS_DECL_NSIDOMPERFORMANCE
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(nsPerformance)
nsDOMNavigationTiming* GetDOMTiming() const

View File

@ -54,9 +54,6 @@ XPIDLSRCS = \
nsIDOMGlobalPropertyInitializer.idl \
nsIDOMGlobalObjectConstructor.idl \
nsIStructuredCloneContainer.idl \
nsIDOMPerformance.idl \
nsIDOMPerformanceTiming.idl \
nsIDOMPerformanceNavigation.idl \
nsIIdleObserver.idl \
$(NULL)

View File

@ -12,8 +12,6 @@ class nsWrapperCache;
[ptr] native nsWrapperCachePtr(nsWrapperCache);
typedef unsigned long long DOMTimeStamp;
typedef unsigned long long DOMTimeMilliSec;
typedef double DOMHighResTimeStamp;
// Core
interface nsIDOMAttr;

View File

@ -1,18 +0,0 @@
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "domstubs.idl"
interface nsIDOMPerformanceTiming;
interface nsIDOMPerformanceNavigation;
[scriptable, uuid(ac274ec8-ee9f-44ef-b2f0-b13c22225a98)]
interface nsIDOMPerformance : nsISupports
{
readonly attribute nsIDOMPerformanceTiming timing;
readonly attribute nsIDOMPerformanceNavigation navigation;
DOMHighResTimeStamp now();
};

View File

@ -1,21 +0,0 @@
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "domstubs.idl"
typedef unsigned short nsDOMPerformanceNavigationType;
[scriptable, uuid(a2132ad8-a841-4285-a140-338e8de6c2e0)]
interface nsIDOMPerformanceNavigation : nsISupports
{
const nsDOMPerformanceNavigationType TYPE_NAVIGATE = 0;
const nsDOMPerformanceNavigationType TYPE_RELOAD = 1;
const nsDOMPerformanceNavigationType TYPE_BACK_FORWARD = 2;
const nsDOMPerformanceNavigationType TYPE_RESERVED = 255;
readonly attribute nsDOMPerformanceNavigationType type;
readonly attribute unsigned short redirectCount;
};

View File

@ -1,32 +0,0 @@
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "domstubs.idl"
[scriptable, uuid(8e09c825-da49-4a39-876b-ce2ff767dbe1)]
interface nsIDOMPerformanceTiming : nsISupports
{
readonly attribute DOMTimeMilliSec navigationStart;
readonly attribute DOMTimeMilliSec unloadEventStart;
readonly attribute DOMTimeMilliSec unloadEventEnd;
readonly attribute DOMTimeMilliSec redirectStart;
readonly attribute DOMTimeMilliSec redirectEnd;
readonly attribute DOMTimeMilliSec fetchStart;
readonly attribute DOMTimeMilliSec domainLookupStart;
readonly attribute DOMTimeMilliSec domainLookupEnd;
readonly attribute DOMTimeMilliSec connectStart;
readonly attribute DOMTimeMilliSec connectEnd;
readonly attribute DOMTimeMilliSec requestStart;
readonly attribute DOMTimeMilliSec responseStart;
readonly attribute DOMTimeMilliSec responseEnd;
readonly attribute DOMTimeMilliSec domLoading;
readonly attribute DOMTimeMilliSec domInteractive;
readonly attribute DOMTimeMilliSec domContentLoadedEventStart;
readonly attribute DOMTimeMilliSec domContentLoadedEventEnd;
readonly attribute DOMTimeMilliSec domComplete;
readonly attribute DOMTimeMilliSec loadEventStart;
readonly attribute DOMTimeMilliSec loadEventEnd;
};

View File

@ -11,7 +11,6 @@ interface nsIDOMBlob;
interface nsIDOMLocation;
interface nsIDOMMediaQueryList;
interface nsIDOMOfflineResourceList;
interface nsIDOMPerformance;
interface nsIDOMStorage;
interface nsIPrompt;
interface nsISelection;
@ -508,7 +507,7 @@ interface nsIDOMWindowPerformance : nsISupports
/**
* A namespace to hold performance related data and statistics.
*/
readonly attribute nsIDOMPerformance performance;
readonly attribute nsISupports performance;
};
/**