Commit Graph

189 Commits

Author SHA1 Message Date
Kyle Machulis
3eeb2fd986 Bug 1117252 - Re-enable settings mochitests that were disabled by bug 1113199; a=test-only 2015-01-03 11:15:51 -08:00
Kyle Machulis
d9effc9520 Bug 1113199 - Settings OOP Tests for Bug 1110872. r=gerard-majax 2014-12-23 12:47:00 -05:00
Alexandre Lissy
2d0507f80d Bug 1107329 - Add locks tasks queue vivacity checking. r=qdot
To help diagnosing further issues with the Settings API getting blocked,
we add some tracking of the tasks and locks queue vivacity. We ensure to
keep track of the last lock id at the head of the queue, and we verify
whether it does not stays on top of it for too long.
2014-12-24 01:30:00 -05:00
Alexandre Lissy
fe430043eb Bug 1080377 - Re-enable SettingsRequestManager xpcshell test. r=qDot 2014-12-24 00:39:00 -05:00
Kyle Machulis
8c0529c446 Bug 1098220 - Only print exception message in SettingsService in exceptional situations; r=gerard-majax 2014-12-23 11:11:20 -08:00
Kyle Machulis
ea44d7904f Bug 1112936 - Enable settings API tests on e10s; r=gwagner r=bent r=gerard-majax
--HG--
extra : rebase_source : c5532dc6968c317e72399040a3024b6a22df0df8
2014-12-22 09:38:01 -08:00
Ryan VanderMeulen
e74a8fc1d1 Merge inbound to m-c. a=merge 2014-12-18 17:59:14 -05:00
Kyle Machulis
270a684d66 Bug 1110872 - Readd cleanup for live locks in SettingsManager; r=gerard-majax 2014-12-18 09:27:06 -08:00
Alexandre Lissy
17c05a60ab Bug 1110063 - Open readonly transaction for settings lock when possible. r=qdot
Whenever a settings lock does only read operations (i.e. lock.get()),
there is no need that the underlying indexedDB transaction should be
opened as readwrite. Doing so, we will be able to parallelize some
request and avoid locking that should in the end allow for faster
operations. Enabling this feature is controlled by the preference
dom.mozSettings.allowForceReadOnly, defaulting to false for now.
2014-12-17 09:30:00 -05:00
Alexandre Lissy
2307cf43b4 Bug 1109704 - Expose details settings informations in about:memory. r=qdot
We want to have a better breakdown of how many get/set operations we are
doing for each setting lock. Given that we keep track of all locks, this
may consume quite some memory, so we introduce a new preference to
enable this feature. We also add memory reporting for the SettingService
lock.
2014-12-17 10:40:00 -05:00
Alexandre Lissy
51143af486 Bug 1110091 - Fix mozSettings logging use of Services. r=qdot 2014-12-11 03:32:00 +01:00
Kyle Machulis
0636c32ce5 Bug 1105511 - Make observer principal cache name reflect content; r=gerard-majax 2014-12-09 13:53:20 -08:00
Kyle Machulis
acc7048fe4 Bug 1105511 - Store principals with locks instead of with tasks; r=gerard-majax 2014-12-09 13:53:04 -08:00
Kyle Machulis
ac9724ff1e Bug 1105511 - Check validity of principals before doing permissions check; r=gerard-majax 2014-12-09 13:52:46 -08:00
L. David Baron
568297df70 Bug 1106324 - Call removeLock in case where the call was missing. r=qdot
While I was debugging bug 1105511, khuey noticed that one case was
missing a removeLock call.  We should add it; it seems like if we ever
hit this error case, the settings lock queue would get stuck.  It's not
clear whether this is actually the cause of bug 1105511, so I'm putting
it in a separate bug.
2014-11-29 14:47:46 -08:00
Alexandre Lissy
7b995f0ea3 Bug 1106896 - Improve debug and error reporting in mozSettings. r=qdot
We break down the logging capabilities into two classes: debug and
verbose. Verbose will help to track everything that happens, while debug
should just report error cases. We also augment memory reports with
values to help tracking potential issues like: queue blockage, leaking,
etc.
2014-12-02 14:50:00 +01:00
Edgar Chen
4e8ea293f3 Bug 1092941 - Settings lock in parent isn't finialized when receiving 'child-process-shutdown'. r=lissyx, a=me 2014-11-03 15:15:12 +08:00
Alexandre Lissy
127bb2dc72 Bug 1092384 - Use undefined windowID for service locks r=bent
Service locks for settings are locks created from chrome code and not
attached to any window. Since the windowID is used in other cases for
the Settings:CreateLock message, we should at least pass an undefined
value to avoid unneccessary JS warning.
2014-11-04 15:08:37 -08:00
Alexandre Lissy
7413aa0cdc Bug 1082001 - Cleanup settings lock from parent itself. r=bent
From bug 1065128 SettingsManager has been changed to listen the
dom-window-destroyed event for its cleanup. However, when running Gaia
in Mulet, a race condition is exposed. For B2G, when loading a page,
about:blank is first used. This means that window destroyed events will
be triggered. However, from the dom-window-destroyed event we cannot
distinguish whether this is about:blank or a legit application being
closed. SettingsManager gets initialized (i.e., init() called) when the
application makes use of navigator.mozSettings. So the chain of event is
that we have a SettingsManager living because System app did some
request. At this time, about:blank is being unloaded and triggers a
dom-window-destroyed event. This makes SettingsManager doing its
cleanup, especially freeing the window reference. Then in the meantime,
we have the navigator.mozSettings use that is progressing. At some
point, SettingsManager has no more window to send messages to, and Gaia
is not able to even start.

