Commit Graph

397 Commits

Author SHA1 Message Date
Nathan Froyd
f5133a44cb Bug 1236632 - remove unused variable in FactoryOp::WaitForTransactions; r=janv
This variable got left behind during the refactoring in bug 1125102.
2016-01-04 14:29:33 -05:00
Nicholas Nethercote
2edccef772 Bug 1187151 (part 5) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=khuey. 2015-11-24 16:55:01 -08:00
Nicholas Nethercote
fe3670d6d3 Bug 1187151 (part 4) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=khuey. 2015-11-24 16:54:42 -08:00
Nicholas Nethercote
3c08edc541 Bug 1187116 (part 6) - Replace nsBaseHashtable::EnumerateRead() calls in dom/indexedDB/ with iterators. r=khuey. 2015-11-18 21:04:22 -08:00
Nicholas Nethercote
383b1ae570 Bug 1187116 (part 5) - Replace nsBaseHashtable::EnumerateRead() calls in dom/indexedDB/ with iterators. r=khuey. 2015-11-18 21:04:10 -08:00
Jan Varga
3f63fb30a8 Bug 961049 - Part 9: Fix asynchronous deletion of files to work on PBackground; r=baku 2015-11-22 10:44:43 +01:00
Jan Varga
a1bb6a4521 Bug 961049 - Part 8: Move getFileReferences() from PContent under new protocol PBackgroundIndexedDBUtils; r=baku 2015-11-22 10:44:33 +01:00
Jan Varga
731bf55064 Bug 961049 - Part 7: QuotaManager on PBackground indexedDB changes; r=baku 2015-11-22 10:44:24 +01:00
Jan Varga
30813e0a3d Bug 961049 - Part 2: Remove Utilities.h; r=baku 2015-11-22 10:43:23 +01:00
Nicholas Nethercote
289eb5f7d8 Bug 1187116 (part 4) - Replace nsBaseHashtable::EnumerateRead() calls in dom/indexedDB/ with iterators. r=khuey. 2015-11-01 21:47:23 -08:00
Nicholas Nethercote
d45a021ad6 Bug 1187116 (part 3) - Replace nsBaseHashtable::EnumerateRead() calls in dom/indexedDB/ with iterators. r=khuey. 2015-11-01 21:46:47 -08:00
Nicholas Nethercote
7abf677cdf Bug 1187116 (part 2) - Replace nsBaseHashtable::EnumerateRead() calls in dom/indexedDB/ with iterators. r=khuey. 2015-11-01 21:46:29 -08:00
Nicholas Nethercote
d5487daf97 Bug 1187116 (part 1) - Replace nsBaseHashtable::EnumerateRead() calls in dom/indexedDB/ with iterators. r=khuey. 2015-11-01 21:45:14 -08:00
Birunthan Mohanathas
ac37dec517 Bug 1219392 - Capitalize mozilla::unused to avoid conflicts. r=froydnj 2015-11-02 07:53:26 +02:00
Nathan Froyd
cdda7c147a Bug 1216964 - remove nsAutoArrayPtr use from ActorsParent; r=khuey
We could have just replaced it directly with UniquePtr, but it seemed
just as easy to use UniqueFreePtr and adapt the code to use
AdoptingBlobVariant, which was apparently added after the XXX comment.
2015-10-20 14:24:29 -04:00
Jan Varga
31a84c5a41 Bug 1203803 - Remove forced cleanup from FactoryOp::ActorDestroy() since it cause more harm than good; r=khuey 2015-10-22 08:38:06 +02:00
Nathan Froyd
4e6d8f6705 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
2015-10-18 01:24:48 -04:00
Nathan Froyd
a38cb8ff82 Bug 1212027 - part 7 - modify IPDL codegen to store sub-protocols in a hashtable rather than an array; r=jld,nical,cpearce,billm 2015-10-07 14:30:33 -04:00
Jan Varga
220deaf6e4 Bug 1203803 - Fix "Intermittent Assertion failure: IsOnBackgroundThread()" a=sheriffduty 2015-10-10 02:57:00 +02:00
Carsten "Tomcat" Book
c8d41eaf4b Backed out changeset 2387ada86428 (bug 1203803) for landing with negative review and causing assertions 2015-10-14 14:29:37 +02:00
Jan Varga
141f0d84fa Bug 1203803: Force cleanup for specific states only; r=khuey a=CLOSED TREE 2015-10-13 10:19:43 -07:00
Nick Fitzgerald
71ae1455b8 Bug 1201620 - Make SavedFrame stacks structured cloneable; r=sfink 2015-10-12 13:29:48 -07:00
Jan Varga
ef8de4f442 Followup build fix for bug 1185223; r=buildbustage 2015-10-10 10:16:31 +02:00
Jan Varga
15cea79530 Bug 1185223 - crash at [@ mozilla::dom::quota::QuotaObject::Release() ]; r=khuey 2015-10-10 09:28:09 +02:00
Jason Orendorff
24d3e52551 Bug 1054756, part 5 - Remove Class::convert. 2015-03-20 16:28:59 -05:00
Wes Kocher
acbbcd2aca Backed out 7 changesets (bug 1206168, bug 1177318, bug 1054756) for hazard build failures CLOSED TREE
Backed out changeset e892727a373a (bug 1206168)
Backed out changeset 6c93d1044b7e (bug 1054756)
Backed out changeset 105433ce195b (bug 1054756)
Backed out changeset 13128a88f2b9 (bug 1054756)
Backed out changeset c250abf4fd17 (bug 1054756)
Backed out changeset fc9fef646a97 (bug 1054756)
Backed out changeset c8897f109a08 (bug 1177318)
2015-09-23 12:31:19 -07:00
Jason Orendorff
b7001bb468 Bug 1054756, part 5 - Remove Class::convert. 2015-03-20 16:28:59 -05:00
Reuben Morais
3d3464d744 Bug 1202788 - Upgrade object_data table to new format (follow-up to bug 871846). r=janv 2015-09-11 12:12:52 -03:00
Jan Varga
78677b606a Bug 1068975 - Remove FileInfo from File; r=baku 2015-09-09 13:15:14 +02:00
Jan Varga
7634d6acc6 Bug 771288 - Multiprocess FileHandle support (FileHandle on PBackground); r=baku 2015-09-09 13:15:05 +02:00
Reuben Morais
cc7f111259 Bug 871846 - Handle locale aware indexes. r=janv 2015-09-04 16:12:44 -03:00
Reuben Morais
00f8b9499e Bug 871846 - Database changes for locale aware indexes. r=janv 2015-09-04 16:12:37 -03:00
Yoshi Huang
8b5f32856e Bug 1165272 - Part 1: remove getAppCodebasePrincipal. r=bholley 2015-08-17 17:03:19 +08:00
Bobby Holley
d12b79b75a Backed out 3 changesets (bug 1165272) for b2g sanity blocker. 2015-08-25 11:16:21 -07:00
Yoshi Huang
22d5c28f38 Bug 1165272 - Part 1: Remove getAppCodebasePrincipal. r=bholley 2015-08-24 01:31:00 -04:00
Birunthan Mohanathas
b5432d279a Bug 1168606 - Part 5: Send two records with every ObjectStoreCursorResponse. r=khuey 2015-08-19 14:59:29 -07:00
Birunthan Mohanathas
5eb8d4eeb2 Bug 1168606 - Part 4: Allow current key to be provided with PBackgroundIDBCursor::Continue. r=khuey
The key is assumed to be unset for now.
2015-08-19 14:59:28 -07:00
Birunthan Mohanathas
79d82cd599 Bug 1168606 - Part 3: Allow multiple ObjectStoreCursorResponses in a CursorResponse. r=khuey
For now, we assume that the array only ever contains a single response.
2015-08-19 14:59:25 -07:00
Birunthan Mohanathas
8c469ae2df Bug 1192023 - Make UpdateType an enum class. r=khuey 2015-08-06 14:34:39 -07:00
Birunthan Mohanathas
e0810a7425 Bug 1192023 - Use enum class instead of CheckpointMode_ prefix. r=khuey 2015-08-06 14:34:35 -07:00
Birunthan Mohanathas
38bfc19979 Bug 1192023 - Flatten away AppId enum. r=khuey 2015-08-06 14:34:33 -07:00
Birunthan Mohanathas
64755a2497 Bug 1192023 - Use enum class instead of MaintenanceAction_ prefix. r=khuey 2015-08-06 14:34:29 -07:00
Birunthan Mohanathas
6427fd1d80 Bug 1192023 - Use enum class instead of State_ prefix. r=khuey 2015-08-06 14:34:27 -07:00
Kyle Huey
862b128345 Bug 1179909: Refactor stable state handling. r=smaug
This is motivated by three separate but related problems:

