Bug 1512456 - P3. Minor cleanup usage of GenericPromise. r=gerald

Differential Revision: https://phabricator.services.mozilla.com/D14026

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Jean-Yves Avenard 2018-12-11 10:46:21 +00:00
parent 38ed72f936
commit ebce26bb61
4 changed files with 31 additions and 68 deletions

View File

@ -134,18 +134,15 @@ RefPtr<ClientStatePromise> ClientHandle::Focus() {
outerPromise->Reject(aResult.get_nsresult(), __func__);
});
RefPtr<ClientStatePromise> ref = outerPromise.get();
return ref.forget();
return outerPromise.forget();
}
RefPtr<GenericPromise> ClientHandle::PostMessage(
StructuredCloneData& aData, const ServiceWorkerDescriptor& aSource) {
RefPtr<GenericPromise> ref;
if (IsShutdown()) {
ref = GenericPromise::CreateAndReject(NS_ERROR_DOM_INVALID_STATE_ERR,
__func__);
return ref.forget();
return GenericPromise::CreateAndReject(NS_ERROR_DOM_INVALID_STATE_ERR,
__func__);
}
ClientPostMessageArgs args;
@ -153,9 +150,8 @@ RefPtr<GenericPromise> ClientHandle::PostMessage(
if (!aData.BuildClonedMessageDataForBackgroundChild(
GetActor()->Manager()->Manager(), args.clonedData())) {
ref = GenericPromise::CreateAndReject(NS_ERROR_DOM_INVALID_STATE_ERR,
__func__);
return ref.forget();
return GenericPromise::CreateAndReject(NS_ERROR_DOM_INVALID_STATE_ERR,
__func__);
}
RefPtr<GenericPromise::Private> outerPromise =
@ -169,8 +165,7 @@ RefPtr<GenericPromise> ClientHandle::PostMessage(
outerPromise->Reject(aResult.get_nsresult(), __func__);
});
ref = outerPromise.get();
return ref.forget();
return outerPromise.forget();
}
RefPtr<GenericPromise> ClientHandle::OnDetach() {
@ -183,8 +178,7 @@ RefPtr<GenericPromise> ClientHandle::OnDetach() {
}
}
RefPtr<GenericPromise> ref(mDetachPromise);
return ref;
return mDetachPromise;
}
} // namespace dom

View File

