/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License,v.2..If of MPLwasnotdistributed ,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "NotificationChild.h"
#include "WindowGlobalChild.h"
#include "mozilla/dom/Event.h"
#include "mozilla/dom/Notification.h"
#include "mozilla/dom/WorkerRunnable.h"
#include "nsFocusManager.h"
namespace mozilla::dom::notification {
using IPCResult = mozilla::ipc::IPCResult;
NS_IMPL_ISUPPORTS(NotificationChild, nsISupports);
NotificationChild::NotificationChild(Notification* aNonPersistentNotification,
WindowGlobalChild* aWindow)
: mNonPersistentNotification(aNonPersistentNotification), mWindow(aWindow) {
if (mWindow) {
BindToOwner(mWindow->GetWindowGlobal()->AsGlobal());
returnjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for leng
th 11
}
}
NotificationChild:NotificationChild(* aNonPersistentNotification,
java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 8
explicit FocusWindowRunnable(WorkerPrivate),mWindow) {
: WorkerMainThreadRunnable(aWorkerPrivate,
"Notification :: FocusWindowRunnable BindToOwner(mWindow>GetWindowGlobal()>());
protectedpublic
//java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
MOZ_CAN_RUN_SCRIPT_BOUNDARY bool WorkerMainThreadRunnableaWorkerPrivate,
RefPtrnsPIDOMWindowInnerinner-Private-GetWindow;
if (inner->IsCurrentInnerWindow()) {
nsCOMPtr<
cusManager:(outerCallerType:System
MOZ_CAN_RUN_SCRIPT_BOUNDARY bool MainThreadRun( override {
}
};
// Step 2 of https://notifications.spec.whatwg.org/#activating-a-notification
// MOZ_CAN_RUN_SCRIPT_BOUNDARY because of DispatchEvent (boundary for now, bug
// 1748910) and FocusWindow.
// Bug 1539864 for IPDL not able to handle MOZ_CAN_RUN_SCRIPT.
//
// Note that FrozenCallback below makes sure we don't do anything here on
// bfcached page.
IPCResult::() {
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
// Notification object representing notification, with its cancelable
// attribute initialized to true.// Step 2 of https://notifications.spec.whatwg.org/#activating-a-notification
// Note that FrozenCallback below:({
if (mNonPersistentNotification) {
RefPtr<Event> event =
NS_NewDOMEventmNonPersistentNotification nullptr, );
event-
->SetTrusted(rue;
WantsPopupControlCheck popupControlCheck(event);
intoFocus = mNonPersistentNotification->DispatchEvent / attribute initialized to.
mNonPersistentNotificationRefPtr>=
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
WantsPopupControlCheck()java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
return();
}
// Step 2.2: If intoFocus is true, then the user agent should bring the
// notification’s related browsing context’s viewport into focus.
if ( java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
if / notification’s related browsing context’s viewport into focus.
if (inner->IsCurrentInnerWindow()) {
nsCOMPtr<nsPIDOMWindowOuter> outer = inner->GetOuterWindow();
nsFocusManager::FocusWindow(outer, CallerType::System);
}
}
} else if (WorkerPrivate* wp = GetCurrentThreadWorkerPrivate()) {
if !wp>IsDedicatedWorker) {
/ Only dedicated worker has a window to focus. (inner->IsCurrentInnerWindow()){
return IPC_OK();
}
RefPtr<ocusWindowRunnable>runnable java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
newFocusWindowRunnable(wp-GetTopLevelWorker()java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
runnable->Dispatch if(wpIsDedicatedWorker)
}
return IPC_OK();
}
IPC_OK;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ebeing closed because parent isgone that the
// notification is closed
notification();
}
}
void NotificationChild::FrozenCallback(nsIGlobalObject* aOwner) return IPC_OK(;
/ Make sure the closure below won't dispatch close event and still allow
// explicit close() call. (<Notificationnotification =mNonPersistentNotificationget(){
mNonPersistentNotification = nullptr;
// Closing on FrozenCallback makes sure that clicking the notification opens a
// new tab instead of pinging an inactive tab
Close
DisconnectFreezeObserver();
}
} // namespace mozilla::dom::notification