1. Our concept of recursion depth is broken for things that run from AfterProcessNextEvent observers (e.g. Promises). We decrement the recursionDepth counter before firing observers, so a Promise callback running at the lowest event loop depth has a recursion depth of 0 (whereas a regular nsIRunnable would be 1). This is a problem because it's impossible to distinguish a Promise running after a sync XHR's onreadystatechange handler from a top-level event (since the former runs with depth 2 - 1 = 1, and the latter runs with just 1).

2. The nsIThreadObserver mechanism that is used by a lot of code to run "after" the current event is a poor fit for anything that runs script. First, the order the observers fire in is the order they were added, not anything fixed by spec. Additionally, running script can cause the event loop to spin, which is a big source of pain here (bholley has some nasty bug caused by this).

3. We run Promises from different points in the code for workers and main thread. The latter runs from XPConnect's nsIThreadObserver callbacks, while the former runs from a hardcoded call to run Promises in the worker event loop. What workers do is particularly problematic because it means we can't get the right recursion depth no matter what we do to nsThread.

The solve this, this patch does the following:

1. Consolidate some handling of microtasks and all handling of stable state from appshell and WorkerPrivate into CycleCollectedJSRuntime.
2. Make the recursionDepth counter only available to CycleCollectedJSRuntime (and its consumers) and remove it from the nsIThreadInternal and nsIThreadObserver APIs.
3. Adjust the recursionDepth counter so that microtasks run with the recursionDepth of the task they are associated with.
4. Introduce the concept of metastable state to replace appshell's RunBeforeNextEvent. Metastable state is reached after every microtask or task is completed. This provides the semantics that bent and I want for IndexedDB, where transactions autocommit at the end of a microtask and do not "spill" from one microtask into a subsequent microtask. This differs from appshell's RunBeforeNextEvent in two ways:
a) It fires between microtasks, which was the motivation for starting this.
b) It no longer ensures that we're at the same event loop depth in the native event queue. bent decided we don't care about this.
5. Reorder stable state to happen after microtasks such as Promises, per HTML. Right now we call the regular thread observers, including appshell, before the main thread observer (XPConnect), so stable state tasks happen before microtasks.
2015-08-11 06:10:46 -07:00
Reuben Morais
e03d64c475 Bug 1184667 - Remove some unnecessary const_casts from ActorsParent.cpp. r=janv 2015-08-05 15:25:14 -03:00
Kyle Huey
468fe8cba8 Bug 1180978: Don't proceed with opening an invalidated database. r=janv,baku 2015-07-22 14:46:19 +08:00
Kyle Huey
f924589b61 Bug 1185836. Nuke warnings from orbit. r=me 2015-07-21 17:07:05 +08:00
Kyle Huey
911845d8b3 Bug 1185836: Fix warnings r=me.
CLOSED TREE
2015-07-21 16:52:44 +08:00
Kyle Huey
db12cd01c7 Bug 1185836: Replace several EnumerateRead calls with the new hashtable iterators. r=baku 2015-07-21 16:38:31 +08:00
Brian Birtles
1971b1c8ec Bug 1182981 part 3 - Use nsTHashtable::Iterator in ActorsParent; r=khuey 2015-07-21 14:46:32 +09:00