Bug 1440407 P2 Remove some unnecessary nsPIDOMWindowInner QI to nsIGlobalObject. r=mystor

This commit is contained in:
Ben Kelly 2018-02-22 14:28:39 -08:00
Родитель d3ec34f518
Коммит 75bf35692e
18 изменённых файлов: 65 добавлений и 93 удалений

Просмотреть файл

@ -548,10 +548,7 @@ Navigator::Storage()
MOZ_ASSERT(mWindow);
if(!mStorageManager) {
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(mWindow);
MOZ_ASSERT(global);
mStorageManager = new StorageManager(global);
mStorageManager = new StorageManager(mWindow->AsGlobal());
}
return mStorageManager;
@ -1317,8 +1314,7 @@ Navigator::GetBattery(ErrorResult& aRv)
return nullptr;
}
nsCOMPtr<nsIGlobalObject> go = do_QueryInterface(mWindow);
RefPtr<Promise> batteryPromise = Promise::Create(go, aRv);
RefPtr<Promise> batteryPromise = Promise::Create(mWindow->AsGlobal(), aRv);
if (NS_WARN_IF(aRv.Failed())) {
return nullptr;
}
@ -1375,8 +1371,7 @@ Navigator::GetVRDisplays(ErrorResult& aRv)
nsGlobalWindowInner* win = nsGlobalWindowInner::Cast(mWindow);
win->NotifyVREventListenerAdded();
nsCOMPtr<nsIGlobalObject> go = do_QueryInterface(mWindow);
RefPtr<Promise> p = Promise::Create(go, aRv);
RefPtr<Promise> p = Promise::Create(mWindow->AsGlobal(), aRv);
if (aRv.Failed()) {
return nullptr;
}
@ -1850,9 +1845,8 @@ Navigator::RequestMediaKeySystemAccess(const nsAString& aKeySystem,
ArrayLength(params));
}
nsCOMPtr<nsIGlobalObject> go = do_QueryInterface(mWindow);
RefPtr<DetailedPromise> promise =
DetailedPromise::Create(go, aRv,
DetailedPromise::Create(mWindow->AsGlobal(), aRv,
NS_LITERAL_CSTRING("navigator.requestMediaKeySystemAccess"),
Telemetry::VIDEO_EME_REQUEST_SUCCESS_LATENCY_MS,
Telemetry::VIDEO_EME_REQUEST_FAILURE_LATENCY_MS);

Просмотреть файл

@ -101,8 +101,7 @@ DOMEventTargetHelper::~DOMEventTargetHelper()
void
DOMEventTargetHelper::BindToOwner(nsPIDOMWindowInner* aOwner)
{
nsCOMPtr<nsIGlobalObject> glob = do_QueryInterface(aOwner);
BindToOwner(glob);
BindToOwner(aOwner ? aOwner->AsGlobal() : nullptr);
}
void

Просмотреть файл

@ -113,9 +113,8 @@ GamepadServiceTest::AddGamepad(const nsAString& aID,
aNumButtons, aNumAxes, aNumHaptics);
GamepadChangeEventBody body(a);
GamepadChangeEvent e(0, GamepadServiceType::Standard, body);
nsCOMPtr<nsIGlobalObject> go = do_QueryInterface(mWindow);
RefPtr<Promise> p = Promise::Create(go, aRv);
RefPtr<Promise> p = Promise::Create(mWindow->AsGlobal(), aRv);
if (aRv.Failed()) {
return nullptr;
}

Просмотреть файл

@ -920,9 +920,13 @@ HTMLCanvasElement::TransferControlToOffscreen(ErrorResult& aRv)
renderer->SetWidth(sz.width);
renderer->SetHeight(sz.height);
nsCOMPtr<nsIGlobalObject> global =
do_QueryInterface(OwnerDoc()->GetInnerWindow());
mOffscreenCanvas = new OffscreenCanvas(global,
nsPIDOMWindowInner* win = OwnerDoc()->GetInnerWindow();
if (!win) {
aRv.Throw(NS_ERROR_DOM_INVALID_STATE_ERR);
return nullptr;
}
mOffscreenCanvas = new OffscreenCanvas(win->AsGlobal(),
sz.width,
sz.height,
GetCompositorBackendType(),
@ -1129,11 +1133,10 @@ HTMLCanvasElement::InvalidateCanvasContent(const gfx::Rect* damageRect)
* invalidating a canvas will feed into heuristics and cause JIT code to be
* kept around longer, for smoother animations.
*/
nsCOMPtr<nsIGlobalObject> global =
do_QueryInterface(OwnerDoc()->GetInnerWindow());
nsPIDOMWindowInner* win = OwnerDoc()->GetInnerWindow();
if (global) {
if (JSObject *obj = global->GetGlobalJSObject()) {
if (win) {
if (JSObject *obj = win->AsGlobal()->GetGlobalJSObject()) {
js::NotifyAnimationActivity(obj);
}
}

Просмотреть файл

@ -2704,11 +2704,10 @@ HTMLMediaElement::SeekToNextFrame(ErrorResult& aRv)
/* This will cause JIT code to be kept around longer, to help performance
* when using SeekToNextFrame to iterate through every frame of a video.
*/
nsCOMPtr<nsIGlobalObject> global =
do_QueryInterface(OwnerDoc()->GetInnerWindow());
nsPIDOMWindowInner* win = OwnerDoc()->GetInnerWindow();
if (global) {
if (JSObject *obj = global->GetGlobalJSObject()) {
if (win) {
if (JSObject *obj = win->AsGlobal()->GetGlobalJSObject()) {
js::NotifyAnimationActivity(obj);
}
}
@ -7110,13 +7109,12 @@ HTMLMediaElement::SetMediaKeys(mozilla::dom::MediaKeys* aMediaKeys,
return nullptr;
}
nsCOMPtr<nsIGlobalObject> global =
do_QueryInterface(OwnerDoc()->GetInnerWindow());
if (!global) {
nsPIDOMWindowInner* win = OwnerDoc()->GetInnerWindow();
if (!win) {
aRv.Throw(NS_ERROR_UNEXPECTED);
return nullptr;
}
RefPtr<DetailedPromise> promise = DetailedPromise::Create(global, aRv,
RefPtr<DetailedPromise> promise = DetailedPromise::Create(win->AsGlobal(), aRv,
NS_LITERAL_CSTRING("HTMLMediaElement.setMediaKeys"));
if (aRv.Failed()) {
return nullptr;
@ -7607,14 +7605,14 @@ HTMLMediaElement::NotifyAboutPlaying()
already_AddRefed<Promise>
HTMLMediaElement::CreateDOMPromise(ErrorResult& aRv) const
{
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(OwnerDoc()->GetInnerWindow());
nsPIDOMWindowInner* win = OwnerDoc()->GetInnerWindow();
if (!global) {
if (!win) {
aRv.Throw(NS_ERROR_UNEXPECTED);
return nullptr;
}
return Promise::Create(global, aRv);
return Promise::Create(win->AsGlobal(), aRv);
}
void

Просмотреть файл

@ -183,15 +183,13 @@ MediaDevices::GetUserMedia(const MediaStreamConstraints& aConstraints,
CallerType aCallerType,
ErrorResult &aRv)
{
nsPIDOMWindowInner* window = GetOwner();
nsCOMPtr<nsIGlobalObject> go = do_QueryInterface(window);
RefPtr<Promise> p = Promise::Create(go, aRv);
RefPtr<Promise> p = Promise::Create(GetParentObject(), aRv);
NS_ENSURE_TRUE(!aRv.Failed(), nullptr);
RefPtr<GumResolver> resolver = new GumResolver(p);
RefPtr<GumRejecter> rejecter = new GumRejecter(p);
aRv = MediaManager::Get()->GetUserMedia(window, aConstraints,
aRv = MediaManager::Get()->GetUserMedia(GetOwner(), aConstraints,
resolver, rejecter,
aCallerType);
return p.forget();
@ -200,15 +198,13 @@ MediaDevices::GetUserMedia(const MediaStreamConstraints& aConstraints,
already_AddRefed<Promise>
MediaDevices::EnumerateDevices(CallerType aCallerType, ErrorResult &aRv)
{
nsPIDOMWindowInner* window = GetOwner();
nsCOMPtr<nsIGlobalObject> go = do_QueryInterface(window);
RefPtr<Promise> p = Promise::Create(go, aRv);
RefPtr<Promise> p = Promise::Create(GetParentObject(), aRv);
NS_ENSURE_TRUE(!aRv.Failed(), nullptr);
RefPtr<EnumDevResolver> resolver = new EnumDevResolver(p, window->WindowID());
RefPtr<EnumDevResolver> resolver = new EnumDevResolver(p, GetOwner()->WindowID());
RefPtr<GumRejecter> rejecter = new GumRejecter(p);
aRv = MediaManager::Get()->EnumerateDevices(window, resolver, rejecter, aCallerType);
aRv = MediaManager::Get()->EnumerateDevices(GetOwner(), resolver, rejecter, aCallerType);
return p.forget();
}

Просмотреть файл

@ -3701,8 +3701,7 @@ MediaStreamGraph::GetInstance(MediaStreamGraph::GraphDriverType aGraphDriverRequ
AbstractThread* mainThread;
if (aWindow) {
nsCOMPtr<nsIGlobalObject> parentObject = do_QueryInterface(aWindow);
mainThread = parentObject->AbstractMainThreadFor(TaskCategory::Other);
mainThread = aWindow->AsGlobal()->AbstractMainThreadFor(TaskCategory::Other);
} else {
// Uncommon case, only for some old configuration of webspeech.
mainThread = AbstractThread::MainThread();
@ -3727,11 +3726,10 @@ MediaStreamGraph::CreateNonRealtimeInstance(TrackRate aSampleRate,
{
MOZ_ASSERT(NS_IsMainThread(), "Main thread only");
nsCOMPtr<nsIGlobalObject> parentObject = do_QueryInterface(aWindow);
MediaStreamGraphImpl* graph = new MediaStreamGraphImpl(
OFFLINE_THREAD_DRIVER,
aSampleRate,
parentObject->AbstractMainThreadFor(TaskCategory::Other));
aWindow->AsGlobal()->AbstractMainThreadFor(TaskCategory::Other));
LOG(LogLevel::Debug, ("Starting up Offline MediaStreamGraph %p", graph));

Просмотреть файл

@ -294,9 +294,12 @@ MediaStreamTrack::ApplyConstraints(const MediaTrackConstraints& aConstraints,
typedef media::Pledge<bool, MediaStreamError*> PledgeVoid;
nsPIDOMWindowInner* window = mOwningStream->GetParentObject();
nsIGlobalObject* go = window ? window->AsGlobal() : nullptr;
nsCOMPtr<nsIGlobalObject> go = do_QueryInterface(window);
RefPtr<Promise> promise = Promise::Create(go, aRv);
if (aRv.Failed()) {
return nullptr;
}
// Forward constraints to the source.
//

Просмотреть файл

@ -1793,8 +1793,7 @@ Notification::RequestPermission(const GlobalObject& aGlobal,
}
nsCOMPtr<nsIPrincipal> principal = sop->GetPrincipal();
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(window);
RefPtr<Promise> promise = Promise::Create(global, aRv);
RefPtr<Promise> promise = Promise::Create(window->AsGlobal(), aRv);
if (aRv.Failed()) {
return nullptr;
}
@ -1806,7 +1805,7 @@ Notification::RequestPermission(const GlobalObject& aGlobal,
nsCOMPtr<nsIRunnable> request = new NotificationPermissionRequest(
principal, isHandlingUserInput, window, promise, permissionCallback);
global->Dispatch(TaskCategory::Other, request.forget());
window->AsGlobal()->Dispatch(TaskCategory::Other, request.forget());
return promise.forget();
}
@ -1991,19 +1990,18 @@ Notification::Get(nsPIDOMWindowInner* aWindow,
return nullptr;
}
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(aWindow);
RefPtr<Promise> promise = Promise::Create(global, aRv);
RefPtr<Promise> promise = Promise::Create(aWindow->AsGlobal(), aRv);
if (aRv.Failed()) {
return nullptr;
}
nsCOMPtr<nsINotificationStorageCallback> callback =
new NotificationStorageCallback(global, aScope, promise);
new NotificationStorageCallback(aWindow->AsGlobal(), aScope, promise);
RefPtr<NotificationGetRunnable> r =
new NotificationGetRunnable(origin, aFilter.mTag, callback);
aRv = global->Dispatch(TaskCategory::Other, r.forget());
aRv = aWindow->AsGlobal()->Dispatch(TaskCategory::Other, r.forget());
if (NS_WARN_IF(aRv.Failed())) {
return nullptr;
}

Просмотреть файл

@ -77,8 +77,7 @@ Permissions::Query(JSContext* aCx,
JS::Handle<JSObject*> aPermission,
ErrorResult& aRv)
{
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(mWindow);
if (!global) {
if (!mWindow) {
aRv.Throw(NS_ERROR_UNEXPECTED);
return nullptr;
}
@ -91,7 +90,7 @@ Permissions::Query(JSContext* aCx,
}
MOZ_ASSERT(status);
RefPtr<Promise> promise = Promise::Create(global, aRv);
RefPtr<Promise> promise = Promise::Create(mWindow->AsGlobal(), aRv);
if (NS_WARN_IF(aRv.Failed())) {
return nullptr;
}
@ -118,8 +117,7 @@ Permissions::Revoke(JSContext* aCx,
JS::Handle<JSObject*> aPermission,
ErrorResult& aRv)
{
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(mWindow);
if (!global) {
if (!mWindow) {
aRv.Throw(NS_ERROR_UNEXPECTED);
return nullptr;
}
@ -131,7 +129,7 @@ Permissions::Revoke(JSContext* aCx,
return nullptr;
}
RefPtr<Promise> promise = Promise::Create(global, aRv);
RefPtr<Promise> promise = Promise::Create(mWindow->AsGlobal(), aRv);
if (NS_WARN_IF(aRv.Failed())) {
return nullptr;
}

Просмотреть файл

@ -902,9 +902,8 @@ ServiceWorkerManager::Register(mozIDOMWindow* aWindow,
return rv;
}
nsCOMPtr<nsIGlobalObject> sgo = do_QueryInterface(window);
ErrorResult result;
RefPtr<Promise> promise = Promise::Create(sgo, result);
RefPtr<Promise> promise = Promise::Create(window->AsGlobal(), result);
if (result.Failed()) {
return result.StealNSResult();
}
@ -1073,9 +1072,8 @@ ServiceWorkerManager::GetRegistrations(mozIDOMWindow* aWindow,
// now.
MOZ_ASSERT(!nsContentUtils::IsSystemPrincipal(window->GetExtantDoc()->NodePrincipal()));
nsCOMPtr<nsIGlobalObject> sgo = do_QueryInterface(window);
ErrorResult result;
RefPtr<Promise> promise = Promise::Create(sgo, result);
RefPtr<Promise> promise = Promise::Create(window->AsGlobal(), result);
if (result.Failed()) {
return result.StealNSResult();
}
@ -1195,9 +1193,8 @@ ServiceWorkerManager::GetRegistration(mozIDOMWindow* aWindow,
// now.
MOZ_ASSERT(!nsContentUtils::IsSystemPrincipal(window->GetExtantDoc()->NodePrincipal()));
nsCOMPtr<nsIGlobalObject> sgo = do_QueryInterface(window);
ErrorResult result;
RefPtr<Promise> promise = Promise::Create(sgo, result);
RefPtr<Promise> promise = Promise::Create(window->AsGlobal(), result);
if (result.Failed()) {
return result.StealNSResult();
}
@ -1397,9 +1394,8 @@ ServiceWorkerManager::GetReadyPromise(mozIDOMWindow* aWindow,
MOZ_ASSERT(!mPendingReadyPromises.Contains(window));
nsCOMPtr<nsIGlobalObject> sgo = do_QueryInterface(window);
ErrorResult result;
RefPtr<Promise> promise = Promise::Create(sgo, result);
RefPtr<Promise> promise = Promise::Create(window->AsGlobal(), result);
if (result.Failed()) {
return result.StealNSResult();
}

Просмотреть файл

@ -65,12 +65,10 @@ ServiceWorkerRegistration::CreateForMainThread(nsPIDOMWindowInner* aWindow,
MOZ_ASSERT(aWindow);
MOZ_ASSERT(NS_IsMainThread());
nsCOMPtr<nsIGlobalObject> global(do_QueryInterface(aWindow));
RefPtr<Inner> inner = new ServiceWorkerRegistrationMainThread(aDescriptor);
RefPtr<ServiceWorkerRegistration> registration =
new ServiceWorkerRegistration(global, aDescriptor, inner);
new ServiceWorkerRegistration(aWindow->AsGlobal(), aDescriptor, inner);
return registration.forget();
}

Просмотреть файл

@ -517,7 +517,7 @@ already_AddRefed<Promise>
ServiceWorkerRegistrationMainThread::Update(ErrorResult& aRv)
{
MOZ_ASSERT(NS_IsMainThread());
nsCOMPtr<nsIGlobalObject> go = do_QueryInterface(mOuter->GetOwner());
nsCOMPtr<nsIGlobalObject> go = mOuter->GetParentObject();
if (!go) {
aRv.Throw(NS_ERROR_FAILURE);
return nullptr;
@ -542,7 +542,7 @@ already_AddRefed<Promise>
ServiceWorkerRegistrationMainThread::Unregister(ErrorResult& aRv)
{
MOZ_ASSERT(NS_IsMainThread());
nsCOMPtr<nsIGlobalObject> go = do_QueryInterface(mOuter->GetOwner());
nsCOMPtr<nsIGlobalObject> go = mOuter->GetParentObject();
if (!go) {
aRv.Throw(NS_ERROR_FAILURE);
return nullptr;
@ -627,10 +627,9 @@ ServiceWorkerRegistrationMainThread::ShowNotification(JSContext* aCx,
return nullptr;
}
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(window);
RefPtr<Promise> p =
Notification::ShowPersistentNotification(aCx, global, mScope, aTitle,
aOptions, aRv);
Notification::ShowPersistentNotification(aCx, window->AsGlobal(), mScope,
aTitle, aOptions, aRv);
if (NS_WARN_IF(aRv.Failed())) {
return nullptr;
}
@ -656,7 +655,7 @@ ServiceWorkerRegistrationMainThread::GetPushManager(JSContext* aCx,
{
MOZ_ASSERT(NS_IsMainThread());
nsCOMPtr<nsIGlobalObject> globalObject = do_QueryInterface(mOuter->GetOwner());
nsCOMPtr<nsIGlobalObject> globalObject = mOuter->GetParentObject();
if (!globalObject) {
aRv.Throw(NS_ERROR_FAILURE);

Просмотреть файл

@ -315,9 +315,7 @@ VRServiceTest::AttachVRDisplay(const nsAString& aID, ErrorResult& aRv)
return nullptr;
}
nsCOMPtr<nsIGlobalObject> go = do_QueryInterface(mWindow);
RefPtr<Promise> p = Promise::Create(go, aRv);
RefPtr<Promise> p = Promise::Create(mWindow->AsGlobal(), aRv);
if (NS_WARN_IF(aRv.Failed())) {
return nullptr;
}
@ -335,9 +333,7 @@ VRServiceTest::AttachVRController(const nsAString& aID, ErrorResult& aRv)
return nullptr;
}
nsCOMPtr<nsIGlobalObject> go = do_QueryInterface(mWindow);
RefPtr<Promise> p = Promise::Create(go, aRv);
RefPtr<Promise> p = Promise::Create(mWindow->AsGlobal(), aRv);
if (NS_WARN_IF(aRv.Failed())) {
return nullptr;
}

Просмотреть файл

@ -2393,8 +2393,8 @@ RuntimeService::CreateSharedWorkerFromLoadInfo(JSContext* aCx,
// We don't actually care about this MessageChannel, but we use it to 'steal'
// its 2 connected ports.
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(window);
RefPtr<MessageChannel> channel = MessageChannel::Constructor(global, rv);
RefPtr<MessageChannel> channel =
MessageChannel::Constructor(window->AsGlobal(), rv);
if (NS_WARN_IF(rv.Failed())) {
return rv.StealNSResult();
}

Просмотреть файл

@ -861,10 +861,9 @@ Proxy::Init()
return false;
}
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(ownerWindow);
mXHR = new XMLHttpRequestMainThread();
mXHR->Construct(mWorkerPrivate->GetPrincipal(), global,
mXHR->Construct(mWorkerPrivate->GetPrincipal(),
ownerWindow ? ownerWindow->AsGlobal() : nullptr,
mWorkerPrivate->GetBaseURI(),
mWorkerPrivate->GetLoadGroup(),
mWorkerPrivate->GetPerformanceStorage());

Просмотреть файл

@ -3370,15 +3370,15 @@ nsPrintJob::TurnScriptingOn(bool aDoTurnOn)
}
if (nsCOMPtr<nsPIDOMWindowInner> window = doc->GetInnerWindow()) {
nsCOMPtr<nsIGlobalObject> go = do_QueryInterface(window);
NS_WARNING_ASSERTION(go && go->GetGlobalJSObject(), "Can't get global");
nsCOMPtr<nsIGlobalObject> go = window->AsGlobal();
NS_WARNING_ASSERTION(go->GetGlobalJSObject(), "Can't get global");
nsresult propThere = NS_PROPTABLE_PROP_NOT_THERE;
doc->GetProperty(nsGkAtoms::scriptEnabledBeforePrintOrPreview,
&propThere);
if (aDoTurnOn) {
if (propThere != NS_PROPTABLE_PROP_NOT_THERE) {
doc->DeleteProperty(nsGkAtoms::scriptEnabledBeforePrintOrPreview);
if (go && go->GetGlobalJSObject()) {
if (go->GetGlobalJSObject()) {
xpc::Scriptability::Get(go->GetGlobalJSObject()).Unblock();
}
window->Resume();

Просмотреть файл

@ -122,12 +122,10 @@ FontFaceSet::FontFaceSet(nsPIDOMWindowInner* aWindow, nsIDocument* aDocument)
{
MOZ_ASSERT(mDocument, "We should get a valid document from the caller!");
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(aWindow);
// If the pref is not set, don't create the Promise (which the page wouldn't
// be able to get to anyway) as it causes the window.FontFaceSet constructor
// to be created.
if (global && PrefEnabled()) {
if (aWindow && PrefEnabled()) {
mResolveLazilyCreatedReadyPromise = true;
}