Commit Graph

48 Commits

Author SHA1 Message Date
Nicholas Nethercote
10d95cca57 Bug 1198334 (part 1) - Replace the opt-in FAIL_ON_WARNINGS with the opt-out ALLOW_COMPILER_WARNINGS. r=glandium.
The patch removes 455 occurrences of FAIL_ON_WARNINGS from moz.build files, and
adds 78 instances of ALLOW_COMPILER_WARNINGS. About half of those 78 are in
code we control and which should be removable with a little effort.
2015-08-27 20:44:53 -07:00
Michael Layzell
908625d7dc Bug 536509 - Update localStorage to use common StorageAllowedForWindow logic, r=ehsan 2015-08-28 10:10:28 -04:00
Aidin Gharibnavaz
422b52d863 Bug 929846 - Considering key size when calculating quota usage. r=jdm 2015-08-17 15:19:30 -07:00
Kyle Huey
1ffb03e8dc 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
Honza Bambas
30a1e62ab0 Bug 1192194 - Make DOMStorageDBThead::mDBReady atomic. r=smaug 2015-08-07 05:00:00 -04:00
Honza Bambas
fbb7d5d4fe Bug 1189426 - Don't assert false in DOMStorageDBThread::InsertDBOp when we failed to open the database. r=smaug 2015-08-06 11:08:00 -04:00
Nicholas Nethercote
83e94c41f7 Bug 1182977 (part 2) - Use PLDHashTable::Iterator in dom/storage/. r=khuey. 2015-07-22 00:02:15 -07:00
Nicholas Nethercote
2d8cbf5a2f Bug 1182977 - Use PLDHashTable::Iterator in dom/storage/. r=khuey. 2015-07-21 23:54:12 -07:00
Michael Layzell
ea769d03ae Bug 1184971 - Expose cookieBehavior and cookieLifetimePolicy preference variants from nsICookieService. r=ehsan 2015-07-17 08:01:00 +02:00
Carsten "Tomcat" Book
946afe94d0 Backed out changeset 2f4b5acae553 (bug 1184971) for causing OS X Memory Leaks 2015-07-21 10:27:44 +02:00
Michael Layzell
a0830685a4 Bug 1184971 - Expose cookieBehavior and cookieLifetimePolicy preference variants from nsICookieService. r=ehsan 2015-07-17 08:01:00 +02:00
Michael Layzell
9795afcffe Bug 1173523 - Part 1: Expose an nsIPrincipal from nsIPermission rather than a host string, appId, and isInBrowserElement, r=ehsan 2015-07-16 14:49:22 -04:00
Wes Kocher
d1fecb8032 Backed out 24 changesets (bug 1173523, bug 1172080, bug 817007, bug 1165263) for android reftest bustage CLOSED TREE
Backed out changeset 84fe04b2e7d1 (bug 1172080)
Backed out changeset 0ff004760a1f (bug 1172080)
Backed out changeset af147585ad55 (bug 1165263)
Backed out changeset c3af8ebb6db0 (bug 1165263)
Backed out changeset cd3f33a888fe (bug 1165263)
Backed out changeset e5db39044a1e (bug 1165263)
Backed out changeset c01c9ed77061 (bug 1165263)
Backed out changeset fb723aaa4267 (bug 1165263)
Backed out changeset f754e52e74dc (bug 1165263)
Backed out changeset c6bda3a0afd6 (bug 817007)
Backed out changeset bfa100253349 (bug 817007)
Backed out changeset b787b3f9aadc (bug 1173523)
Backed out changeset 4a0676b73f77 (bug 1173523)
Backed out changeset 82034a4560c5 (bug 1173523)
Backed out changeset 4bdb91114c7a (bug 1173523)
Backed out changeset 72406261eccc (bug 1173523)
Backed out changeset 541b6faf7196 (bug 1173523)
Backed out changeset 1caac4569616 (bug 1173523)
Backed out changeset 0d4f9f9e1b4e (bug 1173523)
Backed out changeset 2d5661eb966c (bug 1173523)
Backed out changeset 89833c0bb0cd (bug 1173523)
Backed out changeset ea64d70eacfe (bug 1173523)
Backed out changeset a8e4f1c0c445 (bug 1173523)
Backed out changeset cf498d466b85 (bug 1173523)
2015-07-14 14:00:32 -07:00
Michael Layzell
a71129398e Bug 1173523 - Part 1: Expose an nsIPrincipal from nsIPermission rather than a host string, appId, and isInBrowserElement, r=ehsan 2015-07-14 15:06:15 -04:00
Birunthan Mohanathas
e52329c788 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
Michael Layzell
c1d10743ff Bug 1180993 - Part 3: Correct use sites of functions which return already_AddRefed. r=ehsan 2015-07-10 08:36:00 -04:00
Emanuel Hoogeveen
31c0c961cd Bug 905127 - Part 1 - Make some functions from nsNetUtil not inline. r=jduell 2015-07-07 04:17:00 +02:00
Juan Gomez
21d73728f3 Bug 1171931 - Refactor duplicated code using XRE_IsParent/ContentProcess. r=froydnj 2015-07-03 18:29:00 -07:00
Ryan VanderMeulen
55b2086097 Backed out changeset 8b4e4083639e (bug 1171931) for B2G debug emulator bustage. 2015-06-25 19:48:42 -04:00
Juan Gomez
98461fc4a4 Bug 1171931 - Refactor duplicated code using XRE_IsParent/ContentProcess. r=froydnj 2015-06-24 14:11:00 -04:00
Blake Kaplan
32971cf76e Bug 1173573 - Fix possible crash initializing sessionstorage. r=honzab 2015-06-23 11:22:00 +02:00
Blake Kaplan
1350f841d7 Bug 1151840 - Make a couple of messages urgent to deal with CPOWs properly. r=billm 2015-06-11 18:53:31 -07:00
Ms2ger
8e449ba7f9 Bug 1017758 - Use infallible getters for appId/isInBrowserElement/unknownAppId; r=bz 2015-05-13 17:59:08 +02:00
Andrew McCreight
aeff7c99ee Bug 1152551, part 2 - Fix mode lines in dom/. r=jst 2015-05-03 15:32:37 -04:00
Andrew McCreight
10aa3c7467 Bug 1152551, part 1 - Remove leading tabs in dom/. r=baku
Also, remove trailing whitespace in nsXMLContentSink.cpp
2015-05-03 15:32:33 -04:00
David Major
c92c020b89 Bug 1157835: Remove the MSVC_ENABLE_PGO flag from the build system. r=glandium 2015-04-27 19:59:27 -04:00
Boris Zbarsky
7f61a6b625 Bug 1157898 part 5. Eliminate the remaining non-ErrorResult consumers of ErrorResult::ErrorCode and make it protected. r=peterv 2015-04-27 09:18:52 -04:00
Boris Zbarsky
99430ec9c0 Bug 1157898 part 4. Add ErrorResult::ErrorCodeIs() and use it in various places to get rid of ErrorCode(). r=peterv 2015-04-27 09:18:52 -04:00
Andrea Marchesini
b212600c95 Bug 1148527 - Indentation fix after bug 1145631, r=ehsan 2015-03-27 18:52:19 +00:00
Ehsan Akhgari
33bb32f549 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
Boris Zbarsky
54c64f20a9 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
Nicholas Nethercote
6ee3666899 Bug 1127201 (attempt 2, part 1) - Replace most NS_ABORT_IF_FALSE calls with MOZ_ASSERT. r=Waldo.
--HG--
extra : rebase_source : 488e401ff87e31a2074c4108c4df0572d9536667
2015-02-09 14:34:50 -08:00
Andrew McCreight
8413cc973c Back out Bug 1127201 (part 2) for various problems. 2015-02-06 15:04:32 -08:00
Nicholas Nethercote
3629781b69 Bug 1127201 (part 2) - Convert all NS_ABORT_IF_FALSE calls to MOZ_ASSERT. r=Waldo.
--HG--
extra : rebase_source : 99182e70335d2b5ff95f8c528ae992d37294be3a
2015-02-04 20:05:36 -08:00
Mike Hommey
824818ee98 Bug 1126593 - Add a global fallible instance, so that using fallible works directly, everywhere. r=njn
--HG--
rename : memory/mozalloc/fallible.h => memory/fallible/fallible.h
2015-02-02 09:56:13 +09:00
Marco Bonardo
3ba4d62c83 Bug 1010717 - add nsIRunnable support to the DOM Storage thread. r=mayhemer 2015-01-28 00:00:18 +01:00
Kyle Huey
591c252165 Bug 1121673: Use move references in IPDL. r=bent 2015-01-16 11:58:52 -08:00
Ehsan Akhgari
c431a9c272 Bug 1118609 - Mark virtual overridden functions as MOZ_OVERRIDE in dom/storage; r=baku 2015-01-07 10:22:00 -05:00
Peter Van der Beken
9254096129 Bug 1078744 - Replace SetIsDOMBinding with SetIsNonDOMBinding, remove nsWrapperCache::SetIsDOMBinding. r=bz.
--HG--
extra : rebase_source : 89c476cd9436530b2df5acc903909e34188417a0
2014-10-07 11:44:49 +02:00
Patrick Wang (Chih-Kai Wang)
01c7c361d9 Bug 1032125: Part 2: Prevent DOM Storage from sending IPC after Nuwa ready. r=khuey 2014-09-30 22:13:25 +08:00
Carsten "Tomcat" Book
54e4e809e5 Backed out changeset e193cf8cb616 (bug 1032125) for causing regressions 2014-09-22 12:45:22 +02:00
Patrick Wang (Chih-Kai Wang)
09d738d349 Bug 1032125: Part 2: Prevent DOM Storage from sending IPC after Nuwa ready. r=khuey 2014-09-19 17:12:10 +08:00
Carsten "Tomcat" Book
5f81935878 Backed out changeset f945fb33b616 (bug 1032125) 2014-09-18 15:13:53 +02:00
Patrick Wang (Chih-Kai Wang)
8c09423062 Bug 1032125: Part 2: Prevent DOM Storage from sending IPC after Nuwa ready. r=khuey 2014-09-18 10:29:45 +08:00
Ehsan Akhgari
0b2aaa5f23 Bug 1060987 - Fix more bad implicit constructors in DOM; r=baku
--HG--
extra : rebase_source : 01709017e97fdc96d1d53eb881efc1792118edc4
2014-09-01 20:49:25 -04:00
Phil Ringnalda
b656763114 Backed out 6 changesets (bug 1060982, bug 1061058, bug 1060987, bug 1061060, bug 1060930) for build bustage
CLOSED TREE

