Commit Graph

226 Commits

Author SHA1 Message Date
Nikhil Marathe
17f9c6955f Bug 1197421 - Fix promise worker proxy cleanup and update callers. r=catalinb
Get rid of having users dispatch control runnables. It was error prone and
required too much reasoning. It was also possible to end up in a state where
callers would dispatch a WorkerRunnable, which would succeed, so they would not
dispatch a WorkerControlRunnable. Then the worker would stop Running,
canceling and releasing the runnable leading to releasing the proxy in an
unclean state. Instead, we AddRef() and add the feature and remove the feature
and Release() on Notify(). If callers successfully run a WorkerRunnable they
clean the proxy. If not, the proxy stays alive until the worker switches to
Canceling state.
2015-09-02 10:07:26 -07:00
Michael Layzell
c151ef50b0 Bug 1147821 - Update IndexedDB to use common StorageAllowedForWindow logic, r=khuey 2015-08-28 10:10:30 -04:00
Nikhil Marathe
65e018606b Bug 1144660 - client.focus() adds window interaction checks and directly uses DOMServiceWorkerFocusClient to focus window. r=ehsan,dao
client.focus() now directly uses the DOMServiceWorkerFocusClient event. The
platform popup checking is not available on service workers. Instead each
worker maintains a counter of if it is allowed to interact with windows. This
counter is currently only incremented by the notificationclick event and
dropped after the event has been dispatched.

Since acquiring a client is an async operation most service workers will
perform in notificationclick, an additional extension is granted after the event
during which the service worker may focus a client. This extension is only granted
if the script invokes NotificationEvent.waitUntil() at which point the timer begins.
The extension is terminated when the Promise passed to waitUntil() is fulfilled, or
the timer expires, whichever comes first.
2015-07-23 08:30:27 -07:00
Wes Kocher
b0c434c39d Backed out 3 changesets (bug 1191495, bug 1153499, bug 1144660) for mochitest-push crashes
Backed out changeset 8917e7323399 (bug 1191495)
Backed out changeset 13ed6f60d3f9 (bug 1144660)
Backed out changeset 95bd6642e4b1 (bug 1153499)
2015-08-05 15:18:05 -07:00
Nikhil Marathe
f7800da93c Bug 1144660 - client.focus() adds window interaction checks and directly uses DOMServiceWorkerFocusClient to focus window. r=ehsan,dao
client.focus() now directly uses the DOMServiceWorkerFocusClient event. The
platform popup checking is not available on service workers. Instead each
worker maintains a counter of if it is allowed to interact with windows. This
counter is currently only incremented by the notificationclick event and
dropped after the event has been dispatched.

Since acquiring a client is an async operation most service workers will
perform in notificationclick, an additional extension is granted after the event
during which the service worker may focus a client. This extension is only granted
if the script invokes NotificationEvent.waitUntil() at which point the timer begins.
The extension is terminated when the Promise passed to waitUntil() is fulfilled, or
the timer expires, whichever comes first.
2015-07-23 08:30:27 -07:00
Kaku Kuo
fa3a35c345 Bug 1044102 - Part 1 - Implement ImageBitmap. r=roc, sr=smaug 2015-07-30 20:47:00 +02:00
Birunthan Mohanathas
47ed3a3675 Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Hiroyuki Ikezoe
4a1b0ba58a Bug 1179982 - Fix all compile errors in dom/workers on non-unified build. r=mrbkap 2015-07-02 14:54:00 +02:00
Jan de Mooij
708e28e6b7 Bug 1177892 part 3 - Remove OBJECT_TO_JSVAL. r=evilpie 2015-06-30 21:09:46 -07:00
Nikhil Marathe
daba37f19e Bug 1173389 - Disable ServiceWorker network interception by default. r=ehsan 2015-06-12 16:28:13 -07:00
Ben Turner
3d0d731ba0 Bug 1173139 - Reorder global creation on workers, r=khuey. 2015-06-10 14:12:55 -07:00
Andrea Marchesini
0890cd2939 Bug 1131352 - Part 3: ServiceWorkerManager::SetSkipWaitingFlag() updated CLOSED TREE 2015-06-03 15:20:52 +01:00
Jose Antonio Olivera Ortega
1e37503d48 Bug 1131352 - Part 2: Add ServiceWorkerGlobalScope skipWaiting(). r=nsm, r=baku 2015-06-02 07:12:00 -04:00
Andrea Marchesini
ab6fa89a07 Bug 1156875 - patch 1 - URL.createObjectURL leaks in JS sandbox, r=bholley 2015-05-07 08:05:43 +01:00
Andrew McCreight
c979f253c0 Bug 1152551, part 2 - Fix mode lines in dom/. r=jst 2015-05-03 15:32:37 -04:00
Nikhil Marathe
fca3de6eed Bug 1131327 - Patch 7 - Fire updatefound on worker registration. r=baku 2015-04-08 15:22:36 -07:00
Nikhil Marathe
7f54389eab Bug 1131327 - Patch 4 - Implement ServiceWorkerRegistration.update() on worker. r=baku
ServiceWorkerGlobalScope::Registration() now returns initialized registration.
2015-04-07 11:50:08 -07:00
Nikhil Marathe
3c3ba3c80f Bug 1131327 - Patch 2 - Expose to workers. r=baku
This patch exposes ServiceWorkerRegistration (and ServiceWorker to satisfy constraints) to workers.