@ -253,13 +253,11 @@ void ClientManagerService::RemoveManager(ClientManagerParent* aManager) {
RefPtr<ClientOpPromise> ClientManagerService::Navigate(
const ClientNavigateArgs& aArgs) {
RefPtr<ClientOpPromise> ref;
ClientSourceParent* source =
FindSource(aArgs.target().id(), aArgs.target().principalInfo());
if (!source) {
ref = ClientOpPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
return ref.forget();
return ClientOpPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
}
PClientManagerParent* manager = source->Manager();
@ -283,12 +281,9 @@ RefPtr<ClientOpPromise> ClientManagerService::Navigate(
manager->SendPClientNavigateOpConstructor(op, args);
if (!result) {
promise->Reject(NS_ERROR_FAILURE, __func__);
ref = promise;
return ref.forget();
}
ref = promise;
return ref.forget();
return promise.forget();
}
namespace {
@ -499,31 +494,25 @@ RefPtr<ClientOpPromise> ClientManagerService::GetInfoAndState(
ClientSourceParent* source = FindSource(aArgs.id(), aArgs.principalInfo());
if (!source) {
RefPtr<ClientOpPromise> ref =
ClientOpPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
return ref.forget();
return ClientOpPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
}
if (!source->ExecutionReady()) {
RefPtr<ClientManagerService> self = this;
// rejection ultimately converted to `undefined` in Clients::Get
RefPtr<ClientOpPromise> ref = source->ExecutionReadyPromise()->Then(
return source->ExecutionReadyPromise()->Then(
GetCurrentThreadSerialEventTarget(), __func__,
[self, aArgs]() -> RefPtr<ClientOpPromise> {
ClientSourceParent* source =
self->FindSource(aArgs.id(), aArgs.principalInfo());
if (!source) {
RefPtr<ClientOpPromise> ref =
ClientOpPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
return ref.forget();
return ClientOpPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
}
return source->StartOp(aArgs);
});
return ref.forget();
}
return source->StartOp(aArgs);
@ -611,8 +600,7 @@ RefPtr<ClientOpPromise> ClientManagerService::OpenWindow(
new OpenWindowRunnable(promise, aArgs, std::move(aSourceProcess));
MOZ_ALWAYS_SUCCEEDS(SystemGroup::Dispatch(TaskCategory::Other, r.forget()));
RefPtr<ClientOpPromise> ref = promise;
return ref.forget();
return promise.forget();
}
} // namespace dom

View File

@ -440,18 +440,14 @@ RefPtr<ClientOpPromise> ClientSource::Control(
NS_LITERAL_STRING("blob:"));
}
RefPtr<ClientOpPromise> ref;
if (NS_WARN_IF(!controlAllowed)) {
ref = ClientOpPromise::CreateAndReject(NS_ERROR_DOM_INVALID_STATE_ERR,
__func__);
return ref.forget();
return ClientOpPromise::CreateAndReject(NS_ERROR_DOM_INVALID_STATE_ERR,
__func__);
}
SetController(ServiceWorkerDescriptor(aArgs.serviceWorker()));
ref = ClientOpPromise::CreateAndResolve(NS_OK, __func__);
return ref.forget();
return ClientOpPromise::CreateAndResolve(NS_OK, __func__);
}
void ClientSource::InheritController(
@ -506,12 +502,9 @@ void ClientSource::NoteDOMContentLoaded() {
RefPtr<ClientOpPromise> ClientSource::Focus(const ClientFocusArgs& aArgs) {
NS_ASSERT_OWNINGTHREAD(ClientSource);
RefPtr<ClientOpPromise> ref;
if (mClientInfo.Type() != ClientType::Window) {
ref = ClientOpPromise::CreateAndReject(NS_ERROR_DOM_NOT_SUPPORTED_ERR,
__func__);
return ref.forget();
return ClientOpPromise::CreateAndReject(NS_ERROR_DOM_NOT_SUPPORTED_ERR,
__func__);
}
nsPIDOMWindowOuter* outer = nullptr;
@ -526,28 +519,24 @@ RefPtr<ClientOpPromise> ClientSource::Focus(const ClientFocusArgs& aArgs) {
}
if (!outer) {
ref = ClientOpPromise::CreateAndReject(NS_ERROR_DOM_INVALID_STATE_ERR,
__func__);
return ref.forget();
return ClientOpPromise::CreateAndReject(NS_ERROR_DOM_INVALID_STATE_ERR,
__func__);
}
MOZ_ASSERT(NS_IsMainThread());
nsresult rv = nsContentUtils::DispatchFocusChromeEvent(outer);
if (NS_FAILED(rv)) {
ref = ClientOpPromise::CreateAndReject(rv, __func__);
return ref.forget();
return ClientOpPromise::CreateAndReject(rv, __func__);
}
ClientState state;
rv = SnapshotState(&state);
if (NS_FAILED(rv)) {
ref = ClientOpPromise::CreateAndReject(rv, __func__);
return ref.forget();
return ClientOpPromise::CreateAndReject(rv, __func__);
}
ref = ClientOpPromise::CreateAndResolve(state.ToIPC(), __func__);
return ref.forget();
return ClientOpPromise::CreateAndResolve(state.ToIPC(), __func__);
}
RefPtr<ClientOpPromise> ClientSource::PostMessage(
@ -561,11 +550,10 @@ RefPtr<ClientOpPromise> ClientSource::PostMessage(
const RefPtr<ServiceWorkerContainer> container =
window->Navigator()->ServiceWorker();
container->ReceiveMessage(aArgs);
return ClientOpPromise::CreateAndResolve(NS_OK, __func__).forget();
return ClientOpPromise::CreateAndResolve(NS_OK, __func__);
}
return ClientOpPromise::CreateAndReject(NS_ERROR_NOT_IMPLEMENTED, __func__)
.forget();
return ClientOpPromise::CreateAndReject(NS_ERROR_NOT_IMPLEMENTED, __func__);
}
RefPtr<ClientOpPromise> ClientSource::Claim(const ClientClaimArgs& aArgs) {
@ -574,13 +562,10 @@ RefPtr<ClientOpPromise> ClientSource::Claim(const ClientClaimArgs& aArgs) {
// In parent-process mode this method should not be called.
MOZ_DIAGNOSTIC_ASSERT(!ServiceWorkerParentInterceptEnabled());
RefPtr<ClientOpPromise> ref;
nsIGlobalObject* global = GetGlobal();
if (NS_WARN_IF(!global)) {
ref = ClientOpPromise::CreateAndReject(NS_ERROR_DOM_INVALID_STATE_ERR,
__func__);
return ref.forget();
return ClientOpPromise::CreateAndReject(NS_ERROR_DOM_INVALID_STATE_ERR,
__func__);
}
// Note, we cannot just mark the ClientSource controlled. We must go through
@ -629,24 +614,20 @@ RefPtr<ClientOpPromise> ClientSource::Claim(const ClientClaimArgs& aArgs) {
})
->Track(*holder);
ref = outerPromise;
return ref.forget();
return outerPromise.forget();
}
RefPtr<ClientOpPromise> ClientSource::GetInfoAndState(
const ClientGetInfoAndStateArgs& aArgs) {
RefPtr<ClientOpPromise> ref;
ClientState state;
nsresult rv = SnapshotState(&state);
if (NS_FAILED(rv)) {
ref = ClientOpPromise::CreateAndReject(rv, __func__);
return ref.forget();
return ClientOpPromise::CreateAndReject(rv, __func__);
}
ref = ClientOpPromise::CreateAndResolve(
return ClientOpPromise::CreateAndResolve(
ClientInfoAndState(mClientInfo.ToIPC(), state.ToIPC()), __func__);
return ref.forget();
}
nsresult ClientSource::SnapshotState(ClientState* aStateOut) {

View File

@ -196,7 +196,7 @@ RefPtr<GenericPromise> ServiceWorkerRegistrationProxy::Unregister() {
MOZ_ALWAYS_SUCCEEDS(SystemGroup::Dispatch(TaskCategory::Other, r.forget()));
return promise;
return promise.forget();
}
namespace {