Skip to content

Commit 7029e80

Browse files
committed
Bug 1218135 - Remove FetchEvent.client; r=bzbarsky
This has been removed from the spec. See: w3c/ServiceWorker#723 (comment)
1 parent 68894dd commit 7029e80

File tree

11 files changed

+32
-158
lines changed

11 files changed

+32
-158
lines changed

dom/push/test/lifetime_worker.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@ onfetch = function(event) {
77
return;
88
}
99

10-
if (!event.client) {
11-
dump("ERROR: no client to post the message to!\n");
12-
dump("request.url=" + event.request.url + "\n");
13-
return;
14-
}
15-
16-
event.client.postMessage({type: "fetch", state: state});
10+
var currentState = state;
11+
event.waitUntil(
12+
clients.matchAll()
13+
.then(clients => {
14+
clients.forEach(client => {
15+
client.postMessage({type: "fetch", state: currentState});
16+
});
17+
})
18+
);
1719

1820
if (event.request.url.indexOf("update") >= 0) {
1921
state = "update";

dom/webidl/FetchEvent.webidl

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@
1212
Exposed=(ServiceWorker)]
1313
interface FetchEvent : ExtendableEvent {
1414
[SameObject] readonly attribute Request request;
15-
16-
// https://github.com/slightlyoff/ServiceWorker/issues/631
17-
readonly attribute Client? client; // The window issuing the request.
1815
readonly attribute boolean isReload;
1916

2017
[Throws]
@@ -23,6 +20,5 @@ interface FetchEvent : ExtendableEvent {
2320

2421
dictionary FetchEventInit : EventInit {
2522
Request request;
26-
Client client;
2723
boolean isReload;
2824
};

dom/workers/ServiceWorkerEvents.cpp

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
66

77
#include "ServiceWorkerEvents.h"
8-
#include "ServiceWorkerClient.h"
98

109
#include "nsIHttpChannelInternal.h"
1110
#include "nsINetworkInterceptController.h"
@@ -72,12 +71,10 @@ FetchEvent::~FetchEvent()
7271

7372
void
7473
FetchEvent::PostInit(nsMainThreadPtrHandle<nsIInterceptedChannel>& aChannel,
75-
const nsACString& aScriptSpec,
76-
UniquePtr<ServiceWorkerClientInfo>&& aClientInfo)
74+
const nsACString& aScriptSpec)
7775
{
7876
mChannel = aChannel;
7977
mScriptSpec.Assign(aScriptSpec);
80-
mClientInfo = Move(aClientInfo);
8178
}
8279

8380
/*static*/ already_AddRefed<FetchEvent>
@@ -96,8 +93,6 @@ FetchEvent::Constructor(const GlobalObject& aGlobal,
9693
&aOptions.mRequest.Value() : nullptr;
9794
e->mIsReload = aOptions.mIsReload.WasPassed() ?
9895
aOptions.mIsReload.Value() : false;
99-
e->mClient = aOptions.mClient.WasPassed() ?
100-
&aOptions.mClient.Value() : nullptr;
10196
return e.forget();
10297
}
10398

@@ -460,32 +455,14 @@ FetchEvent::RespondWith(Promise& aArg, ErrorResult& aRv)
460455
aArg.AppendNativeHandler(handler);
461456
}
462457

463-
already_AddRefed<ServiceWorkerClient>
464-
FetchEvent::GetClient()
465-
{
466-
if (!mClient) {
467-
if (!mClientInfo) {
468-
return nullptr;
469-
}
470-
471-
WorkerPrivate* worker = GetCurrentThreadWorkerPrivate();
472-
MOZ_ASSERT(worker);
473-
RefPtr<nsIGlobalObject> global = worker->GlobalScope();
474-
475-
mClient = new ServiceWorkerClient(global, *mClientInfo);
476-
}
477-
RefPtr<ServiceWorkerClient> client = mClient;
478-
return client.forget();
479-
}
480-
481458
NS_IMPL_ADDREF_INHERITED(FetchEvent, ExtendableEvent)
482459
NS_IMPL_RELEASE_INHERITED(FetchEvent, ExtendableEvent)
483460

484461
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(FetchEvent)
485462
NS_INTERFACE_MAP_END_INHERITING(ExtendableEvent)
486463

487464
NS_IMPL_CYCLE_COLLECTION_INHERITED(FetchEvent, ExtendableEvent,
488-
mRequest, mClient, mPromise)
465+
mRequest, mPromise)
489466

490467
ExtendableEvent::ExtendableEvent(EventTarget* aOwner)
491468
: Event(aOwner, nullptr, nullptr)

dom/workers/ServiceWorkerEvents.h

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ class ResponseOrPromise;
3535

3636
BEGIN_WORKERS_NAMESPACE
3737