For now, a null registration is returned in the worker.
2015-04-03 22:46:07 -07:00
Nikhil Marathe
8d7ca9aafd Bug 1131350 - Move update() to ServiceWorkerRegistration. r=baku 2015-03-19 18:09:10 -07:00
Jan de Mooij
4b7f9709f5 Bug 1155946 part 1 - Add a mayResolve class hook to optimize objects with resolve hooks better. r=bhackett 2015-04-23 15:51:28 +02:00
Daniel Holbert
30a1dd3e6a Bug 1092102, followup 2: Add missing 'override' annotation to WorkerDebuggerSandboxPrivate::GetGlobalJSObject() (and 'virtual', for consistency). rs=ehsan 2015-03-31 10:41:20 -07:00
Eddy Bruël
9a035c2bd8 Bug 1092102 - Implement WorkerDebuggerGlobalScope.createSandbox;r=khuey 2015-03-31 12:22:40 +02:00
Carsten "Tomcat" Book
49b9d3ab32 Backed out changeset 71abbf190d53 (bug 1092102) for static analysis build bustage on a CLOSED TREE 2015-03-31 11:14:46 +02:00
Eddy Bruël
591e82ee1b Bug 1092102 - Implement WorkerDebuggerGlobalScope.createSandbox;r=khuey 2015-03-31 10:19:04 +02:00
Eddy Bruël
2d96528d53 Bug 1092102 - Implement WorkerDebuggerGlobalScope.setImmediate;r=khuey 2015-03-30 13:54:38 +02:00
Andrea Marchesini
94545cbb2e Bug 1148527 - Indentation fix after bug 1145631, r=ehsan 2015-03-27 18:52:19 +00:00
Eddy Bruël
2b2a7900ca Bug 1092102 - Implement WorkerDebuggerGlobalScope.enterEventLoop;r=khuey 2015-03-27 07:17:16 +01:00
Eddy Bruël
121fcfadd5 Bug 1092102 - Implement WorkerDebuggerGlobalScope.reportError;r=khuey 2015-03-26 20:09:45 +01:00
Ehsan Akhgari
5cccea6f0f Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Eddy Bruël
e4a122c83c Bug 1092102 - Implement WorkerDebugger.postMessage;r=khuey 2015-03-20 12:15:59 +01:00
Boris Zbarsky
988b8e01be Bug 1117172 part 3. Change the wrappercached WrapObject methods to allow passing in aGivenProto. r=peterv
The only manual changes here are to BindingUtils.h, BindingUtils.cpp,
Codegen.py, Element.cpp, IDBFileRequest.cpp, IDBObjectStore.cpp,
dom/workers/Navigator.cpp, WorkerPrivate.cpp, DeviceStorageRequestChild.cpp,
Notification.cpp, nsGlobalWindow.cpp, MessagePort.cpp, nsJSEnvironment.cpp,
Sandbox.cpp, XPCConvert.cpp, ExportHelpers.cpp, and DataStoreService.cpp.  The
rest of this diff was generated by running the following commands:

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObjectInternal\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObjectInternal\((?:aCx|cx|aContext|aCtx|js))\)/\1, aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapNode\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapNode\((?:aCx|cx|aContext|aCtx|js))\)/\1, aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObject\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(Binding(?:_workers)?::Wrap\((?:aCx|cx|aContext|aCtx|js), [^,)]+)\)/\1, aGivenProto)/g'
2015-03-19 10:13:33 -04:00
Ehsan Akhgari
6389065e27 Bug 1131353 - Make ServiceWorkerGlobalScope.close() throw InvalidAccessError; r=baku 2015-03-06 08:19:33 -05:00
Eddy Bruël
96412751c2 Bug 1092102 - Implement a WorkerDebuggerGlobalScope;r=khuey 2015-03-04 00:51:53 +01:00
Ben Kelly
a6069f07e6 Bug 940273 - Part 6 - Expose Service Worker Cache on workers as self.caches. r=ehsan 2015-03-02 14:23:00 +01:00
Jan de Mooij
56bb36a93c Bug 1137523 - Unprefix most js_* functions. r=bhackett CLOSED TREE 2015-02-27 16:08:15 +01:00
Andrea Marchesini
39b12bc6dc Bug 984050 - Persist ServiceWorkerRegistrations. r=bent, r=nsm 2015-02-11 06:53:00 -05:00
Carsten "Tomcat" Book
341e2dae13 Backed out changeset b3a1efe7900a (bug 984050) for cpp unitest failures on a CLOSED TREE 2015-02-11 13:29:16 +01:00
Andrea Marchesini
ed0dd64625 Bug 984050 - Persist ServiceWorkerRegistrations. r=bent,nsm 2015-02-11 10:10:23 +01:00
Phil Ringnalda
c865152e04 Back out 3da63ccbadef (bug 984050) for Windows cppunit bustage
CLOSED TREE
2015-02-06 19:49:42 -08:00
Andrea Marchesini
d9876086c9 Bug 984050 - Persist ServiceWorker registrations, r=bent, r=nsm 2015-02-06 23:31:33 +00:00
Nikhil Marathe
cb9aaadc9a Bug 1113577 - Fixes in ServiceWorkerGlobalScope.unregister implementation to prevent Promise release on wrong thread. 2014-10-27 16:37:03 -07:00
Ehsan Akhgari
4c4956892d Bug 1123016 - Clarify the ownership of DOMEventTargetHelper::mParentObject/mOwnerWindow; r=smaug
This patch converts DOMEventTargetHelper::mParentObject into an
nsWeakPtr, and adds fatal assertions to ensure that all future
nsIGlobalObject implementations support weak references.  It also marks
DOMEventTargetHelper::mOwnerWindow as a non-owning reference.
2015-01-23 08:37:37 -05:00
Nikhil Marathe
03b3419146 Bug 1113555 - Update ServiceWorker registration lifecycle. r=baku
Folded:
Allow file: serviceworkers
Registration fixes WIP
Queue updatefound instead of immediately firing
Initial "atomically" steps of registration should also be a part of the job
Fix some compiler errors
Be sure not to null out various workers too early during activation
Integrated ServiceWorkerGlobalScope::Update into the ServiceWorkerRegisterJob.
2014-12-19 02:00:29 -08:00
Peter Van der Beken
00ece8f296 Bug 1096328 - Remove nativeOwnership from Bindings.conf, make rooting analysis happy. r=bz. 2015-01-08 22:56:42 +01:00
Andrea Marchesini
b618f038f4 Bug 1065366 - Implement ServiceWorkerGlobalScope update(), r=nsm
--HG--
extra : rebase_source : abdca619a27b46693ead93a6f468a40b2eeab2cf
2014-10-06 16:45:14 +01:00
Ben Turner
64376d8607 Bug 701634 - Support IndexedDB in Workers, r=khuey+baku. 2014-12-16 22:26:15 -08:00
Andrea Marchesini
f4d5de3852 Bug 1104064 - setInterval(,0) in workers must be scheduled correctly, r=khuey 2014-12-03 10:57:39 -08:00
Andrea Marchesini
0f6d57eea4 Bug 1077393 - Rename ScalarValueString to USVString. r=smaug
--HG--
rename : dom/bindings/parser/tests/test_scalarvaluestring.py => dom/bindings/parser/tests/test_usvstring.py
rename : dom/bindings/test/test_scalarvaluestring.html => dom/bindings/test/test_usvstring.html
2014-11-20 12:58:00 +01:00
Ehsan Akhgari
15d4ca85f0 Bug 982726 - Part 1.2: Break the cyclic dependency between WorkerScope.h and ServiceWorkerClients.h, and introduce a ToSupports overload for WorkerGlobalScope in order to fix the b2g builds. r=baku 2014-10-27 12:03:00 +01:00
Catalin Badea
d41b9c8d6d Bug 982726 - Patch 1.1 - Service Worker: ServiceWorkerClients and Client interfaces with getServiced(). r=baku 2014-10-27 12:03:00 +01:00