/src/mozilla-central/dom/clients/api/ClientDOMUtil.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
2 | | /* vim: set ts=8 sts=2 et sw=2 tw=80: */ |
3 | | /* This Source Code Form is subject to the terms of the Mozilla Public |
4 | | * License, v. 2.0. If a copy of the MPL was not distributed with this |
5 | | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
6 | | #ifndef _mozilla_dom_ClientDOMUtil_h |
7 | | #define _mozilla_dom_ClientDOMUtil_h |
8 | | |
9 | | #include "mozilla/dom/ClientIPCTypes.h" |
10 | | #include "mozilla/dom/ClientOpPromise.h" |
11 | | #include "mozilla/dom/DOMMozPromiseRequestHolder.h" |
12 | | #include "mozilla/dom/WorkerHolderToken.h" |
13 | | #include "mozilla/dom/WorkerPrivate.h" |
14 | | |
15 | | class nsIGlobalObject; |
16 | | |
17 | | namespace mozilla { |
18 | | namespace dom { |
19 | | |
20 | | // Utility method to properly execute a ClientManager operation. It |
21 | | // will properly hold a worker thread alive and avoid executing callbacks |
22 | | // if the thread is shutting down. |
23 | | template<typename Func, typename Arg, typename Resolve, typename Reject> |
24 | | void |
25 | | StartClientManagerOp(Func aFunc, const Arg& aArg, nsIGlobalObject* aGlobal, |
26 | | Resolve aResolve, Reject aReject) |
27 | 0 | { |
28 | 0 | MOZ_DIAGNOSTIC_ASSERT(aGlobal); |
29 | 0 |
|
30 | 0 | nsCOMPtr<nsISerialEventTarget> target = |
31 | 0 | aGlobal->EventTargetFor(TaskCategory::Other); |
32 | 0 |
|
33 | 0 | auto holder = MakeRefPtr<DOMMozPromiseRequestHolder<ClientOpPromise>>(aGlobal); |
34 | 0 |
|
35 | 0 | aFunc(aArg, target)->Then( |
36 | 0 | target, __func__, |
37 | 0 | [aResolve, holder](const ClientOpResult& aResult) { |
38 | 0 | holder->Complete(); |
39 | 0 | aResolve(aResult); |
40 | 0 | }, [aReject, holder](nsresult aResult) { Unexecuted instantiation: Unified_cpp_dom_clients_api0.cpp:void mozilla::dom::StartClientManagerOp<RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientNavigateArgs const&, nsISerialEventTarget*), mozilla::dom::ClientNavigateArgs, mozilla::dom::Client::Navigate(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_2, mozilla::dom::Client::Navigate(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_3>(RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientNavigateArgs const&, nsISerialEventTarget*), mozilla::dom::ClientNavigateArgs const&, nsIGlobalObject*, mozilla::dom::Client::Navigate(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_2, mozilla::dom::Client::Navigate(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_3)::{lambda(mozilla::dom::ClientOpResult const&)#1}::operator()(mozilla::dom::ClientOpResult const&) const Unexecuted instantiation: Unified_cpp_dom_clients_api0.cpp:void mozilla::dom::StartClientManagerOp<RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientMatchAllArgs const&, nsISerialEventTarget*), mozilla::dom::ClientMatchAllArgs, mozilla::dom::Clients::MatchAll(mozilla::dom::ClientQueryOptions const&, mozilla::ErrorResult&)::$_6, mozilla::dom::Clients::MatchAll(mozilla::dom::ClientQueryOptions const&, mozilla::ErrorResult&)::$_7>(RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientMatchAllArgs const&, nsISerialEventTarget*), mozilla::dom::ClientMatchAllArgs const&, nsIGlobalObject*, mozilla::dom::Clients::MatchAll(mozilla::dom::ClientQueryOptions const&, mozilla::ErrorResult&)::$_6, mozilla::dom::Clients::MatchAll(mozilla::dom::ClientQueryOptions const&, mozilla::ErrorResult&)::$_7)::{lambda(mozilla::dom::ClientOpResult const&)#1}::operator()(mozilla::dom::ClientOpResult const&) const Unexecuted instantiation: Unified_cpp_dom_clients_api0.cpp:void mozilla::dom::StartClientManagerOp<RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientOpenWindowArgs const&, nsISerialEventTarget*), mozilla::dom::ClientOpenWindowArgs, mozilla::dom::Clients::OpenWindow(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_8, mozilla::dom::Clients::OpenWindow(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_9>(RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientOpenWindowArgs const&, nsISerialEventTarget*), mozilla::dom::ClientOpenWindowArgs const&, nsIGlobalObject*, mozilla::dom::Clients::OpenWindow(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_8, mozilla::dom::Clients::OpenWindow(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_9)::{lambda(mozilla::dom::ClientOpResult const&)#1}::operator()(mozilla::dom::ClientOpResult const&) const Unexecuted instantiation: Unified_cpp_dom_clients_api0.cpp:void mozilla::dom::StartClientManagerOp<RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientClaimArgs const&, nsISerialEventTarget*), mozilla::dom::ClientClaimArgs, mozilla::dom::Clients::Claim(mozilla::ErrorResult&)::$_10, mozilla::dom::Clients::Claim(mozilla::ErrorResult&)::$_11>(RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientClaimArgs const&, nsISerialEventTarget*), mozilla::dom::ClientClaimArgs const&, nsIGlobalObject*, mozilla::dom::Clients::Claim(mozilla::ErrorResult&)::$_10, mozilla::dom::Clients::Claim(mozilla::ErrorResult&)::$_11)::{lambda(mozilla::dom::ClientOpResult const&)#1}::operator()(mozilla::dom::ClientOpResult const&) const |
41 | 0 | holder->Complete(); |
42 | 0 | aReject(aResult); |
43 | 0 | })->Track(*holder); Unexecuted instantiation: Unified_cpp_dom_clients_api0.cpp:void mozilla::dom::StartClientManagerOp<RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientNavigateArgs const&, nsISerialEventTarget*), mozilla::dom::ClientNavigateArgs, mozilla::dom::Client::Navigate(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_2, mozilla::dom::Client::Navigate(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_3>(RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientNavigateArgs const&, nsISerialEventTarget*), mozilla::dom::ClientNavigateArgs const&, nsIGlobalObject*, mozilla::dom::Client::Navigate(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_2, mozilla::dom::Client::Navigate(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_3)::{lambda(nsresult)#1}::operator()(nsresult) const Unexecuted instantiation: Unified_cpp_dom_clients_api0.cpp:void mozilla::dom::StartClientManagerOp<RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientMatchAllArgs const&, nsISerialEventTarget*), mozilla::dom::ClientMatchAllArgs, mozilla::dom::Clients::MatchAll(mozilla::dom::ClientQueryOptions const&, mozilla::ErrorResult&)::$_6, mozilla::dom::Clients::MatchAll(mozilla::dom::ClientQueryOptions const&, mozilla::ErrorResult&)::$_7>(RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientMatchAllArgs const&, nsISerialEventTarget*), mozilla::dom::ClientMatchAllArgs const&, nsIGlobalObject*, mozilla::dom::Clients::MatchAll(mozilla::dom::ClientQueryOptions const&, mozilla::ErrorResult&)::$_6, mozilla::dom::Clients::MatchAll(mozilla::dom::ClientQueryOptions const&, mozilla::ErrorResult&)::$_7)::{lambda(nsresult)#1}::operator()(nsresult) const Unexecuted instantiation: Unified_cpp_dom_clients_api0.cpp:void mozilla::dom::StartClientManagerOp<RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientOpenWindowArgs const&, nsISerialEventTarget*), mozilla::dom::ClientOpenWindowArgs, mozilla::dom::Clients::OpenWindow(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_8, mozilla::dom::Clients::OpenWindow(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_9>(RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientOpenWindowArgs const&, nsISerialEventTarget*), mozilla::dom::ClientOpenWindowArgs const&, nsIGlobalObject*, mozilla::dom::Clients::OpenWindow(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_8, mozilla::dom::Clients::OpenWindow(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_9)::{lambda(nsresult)#1}::operator()(nsresult) const Unexecuted instantiation: Unified_cpp_dom_clients_api0.cpp:void mozilla::dom::StartClientManagerOp<RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientClaimArgs const&, nsISerialEventTarget*), mozilla::dom::ClientClaimArgs, mozilla::dom::Clients::Claim(mozilla::ErrorResult&)::$_10, mozilla::dom::Clients::Claim(mozilla::ErrorResult&)::$_11>(RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientClaimArgs const&, nsISerialEventTarget*), mozilla::dom::ClientClaimArgs const&, nsIGlobalObject*, mozilla::dom::Clients::Claim(mozilla::ErrorResult&)::$_10, mozilla::dom::Clients::Claim(mozilla::ErrorResult&)::$_11)::{lambda(nsresult)#1}::operator()(nsresult) const |
44 | 0 | } Unexecuted instantiation: Unified_cpp_dom_clients_api0.cpp:void mozilla::dom::StartClientManagerOp<RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientNavigateArgs const&, nsISerialEventTarget*), mozilla::dom::ClientNavigateArgs, mozilla::dom::Client::Navigate(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_2, mozilla::dom::Client::Navigate(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_3>(RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientNavigateArgs const&, nsISerialEventTarget*), mozilla::dom::ClientNavigateArgs const&, nsIGlobalObject*, mozilla::dom::Client::Navigate(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_2, mozilla::dom::Client::Navigate(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_3) Unexecuted instantiation: Unified_cpp_dom_clients_api0.cpp:void mozilla::dom::StartClientManagerOp<RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientMatchAllArgs const&, nsISerialEventTarget*), mozilla::dom::ClientMatchAllArgs, mozilla::dom::Clients::MatchAll(mozilla::dom::ClientQueryOptions const&, mozilla::ErrorResult&)::$_6, mozilla::dom::Clients::MatchAll(mozilla::dom::ClientQueryOptions const&, mozilla::ErrorResult&)::$_7>(RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientMatchAllArgs const&, nsISerialEventTarget*), mozilla::dom::ClientMatchAllArgs const&, nsIGlobalObject*, mozilla::dom::Clients::MatchAll(mozilla::dom::ClientQueryOptions const&, mozilla::ErrorResult&)::$_6, mozilla::dom::Clients::MatchAll(mozilla::dom::ClientQueryOptions const&, mozilla::ErrorResult&)::$_7) Unexecuted instantiation: Unified_cpp_dom_clients_api0.cpp:void mozilla::dom::StartClientManagerOp<RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientOpenWindowArgs const&, nsISerialEventTarget*), mozilla::dom::ClientOpenWindowArgs, mozilla::dom::Clients::OpenWindow(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_8, mozilla::dom::Clients::OpenWindow(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_9>(RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientOpenWindowArgs const&, nsISerialEventTarget*), mozilla::dom::ClientOpenWindowArgs const&, nsIGlobalObject*, mozilla::dom::Clients::OpenWindow(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_8, mozilla::dom::Clients::OpenWindow(nsTSubstring<char16_t> const&, mozilla::ErrorResult&)::$_9) Unexecuted instantiation: Unified_cpp_dom_clients_api0.cpp:void mozilla::dom::StartClientManagerOp<RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientClaimArgs const&, nsISerialEventTarget*), mozilla::dom::ClientClaimArgs, mozilla::dom::Clients::Claim(mozilla::ErrorResult&)::$_10, mozilla::dom::Clients::Claim(mozilla::ErrorResult&)::$_11>(RefPtr<mozilla::MozPromise<mozilla::dom::ClientOpResult, nsresult, false> > (*)(mozilla::dom::ClientClaimArgs const&, nsISerialEventTarget*), mozilla::dom::ClientClaimArgs const&, nsIGlobalObject*, mozilla::dom::Clients::Claim(mozilla::ErrorResult&)::$_10, mozilla::dom::Clients::Claim(mozilla::ErrorResult&)::$_11) |
45 | | |
46 | | } // namespace dom |
47 | | } // namespace mozilla |
48 | | |
49 | | #endif // _mozilla_dom_ClientDOMUtil_h |