38-
class ServiceWorkerClient;
39-
4038
class CancelChannelRunnable final : public nsRunnable
4139
{
4240
nsMainThreadPtrHandle<nsIInterceptedChannel> mChannel;
@@ -103,10 +101,8 @@ class ExtendableEvent : public Event
103101
class FetchEvent final : public ExtendableEvent
104102
{
105103
nsMainThreadPtrHandle<nsIInterceptedChannel> mChannel;
106-
RefPtr<ServiceWorkerClient> mClient;
107104
RefPtr<Request> mRequest;
108105
nsCString mScriptSpec;
109-
UniquePtr<ServiceWorkerClientInfo> mClientInfo;
110106
RefPtr<Promise> mPromise;
111107
bool mIsReload;
112108
bool mWaitToRespond;
@@ -125,8 +121,7 @@ class FetchEvent final : public ExtendableEvent
125121
}
126122

127123
void PostInit(nsMainThreadPtrHandle<nsIInterceptedChannel>& aChannel,
128-
const nsACString& aScriptSpec,
129-
UniquePtr<ServiceWorkerClientInfo>&& aClientInfo);
124+
const nsACString& aScriptSpec);
130125

131126
static already_AddRefed<FetchEvent>
132127
Constructor(const GlobalObject& aGlobal,
@@ -146,9 +141,6 @@ class FetchEvent final : public ExtendableEvent
146141
return mRequest;
147142
}
148143

149-
already_AddRefed<ServiceWorkerClient>
150-
GetClient();
151-
152144
bool
153145
IsReload() const
154146
{

dom/workers/ServiceWorkerPrivate.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -915,7 +915,6 @@ class FetchEventRunnable : public ExtendableFunctionalEventWorkerRunnable
915915
const nsCString mScriptSpec;
916916
nsTArray<nsCString> mHeaderNames;
917917
nsTArray<nsCString> mHeaderValues;
918-
UniquePtr<ServiceWorkerClientInfo> mClientInfo;
919918
nsCString mSpec;
920919
nsCString mMethod;
921920
bool mIsReload;
@@ -940,7 +939,6 @@ class FetchEventRunnable : public ExtendableFunctionalEventWorkerRunnable
940939
aWorkerPrivate, aKeepAliveToken, aRegistration)
941940
, mInterceptedChannel(aChannel)
942941
, mScriptSpec(aScriptSpec)
943-
, mClientInfo(Move(aClientInfo))
944942
, mIsReload(aIsReload)
945943
, mIsHttpChannel(false)
946944
, mRequestMode(RequestMode::No_cors)
@@ -1161,7 +1159,7 @@ class FetchEventRunnable : public ExtendableFunctionalEventWorkerRunnable
11611159
return false;
11621160
}
11631161

1164-
event->PostInit(mInterceptedChannel, mScriptSpec, Move(mClientInfo));
1162+
event->PostInit(mInterceptedChannel, mScriptSpec);
11651163
event->SetTrusted(true);
11661164

11671165
RefPtr<EventTarget> target = do_QueryObject(aWorkerPrivate->GlobalScope());
Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
self.addEventListener("fetch", function(event) {
22
var resource = event.request.url.split('/').pop();
3-
if (event.client) {
4-
event.client.postMessage({context: event.request.context,
5-
resource: resource});
6-
}
3+
event.waitUntil(
4+
clients.matchAll()
5+
.then(clients => {
6+
clients.forEach(client => {
7+
if (client.url.includes("plugins.html")) {
8+
client.postMessage({context: event.request.context,
9+
resource: resource});
10+
}
11+
});
12+
})
13+
);
714
});

dom/workers/test/serviceworkers/fetch_event_client.js

Lines changed: 0 additions & 6 deletions
This file was deleted.

dom/workers/test/serviceworkers/mochitest.ini

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,6 @@ support-files =
173173
opaque_intercept_worker.js
174174
notify_loaded.js
175175
test_request_context.js
176-
fetch_event_client.js
177-
sw_clients/dummy.html
178176
fetch/plugin/worker.js
179177
fetch/plugin/plugins.html
180178
eventsource/*
@@ -271,7 +269,6 @@ skip-if = toolkit == "android" || toolkit == "gonk"
271269
[test_workerUpdate.html]
272270
[test_workerupdatefoundevent.html]
273271
[test_opaque_intercept.html]
274-
[test_fetch_event_client_postmessage.html]
275272
[test_xslt.html]
276273
[test_escapedSlashes.html]
277274
[test_eventsource_intercept.html]

dom/workers/test/serviceworkers/sw_clients/dummy.html

Lines changed: 0 additions & 19 deletions
This file was deleted.

dom/workers/test/serviceworkers/test_fetch_event_client_postmessage.html

Lines changed: 0 additions & 73 deletions
This file was deleted.

dom/workers/test/serviceworkers/unresolved_fetch_worker.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
onfetch = function(event) {
2-
if (!event.client) {
3-
dump("ERROR: event doesnt have a client");
4-
}
5-
6-
event.client.postMessage("continue");
2+
event.waitUntil(
3+
clients.matchAll()
4+
.then(clients => {
5+
clients.forEach(client => {
6+
client.postMessage("continue");
7+
});
8+
})
9+
);
710

811
// never resolve
912
event.respondWith(new Promise(function(res, rej) {}));

0 commit comments

Comments
 (0)