SettingsRequestManager lives on the parent process and SettingsManager
lives on the child side. Part of the cleanup performed by
SettingsManager was to ensure pending locks on the parent process would
be forced to finalize to make sure those are being properly committed.
We move this cleanup to SettingsRequestManager and we augment the lock
informations with the proper inner window id. This way we can track
which lock is attached to which inner window when the lock gets created.
And thus we can listen on inner-window-destroyed from
SettingsRequestManager to be able to force finalize on any pending lock.
Impacted code path are those were we are not running out of process.
When we are running out of process, SettingsRequestManager already
listens on the child-process-shutdown event to perform the lock
finalization.
2014-10-29 02:36:00 -04:00
Gregor Wagner
119c8d2cb4 Bug 1080847 - [Settings] No need to export SettingsRequestManager r=baku 2014-10-21 13:48:42 -07:00
Alexandre Lissy
2373f7c83f Bug 1076597 - Fix Settings API shutdown race condition. r=bent
When child message manager dies, it sends a child-process-shutdown
message to the SettingsRequestManager. This would just close the locks
and tasks of this message manager. The race happens when some
applications can shutdown quickly: settings requests will never be
committed to the database. One example is the callscreen. The fix,
provided by qDot, simply put those tasks in a finalize state to make
sure they are properly executed and committed.
2014-10-09 05:12:00 -04:00
Ryan VanderMeulen
67e6833bd6 Backed out changeset 69866036d793 (bug 1076597) for being the wrong patch that landed. 2014-10-21 10:12:56 -04:00
Kyle Machulis
5fbfd60a9d Bug 1073259 - Print more descriptive errors when SettingsManager tries to make a request with an invalid window. r=bent 2014-10-17 05:24:00 -04:00
Alexandre Lissy
343378644a Bug 1076597 - Fix Settings API shutdown race condition. r=bent 2014-10-07 06:35:00 -04:00
Andrea Marchesini
7491bee8c3 Bug 1047483 - patch 1 - Porting DOMFile/DOMBlob to WebIDL, r=bz, r=bkelly, r=bholley 2014-10-08 17:15:22 +01:00
Ryan VanderMeulen
cd3e8a6f73 Backed out 7 changesets (bug 1047483, bug 1079301, bug 1079335) for webplatform test failures.
Backed out changeset 7d06b68c44d0 (bug 1079335)
Backed out changeset 92030169528e (bug 1079301)
Backed out changeset c09d7f95554a (bug 1047483)
Backed out changeset c199f1057d7e (bug 1047483)
Backed out changeset 18830d07884c (bug 1047483)
Backed out changeset e087289ccfbb (bug 1047483)
Backed out changeset 6238ff5d3ed0 (bug 1047483)

CLOSED TREE

