Commit Graph

86 Commits

Author SHA1 Message Date
Alexandre Lissy
f192147450 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
Kyle Machulis
a9fec39fea Bug 1110872 - Readd cleanup for live locks in SettingsManager; r=gerard-majax 2014-12-18 09:27:06 -08:00
Alexandre Lissy
669c71b068 Bug 1110091 - Fix mozSettings logging use of Services. r=qdot 2014-12-11 03:32:00 +01:00
Alexandre Lissy
55d2982a3c 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
Alexandre Lissy
43d050d2e9 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
Kyle Machulis
b30034dbd2 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
Kyle Machulis
8372df97c8 Bug 1071721 - Call destroyDOMRequestHelper on SettingsLock after transaction ends; r=bent 2014-09-23 13:13:50 -07:00
Kyle Machulis
e69413acee Bug 1069605 - Only send messages in SettingsLocks when window is live; r=bent 2014-09-18 17:23:00 -07:00
Kyle Machulis
dcf1ed8fd1 Bug 1068962 - Fix settings lock ownership array splice; r=bent 2014-09-18 10:08:36 -07:00
Kyle Machulis
7c08fcf10b Bug 1065128 - Make SettingsManager use dom-window-destroyed for shutdown; r=bent 2014-09-15 13:39:20 -07:00
Kyle Machulis
490a5b5fe0 Bug 1061805 - Make sure Settings API only calls finalize once; r=bent 2014-09-15 09:29:29 -07:00
Kyle Machulis
3ad2b857c6 Bug 1062087 - Fix undefined variable error messages in Settings API; r=bent 2014-09-05 18:39:54 -07:00
Kyle Machulis
64733ef6b2 Bug 1015518 - Use SettingsRequestManager as SettingsService Backend; r=bent 2014-08-27 21:01:31 -07:00
Kyle Machulis
4d8c8fc9c2 bug 900551 - Settings API OOP; r=bent 2014-08-27 21:01:29 -07:00
Kyle Machulis
13b5306f3a Bug 846200 - Support for granting settings permissions on a per-permission basis; r=bent 2014-08-27 21:01:29 -07:00
Ryan VanderMeulen
81bb8352e4 Backed out 11 changesets (bug 1059079, bug 1015518, bug 900551, bug 846200) for Gaia UI test failures on a CLOSED TREE.
Backed out changeset d85b4e48b3b4 (bug 1015518)
Backed out changeset 663b73ba69ec (bug 1015518)
Backed out changeset 5cf1cb5fa022 (bug 900551)
Backed out changeset b953dd5bfdaa (bug 900551)
Backed out changeset a2b6d7c84100 (bug 900551)
Backed out changeset ceb79fe83d15 (bug 900551)
Backed out changeset f6acf344fbf0 (bug 900551)
Backed out changeset fa269ea53937 (bug 846200)
Backed out changeset b89c84a850f9 (bug 846200)
Backed out changeset b7a7dfbe4e3f (bug 846200)
Backed out changeset c6f54d821c11 (bug 1059079)
2014-08-28 12:49:49 -04:00
Kyle Machulis
87bef8cc27 Bug 1015518 - Use SettingsRequestManager as SettingsService Backend; r=bent 2014-08-27 21:01:31 -07:00
Kyle Machulis
b51876190d Bug 900551 - Settings API OOP; r=bent 2014-08-27 21:01:29 -07:00
Kyle Machulis
f370e0e095 Bug 846200 - Support for granting settings permissions on a per-permission basis; r=bent 2014-08-27 21:01:29 -07:00
Edgar Chen
4cf68374d7 Bug 1053733 - SettingsManager sends register message to SettingsChangeNotifier again when receives Settings:Notifier:Init:OK. r=qdot 2014-08-14 12:17:39 +08:00
Kyle Machulis
ec36d03ad0 Backed out d71120161e89 b5d49f1885af (bug 846200) due to missing xpc shell test fix patch 2014-08-20 12:01:18 -07:00
Kyle Machulis
f2783b8003 Bug 846200 - Support for granting settings permissions on a per-permission basis 2014-08-20 10:40:37 -07:00
Ed Morley
f4e5cbdd56 Backed out changeset a880d4e0d656 (bug 846200) for xpcshell failures in test_bug808734.js; CLOSED TREE 2014-08-19 09:17:30 +01:00
Kyle Machulis
48c4dd4455 Bug 846200 - Support for granting settings permissions on a per-permission basis; r=bent 2014-08-18 22:06:54 -07:00
Andrea Marchesini
cf22f20b19 Bug 1046839 - Unnecessary double cloneInto in mozSettings, r=bholley 2014-07-31 17:46:23 +01:00
Nicholas Nethercote
7b107d5931 Bug 1010064 - Allow memory reports to be anonymized. r=bsmedberg. 2014-05-20 23:06:54 -07:00
Gijs Kruitbosch
aa9265661a Bug 1022003 - remove ObjectWrapper.jsm, r=bholley,gwagner 2014-06-10 16:15:42 +01:00
Ben Turner
a5c580f4f7 Bug 980549 - Simplify SettingsManager transaction management, r=gwagner. 2014-05-06 14:14:23 -07:00
Kyle Huey
8abf2733ab Bug 993203: Add a memory reporter to count SettingsManager observers. r=njn 2014-04-08 16:37:09 -07:00
Fabrice Desré
8425ab266c Bug 966502 - Use Cu.cloneInto() instead of ObjectWrapper.jsm r=baku 2014-02-01 11:06:59 -08:00
Gregor Wagner
fb25b05366 Bug 921721 - NS_ERROR_UNEXPECTED in airplane_mode.js when restarting B2G. r=bent 2013-11-01 07:54:21 -07:00
Jan Varga
86fb699d45 Bug 832883 - Move IDBKeyRange to WebIDL and define indexedDB/IDBKeyRange in all the spots. r=khuey,bent (initial work done by Ms2ger) 2013-09-28 13:25:46 +02:00
Fabrice Desré
5a5e06da4e Bug 806374 - Don't store phone's wallpaper or the dialer ringtone or the notification ringtone as a data: URI in the settings DB r=gwagner 2013-08-11 08:41:59 -07:00
Reuben Morais
d0f0391646 Bug 894964 - Stop throwing on navigator.mozSettings access if the page does not have settings permission. r=gwagner 2013-07-17 13:32:39 -07:00
Reuben Morais
ef61db520e Bug 889503 - Move Settings API to WebIDL. r=gwagner r=bz 2013-07-15 18:17:46 -07:00
Gregor Wagner
f92ba2b6b9 Bug 872983 - event.settingValue in mozSettings.onsettingchange gives wrong value. r=fabrice 2013-05-31 11:42:10 -04:00
Gregor Wagner
2a7127b6e6 Bug 859601 - mozSetting API - return undefined if the API is unsupported on the platform, not null. r=bent 2013-04-11 20:40:44 -07:00
Reuben Morais
bd23809075 Bug 821630 - Fix retrieving blobs with get() in Settings API. r=gwagner 2013-03-11 22:31:15 -07:00
Reuben Morais
62e3171510 Bug 849616 - Use ObjectWrapper.jsm instead of __exposedProps__ in Settings API. r=gwagner 2013-03-11 22:31:19 -07:00
Reuben Morais
020bbb69e8 Backed out changeset e56f3e0f00d9 (Bug 821630) for B2G mochitest failures 2013-03-12 02:14:46 -07:00
Reuben Morais
8b25729485 Bug 821630 - Fix retrieving blobs with get() in Settings API. r=gwagner 2013-03-11 22:31:15 -07:00
Reuben Morais
07d0a43280 Bug 793239 - SettingsLock should have a state property to indicate if it is still valid; r=gwagner 2013-01-15 22:32:49 -05:00
Ehsan Akhgari
b10286dd5a Backed out changeset 89942aa8ae6a (bug 793239) because of mochitest-3 failure 2013-01-15 20:48:34 -05:00
Reuben Morais
e35656a2be Bug 793239 - SettingsLock should have a state property to indicate if it is still valid. r=gwagner 2013-01-15 16:32:15 -08:00
Gregor Wagner
0624044505 Bug 821814 - Followup: disable debug flag. r=me 2013-01-07 16:16:17 +01:00
Gregor Wagner
fa5b4e3d21 Bug 827237 - Wifi: ap list in settings is empty. r=bent 2013-01-07 15:03:26 +01:00
Gregor Wagner
c47b4d282f Bug 821814 - Settings: upgrade settings DB after settings.json changed. r=bent 2013-01-04 16:04:28 -08:00
Gregor Wagner
ef996d6c70 Bug 821510 - Settings: remove debug statements. r=sicking 2012-12-14 10:20:16 -08:00
Gregor Wagner
dbd04ae234 Bug 821484 - ASSERTION: mDone shouldn't have been set to true already!: '!mDone', file dom/base/DOMRequest.cpp, line 113. r=sicking 2012-12-13 16:46:13 -08:00
Gregor Wagner
b8f5d300ec Bug 815398 - Settings: set navigator.mozSettings to null if we don't have read or write permission. r=bent 2012-11-26 15:33:34 -08:00