Backed out changeset c23b8418e6be (bug 1060987)
Backed out changeset a8cddc6bdffc (bug 1061060)
Backed out changeset b5af5cbdac3f (bug 1060982)
Backed out changeset 4912d451011a (bug 1060930)
Backed out changeset bdacbf453238 (bug 1061058)
Backed out changeset da6c71a8f5ae (bug 1060987)
2014-09-01 16:48:51 -07:00
Ehsan Akhgari
f1391c83bf Bug 1060987 - Fix more bad implicit constructors in DOM; r=baku 2014-09-01 18:00:53 -04:00
Birunthan Mohanathas
ff59a59b77 Bug 1058101 - Move dom/src/storage/ into dom/. r=mccr8
--HG--
rename : dom/src/storage/DOMStorage.cpp => dom/storage/DOMStorage.cpp
rename : dom/src/storage/DOMStorage.h => dom/storage/DOMStorage.h
rename : dom/src/storage/DOMStorageCache.cpp => dom/storage/DOMStorageCache.cpp
rename : dom/src/storage/DOMStorageCache.h => dom/storage/DOMStorageCache.h
rename : dom/src/storage/DOMStorageDBThread.cpp => dom/storage/DOMStorageDBThread.cpp
rename : dom/src/storage/DOMStorageDBThread.h => dom/storage/DOMStorageDBThread.h
rename : dom/src/storage/DOMStorageIPC.cpp => dom/storage/DOMStorageIPC.cpp
rename : dom/src/storage/DOMStorageIPC.h => dom/storage/DOMStorageIPC.h
rename : dom/src/storage/DOMStorageManager.cpp => dom/storage/DOMStorageManager.cpp
rename : dom/src/storage/DOMStorageManager.h => dom/storage/DOMStorageManager.h
rename : dom/src/storage/DOMStorageObserver.cpp => dom/storage/DOMStorageObserver.cpp
rename : dom/src/storage/DOMStorageObserver.h => dom/storage/DOMStorageObserver.h
rename : dom/src/storage/PStorage.ipdl => dom/storage/PStorage.ipdl
rename : dom/src/storage/moz.build => dom/storage/moz.build
2014-08-30 21:43:46 -07:00