--HG--
rename : content/base/public/File.h => content/base/public/nsDOMFile.h
rename : content/base/src/MultipartFileImpl.cpp => content/base/src/nsDOMBlobBuilder.cpp
rename : content/base/src/MultipartFileImpl.h => content/base/src/nsDOMBlobBuilder.h
rename : content/base/src/File.cpp => content/base/src/nsDOMFile.cpp
2014-10-07 13:16:11 -04:00
Andrea Marchesini
d272279126 Bug 1047483 - patch 1 - Porting DOMFile/DOMBlob to WebIDL, r=bz, r=bkelly, r=bholley 2014-10-07 15:20:52 +01:00
Ting-Yu Chou
149aa09b67 Bug 1064800 - Catch exception from sending message to prevent interrupting execution. r=khuey 2014-10-02 10:57:48 +08:00
Mike Habicher
c0376bc34a Bug 1053966 - move mozsettings-changed Observer info from aSubject to aData, r=bz,qDot 2014-09-16 13:15:16 -04:00
Kyle Machulis
0b5f5b17f3 Bug 1071721 - Call destroyDOMRequestHelper on SettingsLock after transaction ends; r=bent 2014-09-23 13:13:50 -07:00
Kyle Machulis
4cb996a29c Bug 1069605 - Make sure settings lock exists before trying to remove it; r=bent 2014-09-18 17:23:27 -07:00
Kyle Machulis
abed0464a7 Bug 1069605 - Only send messages in SettingsLocks when window is live; r=bent 2014-09-18 17:23:00 -07:00
Kyle Machulis
e752fcb527 Bug 1068962 - Fix task cleanup on settings locks where finalize has already been called; r=bent
--HG--
extra : rebase_source : 18992e6c2e0277d2866fe92048b52a0a55a55ee6
2014-09-18 13:43:40 -07:00
Kyle Machulis
f52164c1b5 Bug 1068962 - Fix settings lock ownership array splice; r=bent
--HG--
extra : rebase_source : 0374ddeaffe0936ac7bb78aff0fc5b3a467c3bd1
2014-09-18 10:08:36 -07:00
Ryan VanderMeulen
d3fce43e7e Backed out changeset ed586ca080c0 (bug 1053966) for the same Mnw permafails it was backed out for previously. 2014-09-16 16:54:25 -04:00
Mike Habicher
e9ff4e12a0 Bug 1053966 - move mozsettings-changed Observer info from aSubject to aData, r=bz,qDot 2014-09-16 13:15:16 -04:00
Kyle Machulis
ce3b825689 Bug 1065128 - Fix SettingsRequestManager storage of MessageManager Principals; r=bent 2014-09-15 13:39:20 -07:00
Kyle Machulis
10c38bbb14 Bug 1065128 - Make SettingsManager use dom-window-destroyed for shutdown; r=bent 2014-09-15 13:39:20 -07:00
Kyle Machulis
b979b13529 Bug 1061805 - Make sure Settings API only calls finalize once; r=bent 2014-09-15 09:29:29 -07:00
Kyle Machulis
ac100d8a06 Bug 1062087 - Fix undefined variable error messages in Settings API; r=bent 2014-09-05 18:39:54 -07:00
Kyle Machulis
086f4f8e2b Bug 1061510 - Make settings api always check principals for permissions; r=bent
--HG--
extra : rebase_source : ece6c6808f391f5dd0661cb3c7acbc942d8bb4ac
2014-09-04 11:15:10 -07:00
Kevin Grandon
85f5f1661a Bug 1061902 - [SettingsDB] Bump version number. r=gwagner 2014-09-02 13:40:00 +02:00
Kyle Machulis
37040d9da2 Bug 1060934 - Remove SettingsQueue.jsm file; r=fabrice a=2.1 2014-08-31 14:42:47 -07:00
Kyle Machulis
d135eae513 Bug 1060691 - Fix error message comparison test; a=kwierso 2014-08-29 18:09:46 -07:00
Kyle Machulis
54c4948e67 Bug 1060691 - Clean up settings api debug messages; r=gwagner a=2.1 2014-08-29 16:36:02 -07:00
Kyle Machulis
672ec602c2 Bug 1015518 - Update SettingsService mochitests; r=bent 2014-08-27 21:01:31 -07:00
Kyle Machulis
8ae0266d8f Bug 1015518 - Use SettingsRequestManager as SettingsService Backend; r=bent 2014-08-27 21:01:31 -07:00
Kyle Machulis
1a050f739f Bug 900551 - Mochitests for settings permissions; r=bent r=ehsan 2014-08-27 21:01:30 -07:00
Kyle Machulis
7d5df891b8 bug 900551 - Settings API OOP; r=bent 2014-08-27 21:01:29 -07:00
Kyle Machulis
5738eae835 Bug 846200 - Update mochitests to use new settings-api permissions; r=bent
--HG--
extra : rebase_source : edf9accf26a49a541c2f87847c2fe89c42a20fd6
2014-08-27 21:01:29 -07:00