| author | Wes Kocher <wkocher@mozilla.com> |
| Mon, 05 Jan 2015 17:08:49 -0800 | |
| changeset 222089 | 2a193b7f395c8e6f3c21e83777ce2f540e4c04fe |
| parent 213975 | ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b |
| child 234606 | 687b6a735b3420cfa16cc30b55d7fd447e528fa5 |
| permissions | -rw-r--r-- |
|
190623
69d61e42d5dfbf4588b72449249ff3e7f2125304
Bug 914753: Make Emacs file variable header lines correct, or at least consistent. DONTBUILD r=ehsan
Jim Blandy <jimb@mozilla.com>
parents:
160657
diff
changeset
|
1 |
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
2 |
* vim: sw=2 ts=2 sts=2 expandtab filetype=javascript |
|
94475
f4157e8c410708d76703f19e4dfb61859bfe32d8
Bug 716478 - update licence to MPL 2.
Gervase Markham <gerv@gerv.net>
parents:
91533
diff
changeset
|
3 |
* This Source Code Form is subject to the terms of the Mozilla Public |
|
f4157e8c410708d76703f19e4dfb61859bfe32d8
Bug 716478 - update licence to MPL 2.
Gervase Markham <gerv@gerv.net>
parents:
91533
diff
changeset
|
4 |
* License, v. 2.0. If a copy of the MPL was not distributed with this |
|
f4157e8c410708d76703f19e4dfb61859bfe32d8
Bug 716478 - update licence to MPL 2.
Gervase Markham <gerv@gerv.net>
parents:
91533
diff
changeset
|
5 |
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
6 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
7 |
const Cc = Components.classes; |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
8 |
const Ci = Components.interfaces; |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
9 |
const Cr = Components.results; |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
10 |
const Cu = Components.utils; |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
11 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
12 |
Cu.import("resource://gre/modules/XPCOMUtils.jsm"); |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
13 |
Cu.import("resource://gre/modules/Services.jsm"); |
|
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
14 |
Cu.import("resource://gre/modules/PlacesUtils.jsm"); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
15 |
|
|
111947
5ce71981e005a52d4cb0b831ad3db9284f2fb356
Bug 798491: Add an option to stick all chrome JSMs/JS components in the same compartment. r=mrbkap,philikon
Kyle Huey <khuey@kylehuey.com>
parents:
111876
diff
changeset
|
16 |
this.EXPORTED_SYMBOLS = [ "PlacesDBUtils" ]; |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
17 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
18 |
//////////////////////////////////////////////////////////////////////////////// |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
19 |
//// Constants |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
20 |
|
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
21 |
const FINISHED_MAINTENANCE_TOPIC = "places-maintenance-finished"; |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
22 |
|
|
78371
b16c81fc5e94fa7ac444a4e105d54f51fe292f30
Bug 689142 - Places telemetry gets lost, due to being collected on idle-daily.
Marco Bonardo <mbonardo@mozilla.com>
parents:
76195
diff
changeset
|
23 |
const BYTES_PER_MEBIBYTE = 1048576; |
|
b16c81fc5e94fa7ac444a4e105d54f51fe292f30
Bug 689142 - Places telemetry gets lost, due to being collected on idle-daily.
Marco Bonardo <mbonardo@mozilla.com>
parents:
76195
diff
changeset
|
24 |
|
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
25 |
//////////////////////////////////////////////////////////////////////////////// |
|
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
26 |
//// Smart getters |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
27 |
|
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
28 |
XPCOMUtils.defineLazyGetter(this, "DBConn", function() { |
|
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
29 |
return PlacesUtils.history.QueryInterface(Ci.nsPIPlacesDatabase).DBConnection; |
|
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
30 |
}); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
31 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
32 |
//////////////////////////////////////////////////////////////////////////////// |
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
33 |
//// PlacesDBUtils |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
34 |
|
|
111947
5ce71981e005a52d4cb0b831ad3db9284f2fb356
Bug 798491: Add an option to stick all chrome JSMs/JS components in the same compartment. r=mrbkap,philikon
Kyle Huey <khuey@kylehuey.com>
parents:
111876
diff
changeset
|
35 |
this.PlacesDBUtils = { |
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
36 |
/** |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
37 |
* Executes a list of maintenance tasks. |
|
106894
7530e96d9af635c68430a1d1cd97f67f74efaa0d
Bug 751813 - Stop spewing to the console about Places Maintenance.
Marco Bonardo <mbonardo@mozilla.com>
parents:
94475
diff
changeset
|
38 |
* Once finished it will pass a array log to the callback attached to tasks. |
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
39 |
* FINISHED_MAINTENANCE_TOPIC is notified through observer service on finish. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
40 |
* |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
41 |
* @param aTasks |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
42 |
* Tasks object to execute. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
43 |
*/ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
44 |
_executeTasks: function PDBU__executeTasks(aTasks) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
45 |
{ |
|
85528
91cbd6eb803c5d679c812eeec40e25c4c79ba976
Bug 719438 - PDBU_maintenanceOnIdle can try use the places database after it is closed. r=mak.
Rafael Ávila de Espíndola <respindola@mozilla.com>
parents:
83908
diff
changeset
|
46 |
if (PlacesDBUtils._isShuttingDown) { |
|
86187
a31efbfbba7bbcff4b06884c68d5b00193e12da3
Bug 723126 - Telemetry for time needed for idle maintenance.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86059
diff
changeset
|
47 |
aTasks.log("- We are shutting down. Will not schedule the tasks."); |
|
85528
91cbd6eb803c5d679c812eeec40e25c4c79ba976
Bug 719438 - PDBU_maintenanceOnIdle can try use the places database after it is closed. r=mak.
Rafael Ávila de Espíndola <respindola@mozilla.com>
parents:
83908
diff
changeset
|
48 |
aTasks.clear(); |
|
91cbd6eb803c5d679c812eeec40e25c4c79ba976
Bug 719438 - PDBU_maintenanceOnIdle can try use the places database after it is closed. r=mak.
Rafael Ávila de Espíndola <respindola@mozilla.com>
parents:
83908
diff
changeset
|
49 |
} |
|
91cbd6eb803c5d679c812eeec40e25c4c79ba976
Bug 719438 - PDBU_maintenanceOnIdle can try use the places database after it is closed. r=mak.
Rafael Ávila de Espíndola <respindola@mozilla.com>
parents:
83908
diff
changeset
|
50 |
|
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
51 |
let task = aTasks.pop(); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
52 |
if (task) { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
53 |
task.call(PlacesDBUtils, aTasks); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
54 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
55 |
else { |
|
86187
a31efbfbba7bbcff4b06884c68d5b00193e12da3
Bug 723126 - Telemetry for time needed for idle maintenance.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86059
diff
changeset
|
56 |
// All tasks have been completed. |
|
a31efbfbba7bbcff4b06884c68d5b00193e12da3
Bug 723126 - Telemetry for time needed for idle maintenance.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86059
diff
changeset
|
57 |
// Telemetry the time it took for maintenance, if a start time exists. |
|
a31efbfbba7bbcff4b06884c68d5b00193e12da3
Bug 723126 - Telemetry for time needed for idle maintenance.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86059
diff
changeset
|
58 |
if (aTasks._telemetryStart) { |
|
a31efbfbba7bbcff4b06884c68d5b00193e12da3
Bug 723126 - Telemetry for time needed for idle maintenance.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86059
diff
changeset
|
59 |
Services.telemetry.getHistogramById("PLACES_IDLE_MAINTENANCE_TIME_MS") |
|
a31efbfbba7bbcff4b06884c68d5b00193e12da3
Bug 723126 - Telemetry for time needed for idle maintenance.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86059
diff
changeset
|
60 |
.add(Date.now() - aTasks._telemetryStart); |
|
a31efbfbba7bbcff4b06884c68d5b00193e12da3
Bug 723126 - Telemetry for time needed for idle maintenance.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86059
diff
changeset
|
61 |
aTasks._telemetryStart = 0; |
|
a31efbfbba7bbcff4b06884c68d5b00193e12da3
Bug 723126 - Telemetry for time needed for idle maintenance.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86059
diff
changeset
|
62 |
} |
|
a31efbfbba7bbcff4b06884c68d5b00193e12da3
Bug 723126 - Telemetry for time needed for idle maintenance.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86059
diff
changeset
|
63 |
|
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
64 |
if (aTasks.callback) { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
65 |
let scope = aTasks.scope || Cu.getGlobalForObject(aTasks.callback); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
66 |
aTasks.callback.call(scope, aTasks.messages); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
67 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
68 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
69 |
// Notify observers that maintenance finished. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
70 |
Services.prefs.setIntPref("places.database.lastMaintenance", parseInt(Date.now() / 1000)); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
71 |
Services.obs.notifyObservers(null, FINISHED_MAINTENANCE_TOPIC, null); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
72 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
73 |
}, |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
74 |
|
|
85528
91cbd6eb803c5d679c812eeec40e25c4c79ba976
Bug 719438 - PDBU_maintenanceOnIdle can try use the places database after it is closed. r=mak.
Rafael Ávila de Espíndola <respindola@mozilla.com>
parents:
83908
diff
changeset
|
75 |
_isShuttingDown : false, |
|
91cbd6eb803c5d679c812eeec40e25c4c79ba976
Bug 719438 - PDBU_maintenanceOnIdle can try use the places database after it is closed. r=mak.
Rafael Ávila de Espíndola <respindola@mozilla.com>
parents:
83908
diff
changeset
|
76 |
shutdown: function PDBU_shutdown() { |
|
91cbd6eb803c5d679c812eeec40e25c4c79ba976
Bug 719438 - PDBU_maintenanceOnIdle can try use the places database after it is closed. r=mak.
Rafael Ávila de Espíndola <respindola@mozilla.com>
parents:
83908
diff
changeset
|
77 |
PlacesDBUtils._isShuttingDown = true; |
|
91cbd6eb803c5d679c812eeec40e25c4c79ba976
Bug 719438 - PDBU_maintenanceOnIdle can try use the places database after it is closed. r=mak.
Rafael Ávila de Espíndola <respindola@mozilla.com>
parents:
83908
diff
changeset
|
78 |
}, |
|
91cbd6eb803c5d679c812eeec40e25c4c79ba976
Bug 719438 - PDBU_maintenanceOnIdle can try use the places database after it is closed. r=mak.
Rafael Ávila de Espíndola <respindola@mozilla.com>
parents:
83908
diff
changeset
|
79 |
|
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
80 |
/** |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
81 |
* Executes integrity check and common maintenance tasks. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
82 |
* |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
83 |
* @param [optional] aCallback |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
84 |
* Callback to be invoked when done. The callback will get a array |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
85 |
* of log messages. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
86 |
* @param [optional] aScope |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
87 |
* Scope for the callback. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
88 |
*/ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
89 |
maintenanceOnIdle: function PDBU_maintenanceOnIdle(aCallback, aScope) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
90 |
{ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
91 |
let tasks = new Tasks([ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
92 |
this.checkIntegrity |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
93 |
, this.checkCoherence |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
94 |
, this._refreshUI |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
95 |
]); |
|
86187
a31efbfbba7bbcff4b06884c68d5b00193e12da3
Bug 723126 - Telemetry for time needed for idle maintenance.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86059
diff
changeset
|
96 |
tasks._telemetryStart = Date.now(); |
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
97 |
tasks.callback = aCallback; |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
98 |
tasks.scope = aScope; |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
99 |
this._executeTasks(tasks); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
100 |
}, |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
101 |
|
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
102 |
/** |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
103 |
* Executes integrity check, common and advanced maintenance tasks (like |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
104 |
* expiration and vacuum). Will also collect statistics on the database. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
105 |
* |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
106 |
* @param [optional] aCallback |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
107 |
* Callback to be invoked when done. The callback will get a array |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
108 |
* of log messages. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
109 |
* @param [optional] aScope |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
110 |
* Scope for the callback. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
111 |
*/ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
112 |
checkAndFixDatabase: function PDBU_checkAndFixDatabase(aCallback, aScope) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
113 |
{ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
114 |
let tasks = new Tasks([ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
115 |
this.checkIntegrity |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
116 |
, this.checkCoherence |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
117 |
, this.expire |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
118 |
, this.vacuum |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
119 |
, this.stats |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
120 |
, this._refreshUI |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
121 |
]); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
122 |
tasks.callback = aCallback; |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
123 |
tasks.scope = aScope; |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
124 |
this._executeTasks(tasks); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
125 |
}, |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
126 |
|
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
127 |
/** |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
128 |
* Forces a full refresh of Places views. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
129 |
* |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
130 |
* @param [optional] aTasks |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
131 |
* Tasks object to execute. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
132 |
*/ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
133 |
_refreshUI: function PDBU__refreshUI(aTasks) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
134 |
{ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
135 |
let tasks = new Tasks(aTasks); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
136 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
137 |
// Send batch update notifications to update the UI. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
138 |
PlacesUtils.history.runInBatchMode({ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
139 |
runBatched: function (aUserData) {} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
140 |
}, null); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
141 |
PlacesDBUtils._executeTasks(tasks); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
142 |
}, |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
143 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
144 |
_handleError: function PDBU__handleError(aError) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
145 |
{ |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
146 |
Cu.reportError("Async statement execution returned with '" + |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
147 |
aError.result + "', '" + aError.message + "'"); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
148 |
}, |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
149 |
|
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
150 |
/** |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
151 |
* Tries to execute a REINDEX on the database. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
152 |
* |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
153 |
* @param [optional] aTasks |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
154 |
* Tasks object to execute. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
155 |
*/ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
156 |
reindex: function PDBU_reindex(aTasks) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
157 |
{ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
158 |
let tasks = new Tasks(aTasks); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
159 |
tasks.log("> Reindex"); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
160 |
|
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
161 |
let stmt = DBConn.createAsyncStatement("REINDEX"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
162 |
stmt.executeAsync({ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
163 |
handleError: PlacesDBUtils._handleError, |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
164 |
handleResult: function () {}, |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
165 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
166 |
handleCompletion: function (aReason) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
167 |
{ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
168 |
if (aReason == Ci.mozIStorageStatementCallback.REASON_FINISHED) { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
169 |
tasks.log("+ The database has been reindexed"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
170 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
171 |
else { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
172 |
tasks.log("- Unable to reindex database"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
173 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
174 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
175 |
PlacesDBUtils._executeTasks(tasks); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
176 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
177 |
}); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
178 |
stmt.finalize(); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
179 |
}, |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
180 |
|
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
181 |
/** |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
182 |
* Checks integrity but does not try to fix the database through a reindex. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
183 |
* |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
184 |
* @param [optional] aTasks |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
185 |
* Tasks object to execute. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
186 |
*/ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
187 |
_checkIntegritySkipReindex: function PDBU__checkIntegritySkipReindex(aTasks) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
188 |
this.checkIntegrity(aTasks, true), |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
189 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
190 |
/** |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
191 |
* Checks integrity and tries to fix the database through a reindex. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
192 |
* |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
193 |
* @param [optional] aTasks |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
194 |
* Tasks object to execute. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
195 |
* @param [optional] aSkipdReindex |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
196 |
* Whether to try to reindex database or not. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
197 |
*/ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
198 |
checkIntegrity: function PDBU_checkIntegrity(aTasks, aSkipReindex) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
199 |
{ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
200 |
let tasks = new Tasks(aTasks); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
201 |
tasks.log("> Integrity check"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
202 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
203 |
// Run a integrity check, but stop at the first error. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
204 |
let stmt = DBConn.createAsyncStatement("PRAGMA integrity_check(1)"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
205 |
stmt.executeAsync({ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
206 |
handleError: PlacesDBUtils._handleError, |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
207 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
208 |
_corrupt: false, |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
209 |
handleResult: function (aResultSet) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
210 |
{ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
211 |
let row = aResultSet.getNextRow(); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
212 |
this._corrupt = row.getResultByIndex(0) != "ok"; |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
213 |
}, |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
214 |
|
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
215 |
handleCompletion: function (aReason) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
216 |
{ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
217 |
if (aReason == Ci.mozIStorageStatementCallback.REASON_FINISHED) { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
218 |
if (this._corrupt) { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
219 |
tasks.log("- The database is corrupt"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
220 |
if (aSkipReindex) { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
221 |
tasks.log("- Unable to fix corruption, database will be replaced on next startup"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
222 |
Services.prefs.setBoolPref("places.database.replaceOnStartup", true); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
223 |
tasks.clear(); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
224 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
225 |
else { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
226 |
// Try to reindex, this often fixed simple indices corruption. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
227 |
// We insert from the top of the queue, they will run inverse. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
228 |
tasks.push(PlacesDBUtils._checkIntegritySkipReindex); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
229 |
tasks.push(PlacesDBUtils.reindex); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
230 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
231 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
232 |
else { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
233 |
tasks.log("+ The database is sane"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
234 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
235 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
236 |
else { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
237 |
tasks.log("- Unable to check database status"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
238 |
tasks.clear(); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
239 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
240 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
241 |
PlacesDBUtils._executeTasks(tasks); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
242 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
243 |
}); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
244 |
stmt.finalize(); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
245 |
}, |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
246 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
247 |
/** |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
248 |
* Checks data coherence and tries to fix most common errors. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
249 |
* |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
250 |
* @param [optional] aTasks |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
251 |
* Tasks object to execute. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
252 |
*/ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
253 |
checkCoherence: function PDBU_checkCoherence(aTasks) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
254 |
{ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
255 |
let tasks = new Tasks(aTasks); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
256 |
tasks.log("> Coherence check"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
257 |
|
|
86337
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
258 |
let stmts = PlacesDBUtils._getBoundCoherenceStatements(); |
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
259 |
DBConn.executeAsync(stmts, stmts.length, { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
260 |
handleError: PlacesDBUtils._handleError, |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
261 |
handleResult: function () {}, |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
262 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
263 |
handleCompletion: function (aReason) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
264 |
{ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
265 |
if (aReason == Ci.mozIStorageStatementCallback.REASON_FINISHED) { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
266 |
tasks.log("+ The database is coherent"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
267 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
268 |
else { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
269 |
tasks.log("- Unable to check database coherence"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
270 |
tasks.clear(); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
271 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
272 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
273 |
PlacesDBUtils._executeTasks(tasks); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
274 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
275 |
}); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
276 |
stmts.forEach(function (aStmt) aStmt.finalize()); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
277 |
}, |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
278 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
279 |
_getBoundCoherenceStatements: function PDBU__getBoundCoherenceStatements() |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
280 |
{ |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
281 |
let cleanupStatements = []; |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
282 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
283 |
// MOZ_ANNO_ATTRIBUTES |
|
76195
4ce9a64d1ddfe3ef353130e4d310039c898f846e
Bug 615413 - Part 1: Clear out old weave/ and sync/ annotations. r=mak
Richard Newman <rnewman@mozilla.com>
parents:
73637
diff
changeset
|
284 |
// A.1 remove obsolete annotations from moz_annos. |
|
4ce9a64d1ddfe3ef353130e4d310039c898f846e
Bug 615413 - Part 1: Clear out old weave/ and sync/ annotations. r=mak
Richard Newman <rnewman@mozilla.com>
parents:
73637
diff
changeset
|
285 |
// The 'weave0' idiom exploits character ordering (0 follows /) to |
|
4ce9a64d1ddfe3ef353130e4d310039c898f846e
Bug 615413 - Part 1: Clear out old weave/ and sync/ annotations. r=mak
Richard Newman <rnewman@mozilla.com>
parents:
73637
diff
changeset
|
286 |
// efficiently select all annos with a 'weave/' prefix. |
|
4ce9a64d1ddfe3ef353130e4d310039c898f846e
Bug 615413 - Part 1: Clear out old weave/ and sync/ annotations. r=mak
Richard Newman <rnewman@mozilla.com>
parents:
73637
diff
changeset
|
287 |
let deleteObsoleteAnnos = DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
288 |
`DELETE FROM moz_annos |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
289 |
WHERE anno_attribute_id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
290 |
SELECT id FROM moz_anno_attributes |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
291 |
WHERE name BETWEEN 'weave/' AND 'weave0' |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
292 |
)`); |
|
76195
4ce9a64d1ddfe3ef353130e4d310039c898f846e
Bug 615413 - Part 1: Clear out old weave/ and sync/ annotations. r=mak
Richard Newman <rnewman@mozilla.com>
parents:
73637
diff
changeset
|
293 |
cleanupStatements.push(deleteObsoleteAnnos); |
|
4ce9a64d1ddfe3ef353130e4d310039c898f846e
Bug 615413 - Part 1: Clear out old weave/ and sync/ annotations. r=mak
Richard Newman <rnewman@mozilla.com>
parents:
73637
diff
changeset
|
294 |
|
|
4ce9a64d1ddfe3ef353130e4d310039c898f846e
Bug 615413 - Part 1: Clear out old weave/ and sync/ annotations. r=mak
Richard Newman <rnewman@mozilla.com>
parents:
73637
diff
changeset
|
295 |
// A.2 remove obsolete annotations from moz_items_annos. |
|
4ce9a64d1ddfe3ef353130e4d310039c898f846e
Bug 615413 - Part 1: Clear out old weave/ and sync/ annotations. r=mak
Richard Newman <rnewman@mozilla.com>
parents:
73637
diff
changeset
|
296 |
let deleteObsoleteItemsAnnos = DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
297 |
`DELETE FROM moz_items_annos |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
298 |
WHERE anno_attribute_id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
299 |
SELECT id FROM moz_anno_attributes |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
300 |
WHERE name = 'sync/children' |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
301 |
OR name = 'placesInternal/GUID' |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
302 |
OR name BETWEEN 'weave/' AND 'weave0' |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
303 |
)`); |
|
76195
4ce9a64d1ddfe3ef353130e4d310039c898f846e
Bug 615413 - Part 1: Clear out old weave/ and sync/ annotations. r=mak
Richard Newman <rnewman@mozilla.com>
parents:
73637
diff
changeset
|
304 |
cleanupStatements.push(deleteObsoleteItemsAnnos); |
|
4ce9a64d1ddfe3ef353130e4d310039c898f846e
Bug 615413 - Part 1: Clear out old weave/ and sync/ annotations. r=mak
Richard Newman <rnewman@mozilla.com>
parents:
73637
diff
changeset
|
305 |
|
|
4ce9a64d1ddfe3ef353130e4d310039c898f846e
Bug 615413 - Part 1: Clear out old weave/ and sync/ annotations. r=mak
Richard Newman <rnewman@mozilla.com>
parents:
73637
diff
changeset
|
306 |
// A.3 remove unused attributes. |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
307 |
let deleteUnusedAnnoAttributes = DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
308 |
`DELETE FROM moz_anno_attributes WHERE id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
309 |
SELECT id FROM moz_anno_attributes n |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
310 |
WHERE NOT EXISTS |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
311 |
(SELECT id FROM moz_annos WHERE anno_attribute_id = n.id LIMIT 1) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
312 |
AND NOT EXISTS |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
313 |
(SELECT id FROM moz_items_annos WHERE anno_attribute_id = n.id LIMIT 1) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
314 |
)`); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
315 |
cleanupStatements.push(deleteUnusedAnnoAttributes); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
316 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
317 |
// MOZ_ANNOS |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
318 |
// B.1 remove annos with an invalid attribute |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
319 |
let deleteInvalidAttributeAnnos = DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
320 |
`DELETE FROM moz_annos WHERE id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
321 |
SELECT id FROM moz_annos a |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
322 |
WHERE NOT EXISTS |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
323 |
(SELECT id FROM moz_anno_attributes |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
324 |
WHERE id = a.anno_attribute_id LIMIT 1) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
325 |
)`); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
326 |
cleanupStatements.push(deleteInvalidAttributeAnnos); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
327 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
328 |
// B.2 remove orphan annos |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
329 |
let deleteOrphanAnnos = DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
330 |
`DELETE FROM moz_annos WHERE id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
331 |
SELECT id FROM moz_annos a |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
332 |
WHERE NOT EXISTS |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
333 |
(SELECT id FROM moz_places WHERE id = a.place_id LIMIT 1) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
334 |
)`); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
335 |
cleanupStatements.push(deleteOrphanAnnos); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
336 |
|
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
337 |
// Bookmarks roots |
|
27919
313b7c5a27f5949e6c7b8ebfd32c84e2b63e7b40
Bug 484019 - Fix corrupt or wrong roots titles in the database and in the Library, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
27716
diff
changeset
|
338 |
// C.1 fix missing Places root |
|
313b7c5a27f5949e6c7b8ebfd32c84e2b63e7b40
Bug 484019 - Fix corrupt or wrong roots titles in the database and in the Library, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
27716
diff
changeset
|
339 |
// Bug 477739 shows a case where the root could be wrongly removed |
|
313b7c5a27f5949e6c7b8ebfd32c84e2b63e7b40
Bug 484019 - Fix corrupt or wrong roots titles in the database and in the Library, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
27716
diff
changeset
|
340 |
// due to an endianness issue. We try to fix broken roots here. |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
341 |
let selectPlacesRoot = DBConn.createStatement( |
|
27919
313b7c5a27f5949e6c7b8ebfd32c84e2b63e7b40
Bug 484019 - Fix corrupt or wrong roots titles in the database and in the Library, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
27716
diff
changeset
|
342 |
"SELECT id FROM moz_bookmarks WHERE id = :places_root"); |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
343 |
selectPlacesRoot.params["places_root"] = PlacesUtils.placesRootId; |
|
27919
313b7c5a27f5949e6c7b8ebfd32c84e2b63e7b40
Bug 484019 - Fix corrupt or wrong roots titles in the database and in the Library, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
27716
diff
changeset
|
344 |
if (!selectPlacesRoot.executeStep()) { |
|
313b7c5a27f5949e6c7b8ebfd32c84e2b63e7b40
Bug 484019 - Fix corrupt or wrong roots titles in the database and in the Library, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
27716
diff
changeset
|
345 |
// We are missing the root, try to recreate it. |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
346 |
let createPlacesRoot = DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
347 |
`INSERT INTO moz_bookmarks (id, type, fk, parent, position, title, |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
348 |
guid) |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
349 |
VALUES (:places_root, 2, NULL, 0, 0, :title, :guid)`); |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
350 |
createPlacesRoot.params["places_root"] = PlacesUtils.placesRootId; |
|
27919
313b7c5a27f5949e6c7b8ebfd32c84e2b63e7b40
Bug 484019 - Fix corrupt or wrong roots titles in the database and in the Library, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
27716
diff
changeset
|
351 |
createPlacesRoot.params["title"] = ""; |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
352 |
createPlacesRoot.params["guid"] = PlacesUtils.bookmarks.rootGuid; |
|
27919
313b7c5a27f5949e6c7b8ebfd32c84e2b63e7b40
Bug 484019 - Fix corrupt or wrong roots titles in the database and in the Library, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
27716
diff
changeset
|
353 |
cleanupStatements.push(createPlacesRoot); |
|
313b7c5a27f5949e6c7b8ebfd32c84e2b63e7b40
Bug 484019 - Fix corrupt or wrong roots titles in the database and in the Library, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
27716
diff
changeset
|
354 |
|
|
313b7c5a27f5949e6c7b8ebfd32c84e2b63e7b40
Bug 484019 - Fix corrupt or wrong roots titles in the database and in the Library, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
27716
diff
changeset
|
355 |
// Now ensure that other roots are children of Places root. |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
356 |
let fixPlacesRootChildren = DBConn.createAsyncStatement( |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
357 |
`UPDATE moz_bookmarks SET parent = :places_root WHERE guid IN |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
358 |
( :menuGuid, :toolbarGuid, :unfiledGuid, :tagsGuid )`); |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
359 |
fixPlacesRootChildren.params["places_root"] = PlacesUtils.placesRootId; |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
360 |
fixPlacesRootChildren.params["menuGuid"] = PlacesUtils.bookmarks.menuGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
361 |
fixPlacesRootChildren.params["toolbarGuid"] = PlacesUtils.bookmarks.toolbarGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
362 |
fixPlacesRootChildren.params["unfiledGuid"] = PlacesUtils.bookmarks.unfiledGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
363 |
fixPlacesRootChildren.params["tagsGuid"] = PlacesUtils.bookmarks.tagsGuid; |
|
27919
313b7c5a27f5949e6c7b8ebfd32c84e2b63e7b40
Bug 484019 - Fix corrupt or wrong roots titles in the database and in the Library, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
27716
diff
changeset
|
364 |
cleanupStatements.push(fixPlacesRootChildren); |
|
313b7c5a27f5949e6c7b8ebfd32c84e2b63e7b40
Bug 484019 - Fix corrupt or wrong roots titles in the database and in the Library, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
27716
diff
changeset
|
365 |
} |
|
313b7c5a27f5949e6c7b8ebfd32c84e2b63e7b40
Bug 484019 - Fix corrupt or wrong roots titles in the database and in the Library, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
27716
diff
changeset
|
366 |
selectPlacesRoot.finalize(); |
|
313b7c5a27f5949e6c7b8ebfd32c84e2b63e7b40
Bug 484019 - Fix corrupt or wrong roots titles in the database and in the Library, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
27716
diff
changeset
|
367 |
|
|
313b7c5a27f5949e6c7b8ebfd32c84e2b63e7b40
Bug 484019 - Fix corrupt or wrong roots titles in the database and in the Library, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
27716
diff
changeset
|
368 |
// C.2 fix roots titles |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
369 |
// some alpha version has wrong roots title, and this also fixes them if |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
370 |
// locale has changed. |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
371 |
let updateRootTitleSql = `UPDATE moz_bookmarks SET title = :title |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
372 |
WHERE id = :root_id AND title <> :title`; |
|
27919
313b7c5a27f5949e6c7b8ebfd32c84e2b63e7b40
Bug 484019 - Fix corrupt or wrong roots titles in the database and in the Library, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
27716
diff
changeset
|
373 |
// root |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
374 |
let fixPlacesRootTitle = DBConn.createAsyncStatement(updateRootTitleSql); |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
375 |
fixPlacesRootTitle.params["root_id"] = PlacesUtils.placesRootId; |
|
27919
313b7c5a27f5949e6c7b8ebfd32c84e2b63e7b40
Bug 484019 - Fix corrupt or wrong roots titles in the database and in the Library, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
27716
diff
changeset
|
376 |
fixPlacesRootTitle.params["title"] = ""; |
|
313b7c5a27f5949e6c7b8ebfd32c84e2b63e7b40
Bug 484019 - Fix corrupt or wrong roots titles in the database and in the Library, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
27716
diff
changeset
|
377 |
cleanupStatements.push(fixPlacesRootTitle); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
378 |
// bookmarks menu |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
379 |
let fixBookmarksMenuTitle = DBConn.createAsyncStatement(updateRootTitleSql); |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
380 |
fixBookmarksMenuTitle.params["root_id"] = PlacesUtils.bookmarksMenuFolderId; |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
381 |
fixBookmarksMenuTitle.params["title"] = |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
382 |
PlacesUtils.getString("BookmarksMenuFolderTitle"); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
383 |
cleanupStatements.push(fixBookmarksMenuTitle); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
384 |
// bookmarks toolbar |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
385 |
let fixBookmarksToolbarTitle = DBConn.createAsyncStatement(updateRootTitleSql); |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
386 |
fixBookmarksToolbarTitle.params["root_id"] = PlacesUtils.toolbarFolderId; |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
387 |
fixBookmarksToolbarTitle.params["title"] = |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
388 |
PlacesUtils.getString("BookmarksToolbarFolderTitle"); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
389 |
cleanupStatements.push(fixBookmarksToolbarTitle); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
390 |
// unsorted bookmarks |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
391 |
let fixUnsortedBookmarksTitle = DBConn.createAsyncStatement(updateRootTitleSql); |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
392 |
fixUnsortedBookmarksTitle.params["root_id"] = PlacesUtils.unfiledBookmarksFolderId; |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
393 |
fixUnsortedBookmarksTitle.params["title"] = |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
394 |
PlacesUtils.getString("UnsortedBookmarksFolderTitle"); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
395 |
cleanupStatements.push(fixUnsortedBookmarksTitle); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
396 |
// tags |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
397 |
let fixTagsRootTitle = DBConn.createAsyncStatement(updateRootTitleSql); |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
398 |
fixTagsRootTitle.params["root_id"] = PlacesUtils.tagsFolderId; |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
399 |
fixTagsRootTitle.params["title"] = |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
400 |
PlacesUtils.getString("TagsFolderTitle"); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
401 |
cleanupStatements.push(fixTagsRootTitle); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
402 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
403 |
// MOZ_BOOKMARKS |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
404 |
// D.1 remove items without a valid place |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
405 |
// if fk IS NULL we fix them in D.7 |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
406 |
let deleteNoPlaceItems = DBConn.createAsyncStatement( |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
407 |
`DELETE FROM moz_bookmarks WHERE guid NOT IN ( |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
408 |
:rootGuid, :menuGuid, :toolbarGuid, :unfiledGuid, :tagsGuid /* skip roots */ |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
409 |
) AND id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
410 |
SELECT b.id FROM moz_bookmarks b |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
411 |
WHERE fk NOT NULL AND b.type = :bookmark_type |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
412 |
AND NOT EXISTS (SELECT url FROM moz_places WHERE id = b.fk LIMIT 1) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
413 |
)`); |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
414 |
deleteNoPlaceItems.params["bookmark_type"] = PlacesUtils.bookmarks.TYPE_BOOKMARK; |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
415 |
deleteNoPlaceItems.params["rootGuid"] = PlacesUtils.bookmarks.rootGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
416 |
deleteNoPlaceItems.params["menuGuid"] = PlacesUtils.bookmarks.menuGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
417 |
deleteNoPlaceItems.params["toolbarGuid"] = PlacesUtils.bookmarks.toolbarGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
418 |
deleteNoPlaceItems.params["unfiledGuid"] = PlacesUtils.bookmarks.unfiledGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
419 |
deleteNoPlaceItems.params["tagsGuid"] = PlacesUtils.bookmarks.tagsGuid; |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
420 |
cleanupStatements.push(deleteNoPlaceItems); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
421 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
422 |
// D.2 remove items that are not uri bookmarks from tag containers |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
423 |
let deleteBogusTagChildren = DBConn.createAsyncStatement( |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
424 |
`DELETE FROM moz_bookmarks WHERE guid NOT IN ( |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
425 |
:rootGuid, :menuGuid, :toolbarGuid, :unfiledGuid, :tagsGuid /* skip roots */ |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
426 |
) AND id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
427 |
SELECT b.id FROM moz_bookmarks b |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
428 |
WHERE b.parent IN |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
429 |
(SELECT id FROM moz_bookmarks WHERE parent = :tags_folder) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
430 |
AND b.type <> :bookmark_type |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
431 |
)`); |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
432 |
deleteBogusTagChildren.params["tags_folder"] = PlacesUtils.tagsFolderId; |
|
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
433 |
deleteBogusTagChildren.params["bookmark_type"] = PlacesUtils.bookmarks.TYPE_BOOKMARK; |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
434 |
deleteBogusTagChildren.params["rootGuid"] = PlacesUtils.bookmarks.rootGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
435 |
deleteBogusTagChildren.params["menuGuid"] = PlacesUtils.bookmarks.menuGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
436 |
deleteBogusTagChildren.params["toolbarGuid"] = PlacesUtils.bookmarks.toolbarGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
437 |
deleteBogusTagChildren.params["unfiledGuid"] = PlacesUtils.bookmarks.unfiledGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
438 |
deleteBogusTagChildren.params["tagsGuid"] = PlacesUtils.bookmarks.tagsGuid; |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
439 |
cleanupStatements.push(deleteBogusTagChildren); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
440 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
441 |
// D.3 remove empty tags |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
442 |
let deleteEmptyTags = DBConn.createAsyncStatement( |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
443 |
`DELETE FROM moz_bookmarks WHERE guid NOT IN ( |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
444 |
:rootGuid, :menuGuid, :toolbarGuid, :unfiledGuid, :tagsGuid /* skip roots */ |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
445 |
) AND id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
446 |
SELECT b.id FROM moz_bookmarks b |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
447 |
WHERE b.id IN |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
448 |
(SELECT id FROM moz_bookmarks WHERE parent = :tags_folder) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
449 |
AND NOT EXISTS |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
450 |
(SELECT id from moz_bookmarks WHERE parent = b.id LIMIT 1) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
451 |
)`); |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
452 |
deleteEmptyTags.params["tags_folder"] = PlacesUtils.tagsFolderId; |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
453 |
deleteEmptyTags.params["rootGuid"] = PlacesUtils.bookmarks.rootGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
454 |
deleteEmptyTags.params["menuGuid"] = PlacesUtils.bookmarks.menuGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
455 |
deleteEmptyTags.params["toolbarGuid"] = PlacesUtils.bookmarks.toolbarGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
456 |
deleteEmptyTags.params["unfiledGuid"] = PlacesUtils.bookmarks.unfiledGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
457 |
deleteEmptyTags.params["tagsGuid"] = PlacesUtils.bookmarks.tagsGuid; |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
458 |
cleanupStatements.push(deleteEmptyTags); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
459 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
460 |
// D.4 move orphan items to unsorted folder |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
461 |
let fixOrphanItems = DBConn.createAsyncStatement( |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
462 |
`UPDATE moz_bookmarks SET parent = :unsorted_folder WHERE guid NOT IN ( |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
463 |
:rootGuid, :menuGuid, :toolbarGuid, :unfiledGuid, :tagsGuid /* skip roots */ |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
464 |
) AND id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
465 |
SELECT b.id FROM moz_bookmarks b |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
466 |
WHERE NOT EXISTS |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
467 |
(SELECT id FROM moz_bookmarks WHERE id = b.parent LIMIT 1) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
468 |
)`); |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
469 |
fixOrphanItems.params["unsorted_folder"] = PlacesUtils.unfiledBookmarksFolderId; |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
470 |
fixOrphanItems.params["rootGuid"] = PlacesUtils.bookmarks.rootGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
471 |
fixOrphanItems.params["menuGuid"] = PlacesUtils.bookmarks.menuGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
472 |
fixOrphanItems.params["toolbarGuid"] = PlacesUtils.bookmarks.toolbarGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
473 |
fixOrphanItems.params["unfiledGuid"] = PlacesUtils.bookmarks.unfiledGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
474 |
fixOrphanItems.params["tagsGuid"] = PlacesUtils.bookmarks.tagsGuid; |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
475 |
cleanupStatements.push(fixOrphanItems); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
476 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
477 |
// D.5 fix wrong keywords |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
478 |
let fixInvalidKeywords = DBConn.createAsyncStatement( |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
479 |
`UPDATE moz_bookmarks SET keyword_id = NULL WHERE guid NOT IN ( |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
480 |
:rootGuid, :menuGuid, :toolbarGuid, :unfiledGuid, :tagsGuid /* skip roots */ |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
481 |
) AND id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
482 |
SELECT id FROM moz_bookmarks b |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
483 |
WHERE keyword_id NOT NULL |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
484 |
AND NOT EXISTS |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
485 |
(SELECT id FROM moz_keywords WHERE id = b.keyword_id LIMIT 1) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
486 |
)`); |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
487 |
fixInvalidKeywords.params["rootGuid"] = PlacesUtils.bookmarks.rootGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
488 |
fixInvalidKeywords.params["menuGuid"] = PlacesUtils.bookmarks.menuGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
489 |
fixInvalidKeywords.params["toolbarGuid"] = PlacesUtils.bookmarks.toolbarGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
490 |
fixInvalidKeywords.params["unfiledGuid"] = PlacesUtils.bookmarks.unfiledGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
491 |
fixInvalidKeywords.params["tagsGuid"] = PlacesUtils.bookmarks.tagsGuid; |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
492 |
cleanupStatements.push(fixInvalidKeywords); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
493 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
494 |
// D.6 fix wrong item types |
|
80916
457b6bafbf3a237cc1c115ceac6484f2b7b96b0c
Bug 700296 (Places) - Remove dynamic containers implementation from Places.
Marco Bonardo <mbonardo@mozilla.com>
parents:
78484
diff
changeset
|
495 |
// Folders and separators should not have an fk. |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
496 |
// If they have a valid fk convert them to bookmarks. Later in D.9 we |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
497 |
// will move eventual children to unsorted bookmarks. |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
498 |
let fixBookmarksAsFolders = DBConn.createAsyncStatement( |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
499 |
`UPDATE moz_bookmarks SET type = :bookmark_type WHERE guid NOT IN ( |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
500 |
:rootGuid, :menuGuid, :toolbarGuid, :unfiledGuid, :tagsGuid /* skip roots */ |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
501 |
) AND id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
502 |
SELECT id FROM moz_bookmarks b |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
503 |
WHERE type IN (:folder_type, :separator_type) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
504 |
AND fk NOTNULL |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
505 |
)`); |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
506 |
fixBookmarksAsFolders.params["bookmark_type"] = PlacesUtils.bookmarks.TYPE_BOOKMARK; |
|
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
507 |
fixBookmarksAsFolders.params["folder_type"] = PlacesUtils.bookmarks.TYPE_FOLDER; |
|
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
508 |
fixBookmarksAsFolders.params["separator_type"] = PlacesUtils.bookmarks.TYPE_SEPARATOR; |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
509 |
fixBookmarksAsFolders.params["rootGuid"] = PlacesUtils.bookmarks.rootGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
510 |
fixBookmarksAsFolders.params["menuGuid"] = PlacesUtils.bookmarks.menuGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
511 |
fixBookmarksAsFolders.params["toolbarGuid"] = PlacesUtils.bookmarks.toolbarGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
512 |
fixBookmarksAsFolders.params["unfiledGuid"] = PlacesUtils.bookmarks.unfiledGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
513 |
fixBookmarksAsFolders.params["tagsGuid"] = PlacesUtils.bookmarks.tagsGuid; |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
514 |
cleanupStatements.push(fixBookmarksAsFolders); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
515 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
516 |
// D.7 fix wrong item types |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
517 |
// Bookmarks should have an fk, if they don't have any, convert them to |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
518 |
// folders. |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
519 |
let fixFoldersAsBookmarks = DBConn.createAsyncStatement( |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
520 |
`UPDATE moz_bookmarks SET type = :folder_type WHERE guid NOT IN ( |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
521 |
:rootGuid, :menuGuid, :toolbarGuid, :unfiledGuid, :tagsGuid /* skip roots */ |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
522 |
) AND id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
523 |
SELECT id FROM moz_bookmarks b |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
524 |
WHERE type = :bookmark_type |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
525 |
AND fk IS NULL |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
526 |
)`); |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
527 |
fixFoldersAsBookmarks.params["bookmark_type"] = PlacesUtils.bookmarks.TYPE_BOOKMARK; |
|
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
528 |
fixFoldersAsBookmarks.params["folder_type"] = PlacesUtils.bookmarks.TYPE_FOLDER; |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
529 |
fixFoldersAsBookmarks.params["rootGuid"] = PlacesUtils.bookmarks.rootGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
530 |
fixFoldersAsBookmarks.params["menuGuid"] = PlacesUtils.bookmarks.menuGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
531 |
fixFoldersAsBookmarks.params["toolbarGuid"] = PlacesUtils.bookmarks.toolbarGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
532 |
fixFoldersAsBookmarks.params["unfiledGuid"] = PlacesUtils.bookmarks.unfiledGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
533 |
fixFoldersAsBookmarks.params["tagsGuid"] = PlacesUtils.bookmarks.tagsGuid; |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
534 |
cleanupStatements.push(fixFoldersAsBookmarks); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
535 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
536 |
// D.9 fix wrong parents |
|
80916
457b6bafbf3a237cc1c115ceac6484f2b7b96b0c
Bug 700296 (Places) - Remove dynamic containers implementation from Places.
Marco Bonardo <mbonardo@mozilla.com>
parents:
78484
diff
changeset
|
537 |
// Items cannot have separators or other bookmarks |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
538 |
// as parent, if they have bad parent move them to unsorted bookmarks. |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
539 |
let fixInvalidParents = DBConn.createAsyncStatement( |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
540 |
`UPDATE moz_bookmarks SET parent = :unsorted_folder WHERE guid NOT IN ( |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
541 |
:rootGuid, :menuGuid, :toolbarGuid, :unfiledGuid, :tagsGuid /* skip roots */ |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
542 |
) AND id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
543 |
SELECT id FROM moz_bookmarks b |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
544 |
WHERE EXISTS |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
545 |
(SELECT id FROM moz_bookmarks WHERE id = b.parent |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
546 |
AND type IN (:bookmark_type, :separator_type) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
547 |
LIMIT 1) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
548 |
)`); |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
549 |
fixInvalidParents.params["unsorted_folder"] = PlacesUtils.unfiledBookmarksFolderId; |
|
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
550 |
fixInvalidParents.params["bookmark_type"] = PlacesUtils.bookmarks.TYPE_BOOKMARK; |
|
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
551 |
fixInvalidParents.params["separator_type"] = PlacesUtils.bookmarks.TYPE_SEPARATOR; |
|
213975
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
552 |
fixInvalidParents.params["rootGuid"] = PlacesUtils.bookmarks.rootGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
553 |
fixInvalidParents.params["menuGuid"] = PlacesUtils.bookmarks.menuGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
554 |
fixInvalidParents.params["toolbarGuid"] = PlacesUtils.bookmarks.toolbarGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
555 |
fixInvalidParents.params["unfiledGuid"] = PlacesUtils.bookmarks.unfiledGuid; |
|
ad5327aa82fdc4d0cf37d5e0e043fe4a9347975b
Bug 1071505 - use constant GUIDs for Places roots. r=mano
Marco Bonardo <mbonardo@mozilla.com>
parents:
208459
diff
changeset
|
556 |
fixInvalidParents.params["tagsGuid"] = PlacesUtils.bookmarks.tagsGuid; |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
557 |
cleanupStatements.push(fixInvalidParents); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
558 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
559 |
// D.10 recalculate positions |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
560 |
// This requires multiple related statements. |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
561 |
// We can detect a folder with bad position values comparing the sum of |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
562 |
// all distinct position values (+1 since position is 0-based) with the |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
563 |
// triangular numbers obtained by the number of children (n). |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
564 |
// SUM(DISTINCT position + 1) == (n * (n + 1) / 2). |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
565 |
cleanupStatements.push(DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
566 |
`CREATE TEMP TABLE IF NOT EXISTS moz_bm_reindex_temp ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
567 |
id INTEGER PRIMARY_KEY |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
568 |
, parent INTEGER |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
569 |
, position INTEGER |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
570 |
)` |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
571 |
)); |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
572 |
cleanupStatements.push(DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
573 |
`INSERT INTO moz_bm_reindex_temp |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
574 |
SELECT id, parent, 0 |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
575 |
FROM moz_bookmarks b |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
576 |
WHERE parent IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
577 |
SELECT parent |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
578 |
FROM moz_bookmarks |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
579 |
GROUP BY parent |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
580 |
HAVING (SUM(DISTINCT position + 1) - (count(*) * (count(*) + 1) / 2)) <> 0 |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
581 |
) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
582 |
ORDER BY parent ASC, position ASC, ROWID ASC` |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
583 |
)); |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
584 |
cleanupStatements.push(DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
585 |
`CREATE INDEX IF NOT EXISTS moz_bm_reindex_temp_index |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
586 |
ON moz_bm_reindex_temp(parent)` |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
587 |
)); |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
588 |
cleanupStatements.push(DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
589 |
`UPDATE moz_bm_reindex_temp SET position = ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
590 |
ROWID - (SELECT MIN(t.ROWID) FROM moz_bm_reindex_temp t |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
591 |
WHERE t.parent = moz_bm_reindex_temp.parent) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
592 |
)` |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
593 |
)); |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
594 |
cleanupStatements.push(DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
595 |
`CREATE TEMP TRIGGER IF NOT EXISTS moz_bm_reindex_temp_trigger |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
596 |
BEFORE DELETE ON moz_bm_reindex_temp |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
597 |
FOR EACH ROW |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
598 |
BEGIN |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
599 |
UPDATE moz_bookmarks SET position = OLD.position WHERE id = OLD.id; |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
600 |
END` |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
601 |
)); |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
602 |
cleanupStatements.push(DBConn.createAsyncStatement( |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
603 |
"DELETE FROM moz_bm_reindex_temp " |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
604 |
)); |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
605 |
cleanupStatements.push(DBConn.createAsyncStatement( |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
606 |
"DROP INDEX moz_bm_reindex_temp_index " |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
607 |
)); |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
608 |
cleanupStatements.push(DBConn.createAsyncStatement( |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
609 |
"DROP TRIGGER moz_bm_reindex_temp_trigger " |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
610 |
)); |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
611 |
cleanupStatements.push(DBConn.createAsyncStatement( |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
612 |
"DROP TABLE moz_bm_reindex_temp " |
|
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
613 |
)); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
614 |
|
|
55934
4e05764294ec85b60c626140ef56e4433ac0bb53
Bug 458026 (part 2) - Do not allow creation of empty-named tags. r=mano sr=rs a=blocking
Marco Bonardo <mbonardo@mozilla.com>
parents:
49240
diff
changeset
|
615 |
// D.12 Fix empty-named tags. |
|
4e05764294ec85b60c626140ef56e4433ac0bb53
Bug 458026 (part 2) - Do not allow creation of empty-named tags. r=mano sr=rs a=blocking
Marco Bonardo <mbonardo@mozilla.com>
parents:
49240
diff
changeset
|
616 |
// Tags were allowed to have empty names due to a UI bug. Fix them |
|
4e05764294ec85b60c626140ef56e4433ac0bb53
Bug 458026 (part 2) - Do not allow creation of empty-named tags. r=mano sr=rs a=blocking
Marco Bonardo <mbonardo@mozilla.com>
parents:
49240
diff
changeset
|
617 |
// replacing their title with "(notitle)". |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
618 |
let fixEmptyNamedTags = DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
619 |
`UPDATE moz_bookmarks SET title = :empty_title |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
620 |
WHERE length(title) = 0 AND type = :folder_type |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
621 |
AND parent = :tags_folder` |
|
55934
4e05764294ec85b60c626140ef56e4433ac0bb53
Bug 458026 (part 2) - Do not allow creation of empty-named tags. r=mano sr=rs a=blocking
Marco Bonardo <mbonardo@mozilla.com>
parents:
49240
diff
changeset
|
622 |
); |
|
4e05764294ec85b60c626140ef56e4433ac0bb53
Bug 458026 (part 2) - Do not allow creation of empty-named tags. r=mano sr=rs a=blocking
Marco Bonardo <mbonardo@mozilla.com>
parents:
49240
diff
changeset
|
623 |
fixEmptyNamedTags.params["empty_title"] = "(notitle)"; |
|
56083
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
624 |
fixEmptyNamedTags.params["folder_type"] = PlacesUtils.bookmarks.TYPE_FOLDER; |
|
84abb3a647d9f002167383929b5829cd95c262fc
Bug 570387 - PlacesDBUtils should register itself in the idle-daily category. r+a=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
55934
diff
changeset
|
625 |
fixEmptyNamedTags.params["tags_folder"] = PlacesUtils.tagsFolderId; |
|
55934
4e05764294ec85b60c626140ef56e4433ac0bb53
Bug 458026 (part 2) - Do not allow creation of empty-named tags. r=mano sr=rs a=blocking
Marco Bonardo <mbonardo@mozilla.com>
parents:
49240
diff
changeset
|
626 |
cleanupStatements.push(fixEmptyNamedTags); |
|
4e05764294ec85b60c626140ef56e4433ac0bb53
Bug 458026 (part 2) - Do not allow creation of empty-named tags. r=mano sr=rs a=blocking
Marco Bonardo <mbonardo@mozilla.com>
parents:
49240
diff
changeset
|
627 |
|
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
628 |
// MOZ_FAVICONS |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
629 |
// E.1 remove orphan icons |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
630 |
let deleteOrphanIcons = DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
631 |
`DELETE FROM moz_favicons WHERE id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
632 |
SELECT id FROM moz_favicons f |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
633 |
WHERE NOT EXISTS |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
634 |
(SELECT id FROM moz_places WHERE favicon_id = f.id LIMIT 1) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
635 |
)`); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
636 |
cleanupStatements.push(deleteOrphanIcons); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
637 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
638 |
// MOZ_HISTORYVISITS |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
639 |
// F.1 remove orphan visits |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
640 |
let deleteOrphanVisits = DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
641 |
`DELETE FROM moz_historyvisits WHERE id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
642 |
SELECT id FROM moz_historyvisits v |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
643 |
WHERE NOT EXISTS |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
644 |
(SELECT id FROM moz_places WHERE id = v.place_id LIMIT 1) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
645 |
)`); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
646 |
cleanupStatements.push(deleteOrphanVisits); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
647 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
648 |
// MOZ_INPUTHISTORY |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
649 |
// G.1 remove orphan input history |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
650 |
let deleteOrphanInputHistory = DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
651 |
`DELETE FROM moz_inputhistory WHERE place_id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
652 |
SELECT place_id FROM moz_inputhistory i |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
653 |
WHERE NOT EXISTS |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
654 |
(SELECT id FROM moz_places WHERE id = i.place_id LIMIT 1) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
655 |
)`); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
656 |
cleanupStatements.push(deleteOrphanInputHistory); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
657 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
658 |
// MOZ_ITEMS_ANNOS |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
659 |
// H.1 remove item annos with an invalid attribute |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
660 |
let deleteInvalidAttributeItemsAnnos = DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
661 |
`DELETE FROM moz_items_annos WHERE id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
662 |
SELECT id FROM moz_items_annos t |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
663 |
WHERE NOT EXISTS |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
664 |
(SELECT id FROM moz_anno_attributes |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
665 |
WHERE id = t.anno_attribute_id LIMIT 1) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
666 |
)`); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
667 |
cleanupStatements.push(deleteInvalidAttributeItemsAnnos); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
668 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
669 |
// H.2 remove orphan item annos |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
670 |
let deleteOrphanItemsAnnos = DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
671 |
`DELETE FROM moz_items_annos WHERE id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
672 |
SELECT id FROM moz_items_annos t |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
673 |
WHERE NOT EXISTS |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
674 |
(SELECT id FROM moz_bookmarks WHERE id = t.item_id LIMIT 1) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
675 |
)`); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
676 |
cleanupStatements.push(deleteOrphanItemsAnnos); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
677 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
678 |
// MOZ_KEYWORDS |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
679 |
// I.1 remove unused keywords |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
680 |
let deleteUnusedKeywords = DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
681 |
`DELETE FROM moz_keywords WHERE id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
682 |
SELECT id FROM moz_keywords k |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
683 |
WHERE NOT EXISTS |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
684 |
(SELECT id FROM moz_bookmarks WHERE keyword_id = k.id LIMIT 1) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
685 |
)`); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
686 |
cleanupStatements.push(deleteUnusedKeywords); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
687 |
|
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
688 |
// MOZ_PLACES |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
689 |
// L.1 fix wrong favicon ids |
|
62859
51b61720bc3507de21b1408ffd8dfeb15514d3a0
Bug 626341 - Fix bogus bookmarks position values with PlacesDBUtils.
Marco Bonardo <mbonardo@mozilla.com>
parents:
62746
diff
changeset
|
690 |
let fixInvalidFaviconIds = DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
691 |
`UPDATE moz_places SET favicon_id = NULL WHERE id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
692 |
SELECT id FROM moz_places h |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
693 |
WHERE favicon_id NOT NULL |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
694 |
AND NOT EXISTS |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
695 |
(SELECT id FROM moz_favicons WHERE id = h.favicon_id LIMIT 1) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
696 |
)`); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
697 |
cleanupStatements.push(fixInvalidFaviconIds); |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
698 |
|
|
78484
339749acfdbc23bfd3971abbe37e538baf4bdaf7
Bug 692493 - Add maintenance for visit_count and last_visit_date.
Marco Bonardo <mbonardo@mozilla.com>
parents:
78371
diff
changeset
|
699 |
// L.2 recalculate visit_count and last_visit_date |
|
339749acfdbc23bfd3971abbe37e538baf4bdaf7
Bug 692493 - Add maintenance for visit_count and last_visit_date.
Marco Bonardo <mbonardo@mozilla.com>
parents:
78371
diff
changeset
|
700 |
let fixVisitStats = DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
701 |
`UPDATE moz_places |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
702 |
SET visit_count = (SELECT count(*) FROM moz_historyvisits |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
703 |
WHERE place_id = moz_places.id AND visit_type NOT IN (0,4,7,8)), |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
704 |
last_visit_date = (SELECT MAX(visit_date) FROM moz_historyvisits |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
705 |
WHERE place_id = moz_places.id) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
706 |
WHERE id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
707 |
SELECT h.id FROM moz_places h |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
708 |
WHERE visit_count <> (SELECT count(*) FROM moz_historyvisits v |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
709 |
WHERE v.place_id = h.id AND visit_type NOT IN (0,4,7,8)) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
710 |
OR last_visit_date <> (SELECT MAX(visit_date) FROM moz_historyvisits v |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
711 |
WHERE v.place_id = h.id) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
712 |
)`); |
|
78484
339749acfdbc23bfd3971abbe37e538baf4bdaf7
Bug 692493 - Add maintenance for visit_count and last_visit_date.
Marco Bonardo <mbonardo@mozilla.com>
parents:
78371
diff
changeset
|
713 |
cleanupStatements.push(fixVisitStats); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
714 |
|
|
91206
b94616a8d514973c005d75a9692f00f024102725
Bug 737841 - Part 3: remove no more useful redirectsMode query option.
Marco Bonardo <mbonardo@mozilla.com>
parents:
87646
diff
changeset
|
715 |
// L.3 recalculate hidden for redirects. |
|
b94616a8d514973c005d75a9692f00f024102725
Bug 737841 - Part 3: remove no more useful redirectsMode query option.
Marco Bonardo <mbonardo@mozilla.com>
parents:
87646
diff
changeset
|
716 |
let fixRedirectsHidden = DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
717 |
`UPDATE moz_places |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
718 |
SET hidden = 1 |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
719 |
WHERE id IN ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
720 |
SELECT h.id FROM moz_places h |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
721 |
JOIN moz_historyvisits src ON src.place_id = h.id |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
722 |
JOIN moz_historyvisits dst ON dst.from_visit = src.id AND dst.visit_type IN (5,6) |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
723 |
LEFT JOIN moz_bookmarks on fk = h.id AND fk ISNULL |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
724 |
GROUP BY src.place_id HAVING count(*) = visit_count |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
725 |
)`); |
|
91206
b94616a8d514973c005d75a9692f00f024102725
Bug 737841 - Part 3: remove no more useful redirectsMode query option.
Marco Bonardo <mbonardo@mozilla.com>
parents:
87646
diff
changeset
|
726 |
cleanupStatements.push(fixRedirectsHidden); |
|
b94616a8d514973c005d75a9692f00f024102725
Bug 737841 - Part 3: remove no more useful redirectsMode query option.
Marco Bonardo <mbonardo@mozilla.com>
parents:
87646
diff
changeset
|
727 |
|
|
197326
a8708a05018ea6e3a654810ce3add88a5435cd08
Bug 1017502 - Add a foreign_count column to moz_places r=mak
Althaf Hameez <althaf.mozilla@gmail.com>
parents:
193129
diff
changeset
|
728 |
// L.4 recalculate foreign_count. |
|
a8708a05018ea6e3a654810ce3add88a5435cd08
Bug 1017502 - Add a foreign_count column to moz_places r=mak
Althaf Hameez <althaf.mozilla@gmail.com>
parents:
193129
diff
changeset
|
729 |
let fixForeignCount = DBConn.createAsyncStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
730 |
`UPDATE moz_places SET foreign_count = |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
731 |
(SELECT count(*) FROM moz_bookmarks WHERE fk = moz_places.id )`); |
|
197326
a8708a05018ea6e3a654810ce3add88a5435cd08
Bug 1017502 - Add a foreign_count column to moz_places r=mak
Althaf Hameez <althaf.mozilla@gmail.com>
parents:
193129
diff
changeset
|
732 |
cleanupStatements.push(fixForeignCount); |
|
a8708a05018ea6e3a654810ce3add88a5435cd08
Bug 1017502 - Add a foreign_count column to moz_places r=mak
Althaf Hameez <althaf.mozilla@gmail.com>
parents:
193129
diff
changeset
|
733 |
|
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
734 |
// MAINTENANCE STATEMENTS SHOULD GO ABOVE THIS POINT! |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
735 |
|
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
736 |
return cleanupStatements; |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
737 |
}, |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
738 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
739 |
/** |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
740 |
* Tries to vacuum the database. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
741 |
* |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
742 |
* @param [optional] aTasks |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
743 |
* Tasks object to execute. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
744 |
*/ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
745 |
vacuum: function PDBU_vacuum(aTasks) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
746 |
{ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
747 |
let tasks = new Tasks(aTasks); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
748 |
tasks.log("> Vacuum"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
749 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
750 |
let DBFile = Services.dirsvc.get("ProfD", Ci.nsILocalFile); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
751 |
DBFile.append("places.sqlite"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
752 |
tasks.log("Initial database size is " + |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
753 |
parseInt(DBFile.fileSize / 1024) + " KiB"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
754 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
755 |
let stmt = DBConn.createAsyncStatement("VACUUM"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
756 |
stmt.executeAsync({ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
757 |
handleError: PlacesDBUtils._handleError, |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
758 |
handleResult: function () {}, |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
759 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
760 |
handleCompletion: function (aReason) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
761 |
{ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
762 |
if (aReason == Ci.mozIStorageStatementCallback.REASON_FINISHED) { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
763 |
tasks.log("+ The database has been vacuumed"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
764 |
let vacuumedDBFile = Services.dirsvc.get("ProfD", Ci.nsILocalFile); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
765 |
vacuumedDBFile.append("places.sqlite"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
766 |
tasks.log("Final database size is " + |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
767 |
parseInt(vacuumedDBFile.fileSize / 1024) + " KiB"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
768 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
769 |
else { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
770 |
tasks.log("- Unable to vacuum database"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
771 |
tasks.clear(); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
772 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
773 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
774 |
PlacesDBUtils._executeTasks(tasks); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
775 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
776 |
}); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
777 |
stmt.finalize(); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
778 |
}, |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
779 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
780 |
/** |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
781 |
* Forces a full expiration on the database. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
782 |
* |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
783 |
* @param [optional] aTasks |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
784 |
* Tasks object to execute. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
785 |
*/ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
786 |
expire: function PDBU_expire(aTasks) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
787 |
{ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
788 |
let tasks = new Tasks(aTasks); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
789 |
tasks.log("> Orphans expiration"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
790 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
791 |
let expiration = Cc["@mozilla.org/places/expiration;1"]. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
792 |
getService(Ci.nsIObserver); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
793 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
794 |
Services.obs.addObserver(function (aSubject, aTopic, aData) { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
795 |
Services.obs.removeObserver(arguments.callee, aTopic); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
796 |
tasks.log("+ Database cleaned up"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
797 |
PlacesDBUtils._executeTasks(tasks); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
798 |
}, PlacesUtils.TOPIC_EXPIRATION_FINISHED, false); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
799 |
|
|
71263
ea9b8e556091fde2146e95f3c23f556d6b12a2c6
Bug 663344 - Maintenance may cause history loss.
Marco Bonardo <mbonardo@mozilla.com>
parents:
67882
diff
changeset
|
800 |
// Force an orphans expiration step. |
|
ea9b8e556091fde2146e95f3c23f556d6b12a2c6
Bug 663344 - Maintenance may cause history loss.
Marco Bonardo <mbonardo@mozilla.com>
parents:
67882
diff
changeset
|
801 |
expiration.observe(null, "places-debug-start-expiration", 0); |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
802 |
}, |
|
33460
77e5bfb0ef739effa5fc9d215677cd6309f32f8e
Bug 516932 - Add an advanced maintenance task to vacuum and check integrity, for support purposes r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
32217
diff
changeset
|
803 |
|
|
77e5bfb0ef739effa5fc9d215677cd6309f32f8e
Bug 516932 - Add an advanced maintenance task to vacuum and check integrity, for support purposes r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
32217
diff
changeset
|
804 |
/** |
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
805 |
* Collects statistical data on the database. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
806 |
* |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
807 |
* @param [optional] aTasks |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
808 |
* Tasks object to execute. |
|
33460
77e5bfb0ef739effa5fc9d215677cd6309f32f8e
Bug 516932 - Add an advanced maintenance task to vacuum and check integrity, for support purposes r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
32217
diff
changeset
|
809 |
*/ |
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
810 |
stats: function PDBU_stats(aTasks) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
811 |
{ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
812 |
let tasks = new Tasks(aTasks); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
813 |
tasks.log("> Statistics"); |
|
33460
77e5bfb0ef739effa5fc9d215677cd6309f32f8e
Bug 516932 - Add an advanced maintenance task to vacuum and check integrity, for support purposes r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
32217
diff
changeset
|
814 |
|
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
815 |
let DBFile = Services.dirsvc.get("ProfD", Ci.nsILocalFile); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
816 |
DBFile.append("places.sqlite"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
817 |
tasks.log("Database size is " + parseInt(DBFile.fileSize / 1024) + " KiB"); |
|
33460
77e5bfb0ef739effa5fc9d215677cd6309f32f8e
Bug 516932 - Add an advanced maintenance task to vacuum and check integrity, for support purposes r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
32217
diff
changeset
|
818 |
|
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
819 |
[ "user_version" |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
820 |
, "page_size" |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
821 |
, "cache_size" |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
822 |
, "journal_mode" |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
823 |
, "synchronous" |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
824 |
].forEach(function (aPragma) { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
825 |
let stmt = DBConn.createStatement("PRAGMA " + aPragma); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
826 |
stmt.executeStep(); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
827 |
tasks.log(aPragma + " is " + stmt.getString(0)); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
828 |
stmt.finalize(); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
829 |
}); |
|
33460
77e5bfb0ef739effa5fc9d215677cd6309f32f8e
Bug 516932 - Add an advanced maintenance task to vacuum and check integrity, for support purposes r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
32217
diff
changeset
|
830 |
|
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
831 |
// Get maximum number of unique URIs. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
832 |
try { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
833 |
let limitURIs = Services.prefs.getIntPref( |
|
37236
2bdf21a8a3d6882ac98218cea2ac918ce0bf5a1e
Bug 520165 - Part14: Add a maintenance task to print pages limit and run expiration, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
33460
diff
changeset
|
834 |
"places.history.expiration.transient_current_max_pages"); |
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
835 |
tasks.log("History can store a maximum of " + limitURIs + " unique pages"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
836 |
} catch(ex) {} |
|
37236
2bdf21a8a3d6882ac98218cea2ac918ce0bf5a1e
Bug 520165 - Part14: Add a maintenance task to print pages limit and run expiration, r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
33460
diff
changeset
|
837 |
|
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
838 |
let stmt = DBConn.createStatement( |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
839 |
"SELECT name FROM sqlite_master WHERE type = :type"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
840 |
stmt.params.type = "table"; |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
841 |
while (stmt.executeStep()) { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
842 |
let tableName = stmt.getString(0); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
843 |
let countStmt = DBConn.createStatement( |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
844 |
`SELECT count(*) FROM ${tableName}`); |
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
845 |
countStmt.executeStep(); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
846 |
tasks.log("Table " + tableName + " has " + countStmt.getInt32(0) + " records"); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
847 |
countStmt.finalize(); |
|
33460
77e5bfb0ef739effa5fc9d215677cd6309f32f8e
Bug 516932 - Add an advanced maintenance task to vacuum and check integrity, for support purposes r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
32217
diff
changeset
|
848 |
} |
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
849 |
stmt.reset(); |
|
33460
77e5bfb0ef739effa5fc9d215677cd6309f32f8e
Bug 516932 - Add an advanced maintenance task to vacuum and check integrity, for support purposes r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
32217
diff
changeset
|
850 |
|
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
851 |
stmt.params.type = "index"; |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
852 |
while (stmt.executeStep()) { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
853 |
tasks.log("Index " + stmt.getString(0)); |
|
33460
77e5bfb0ef739effa5fc9d215677cd6309f32f8e
Bug 516932 - Add an advanced maintenance task to vacuum and check integrity, for support purposes r=dietrich
Marco Bonardo <mbonardo@mozilla.com>
parents:
32217
diff
changeset
|
854 |
} |
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
855 |
stmt.reset(); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
856 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
857 |
stmt.params.type = "trigger"; |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
858 |
while (stmt.executeStep()) { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
859 |
tasks.log("Trigger " + stmt.getString(0)); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
860 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
861 |
stmt.finalize(); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
862 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
863 |
PlacesDBUtils._executeTasks(tasks); |
|
73637
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
864 |
}, |
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
865 |
|
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
866 |
/** |
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
867 |
* Collects telemetry data. |
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
868 |
* |
|
120934
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
869 |
* There are essentially two modes of collection and the mode is |
|
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
870 |
* determined by the presence of aHealthReportCallback. If |
|
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
871 |
* aHealthReportCallback is not defined (the default) then we are in |
|
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
872 |
* "Telemetry" mode. Results will be reported to Telemetry. If we are |
|
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
873 |
* in "Health Report" mode only the probes with a true healthreport |
|
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
874 |
* flag will be collected and the results will be reported to the |
|
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
875 |
* aHealthReportCallback. |
|
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
876 |
* |
|
73637
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
877 |
* @param [optional] aTasks |
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
878 |
* Tasks object to execute. |
|
120934
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
879 |
* @param [optional] aHealthReportCallback |
|
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
880 |
* Function to receive data relevant for Firefox Health Report. |
|
73637
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
881 |
*/ |
|
120934
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
882 |
telemetry: function PDBU_telemetry(aTasks, aHealthReportCallback=null) |
|
73637
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
883 |
{ |
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
884 |
let tasks = new Tasks(aTasks); |
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
885 |
|
|
120934
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
886 |
let isTelemetry = !aHealthReportCallback; |
|
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
887 |
|
|
86059
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
888 |
// This will be populated with one integer property for each probe result, |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
889 |
// using the histogram name as key. |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
890 |
let probeValues = {}; |
|
73637
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
891 |
|
|
86059
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
892 |
// The following array contains an ordered list of entries that are |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
893 |
// processed to collect telemetry data. Each entry has these properties: |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
894 |
// |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
895 |
// histogram: Name of the telemetry histogram to update. |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
896 |
// query: This is optional. If present, contains a database command |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
897 |
// that will be executed asynchronously, and whose result will |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
898 |
// be added to the telemetry histogram. |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
899 |
// callback: This is optional. If present, contains a function that must |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
900 |
// return the value that will be added to the telemetry |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
901 |
// histogram. If a query is also present, its result is passed |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
902 |
// as the first argument of the function. If the function |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
903 |
// raises an exception, no data is added to the histogram. |
|
120934
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
904 |
// healthreport: Boolean indicating whether this probe is relevant |
|
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
905 |
// to Firefox Health Report. |
|
86059
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
906 |
// |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
907 |
// Since all queries are executed in order by the database backend, the |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
908 |
// callbacks can also use the result of previous queries stored in the |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
909 |
// probeValues object. |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
910 |
let probes = [ |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
911 |
{ histogram: "PLACES_PAGES_COUNT", |
|
120934
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
912 |
healthreport: true, |
|
86059
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
913 |
query: "SELECT count(*) FROM moz_places" }, |
|
73637
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
914 |
|
|
86059
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
915 |
{ histogram: "PLACES_BOOKMARKS_COUNT", |
|
120934
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
916 |
healthreport: true, |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
917 |
query: `SELECT count(*) FROM moz_bookmarks b |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
918 |
JOIN moz_bookmarks t ON t.id = b.parent |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
919 |
AND t.parent <> :tags_folder |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
920 |
WHERE b.type = :type_bookmark` }, |
|
73637
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
921 |
|
|
86059
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
922 |
{ histogram: "PLACES_TAGS_COUNT", |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
923 |
query: `SELECT count(*) FROM moz_bookmarks |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
924 |
WHERE parent = :tags_folder` }, |
|
73637
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
925 |
|
|
86059
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
926 |
{ histogram: "PLACES_KEYWORDS_COUNT", |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
927 |
query: "SELECT count(*) FROM moz_keywords" }, |
|
73637
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
928 |
|
|
86059
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
929 |
{ histogram: "PLACES_SORTED_BOOKMARKS_PERC", |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
930 |
query: `SELECT IFNULL(ROUND(( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
931 |
SELECT count(*) FROM moz_bookmarks b |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
932 |
JOIN moz_bookmarks t ON t.id = b.parent |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
933 |
AND t.parent <> :tags_folder AND t.parent > :places_root |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
934 |
WHERE b.type = :type_bookmark |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
935 |
) * 100 / ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
936 |
SELECT count(*) FROM moz_bookmarks b |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
937 |
JOIN moz_bookmarks t ON t.id = b.parent |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
938 |
AND t.parent <> :tags_folder |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
939 |
WHERE b.type = :type_bookmark |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
940 |
)), 0)` }, |
|
73637
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
941 |
|
|
86059
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
942 |
{ histogram: "PLACES_TAGGED_BOOKMARKS_PERC", |
|
201791
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
943 |
query: `SELECT IFNULL(ROUND(( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
944 |
SELECT count(*) FROM moz_bookmarks b |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
945 |
JOIN moz_bookmarks t ON t.id = b.parent |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
946 |
AND t.parent = :tags_folder |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
947 |
) * 100 / ( |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
948 |
SELECT count(*) FROM moz_bookmarks b |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
949 |
JOIN moz_bookmarks t ON t.id = b.parent |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
950 |
AND t.parent <> :tags_folder |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
951 |
WHERE b.type = :type_bookmark |
|
2f31abffddbbcce74e47eaed604dfa5f88239338
Bug 1057782 - Use template strings for multi-line SQL statements. r=ttaubert
Michael Pruett <michael@68k.org>
parents:
197326
diff
changeset
|
952 |
)), 0)` }, |
|
86059
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
953 |
|
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
954 |
{ histogram: "PLACES_DATABASE_FILESIZE_MB", |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
955 |
callback: function () { |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
956 |
let DBFile = Services.dirsvc.get("ProfD", Ci.nsILocalFile); |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
957 |
DBFile.append("places.sqlite"); |
|
78371
b16c81fc5e94fa7ac444a4e105d54f51fe292f30
Bug 689142 - Places telemetry gets lost, due to being collected on idle-daily.
Marco Bonardo <mbonardo@mozilla.com>
parents:
76195
diff
changeset
|
958 |
return parseInt(DBFile.fileSize / BYTES_PER_MEBIBYTE); |
|
73637
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
959 |
} |
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
960 |
}, |
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
961 |
|
|
86059
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
962 |
{ histogram: "PLACES_DATABASE_PAGESIZE_B", |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
963 |
query: "PRAGMA page_size /* PlacesDBUtils.jsm PAGESIZE_B */" }, |
|
73637
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
964 |
|
|
86059
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
965 |
{ histogram: "PLACES_DATABASE_SIZE_PER_PAGE_B", |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
966 |
query: "PRAGMA page_count", |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
967 |
callback: function (aDbPageCount) { |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
968 |
// Note that the database file size would not be meaningful for this |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
969 |
// calculation, because the file grows in fixed-size chunks. |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
970 |
let dbPageSize = probeValues.PLACES_DATABASE_PAGESIZE_B; |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
971 |
let placesPageCount = probeValues.PLACES_PAGES_COUNT; |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
972 |
return Math.round((dbPageSize * aDbPageCount) / placesPageCount); |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
973 |
} |
|
86339
7cdf565448694b50d226646e61b4654066aa03bf
Bug 723925 - Telemetry for number and size of annotations.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86337
diff
changeset
|
974 |
}, |
|
7cdf565448694b50d226646e61b4654066aa03bf
Bug 723925 - Telemetry for number and size of annotations.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86337
diff
changeset
|
975 |
|
|
7cdf565448694b50d226646e61b4654066aa03bf
Bug 723925 - Telemetry for number and size of annotations.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86337
diff
changeset
|
976 |
{ histogram: "PLACES_ANNOS_BOOKMARKS_COUNT", |
|
7cdf565448694b50d226646e61b4654066aa03bf
Bug 723925 - Telemetry for number and size of annotations.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86337
diff
changeset
|
977 |
query: "SELECT count(*) FROM moz_items_annos" }, |
|
7cdf565448694b50d226646e61b4654066aa03bf
Bug 723925 - Telemetry for number and size of annotations.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86337
diff
changeset
|
978 |
|
|
7cdf565448694b50d226646e61b4654066aa03bf
Bug 723925 - Telemetry for number and size of annotations.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86337
diff
changeset
|
979 |
{ histogram: "PLACES_ANNOS_PAGES_COUNT", |
|
7cdf565448694b50d226646e61b4654066aa03bf
Bug 723925 - Telemetry for number and size of annotations.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86337
diff
changeset
|
980 |
query: "SELECT count(*) FROM moz_annos" }, |
|
7cdf565448694b50d226646e61b4654066aa03bf
Bug 723925 - Telemetry for number and size of annotations.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86337
diff
changeset
|
981 |
|
|
208030
9687a6f92e7d054dfcbf5dfe3f1013867c3a4ae8
Bug 1065285 - Add telemetry for the last maintenance time. r=mak
Manu Jain <manu.jain13@gmail.com>
parents:
201791
diff
changeset
|
982 |
{ histogram: "PLACES_MAINTENANCE_DAYSFROMLAST", |
|
9687a6f92e7d054dfcbf5dfe3f1013867c3a4ae8
Bug 1065285 - Add telemetry for the last maintenance time. r=mak
Manu Jain <manu.jain13@gmail.com>
parents:
201791
diff
changeset
|
983 |
callback: function () { |
|
9687a6f92e7d054dfcbf5dfe3f1013867c3a4ae8
Bug 1065285 - Add telemetry for the last maintenance time. r=mak
Manu Jain <manu.jain13@gmail.com>
parents:
201791
diff
changeset
|
984 |
try { |
|
9687a6f92e7d054dfcbf5dfe3f1013867c3a4ae8
Bug 1065285 - Add telemetry for the last maintenance time. r=mak
Manu Jain <manu.jain13@gmail.com>
parents:
201791
diff
changeset
|
985 |
let lastMaintenance = Services.prefs.getIntPref("places.database.lastMaintenance"); |
|
9687a6f92e7d054dfcbf5dfe3f1013867c3a4ae8
Bug 1065285 - Add telemetry for the last maintenance time. r=mak
Manu Jain <manu.jain13@gmail.com>
parents:
201791
diff
changeset
|
986 |
let nowSeconds = parseInt(Date.now() / 1000); |
|
9687a6f92e7d054dfcbf5dfe3f1013867c3a4ae8
Bug 1065285 - Add telemetry for the last maintenance time. r=mak
Manu Jain <manu.jain13@gmail.com>
parents:
201791
diff
changeset
|
987 |
return parseInt((nowSeconds - lastMaintenance) / 86400); |
|
9687a6f92e7d054dfcbf5dfe3f1013867c3a4ae8
Bug 1065285 - Add telemetry for the last maintenance time. r=mak
Manu Jain <manu.jain13@gmail.com>
parents:
201791
diff
changeset
|
988 |
} catch (ex) { |
|
9687a6f92e7d054dfcbf5dfe3f1013867c3a4ae8
Bug 1065285 - Add telemetry for the last maintenance time. r=mak
Manu Jain <manu.jain13@gmail.com>
parents:
201791
diff
changeset
|
989 |
return 60; |
|
9687a6f92e7d054dfcbf5dfe3f1013867c3a4ae8
Bug 1065285 - Add telemetry for the last maintenance time. r=mak
Manu Jain <manu.jain13@gmail.com>
parents:
201791
diff
changeset
|
990 |
} |
|
9687a6f92e7d054dfcbf5dfe3f1013867c3a4ae8
Bug 1065285 - Add telemetry for the last maintenance time. r=mak
Manu Jain <manu.jain13@gmail.com>
parents:
201791
diff
changeset
|
991 |
} |
|
9687a6f92e7d054dfcbf5dfe3f1013867c3a4ae8
Bug 1065285 - Add telemetry for the last maintenance time. r=mak
Manu Jain <manu.jain13@gmail.com>
parents:
201791
diff
changeset
|
992 |
}, |
|
86059
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
993 |
]; |
|
73637
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
994 |
|
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
995 |
let params = { |
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
996 |
tags_folder: PlacesUtils.tagsFolderId, |
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
997 |
type_folder: PlacesUtils.bookmarks.TYPE_FOLDER, |
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
998 |
type_bookmark: PlacesUtils.bookmarks.TYPE_BOOKMARK, |
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
999 |
places_root: PlacesUtils.placesRootId |
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
1000 |
}; |
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
1001 |
|
|
193129
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1002 |
let outstandingProbes = []; |
|
73637
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
1003 |
|
|
86059
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
1004 |
for (let i = 0; i < probes.length; i++) { |
|
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
1005 |
let probe = probes[i]; |
|
120934
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
1006 |
|
|
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
1007 |
if (!isTelemetry && !probe.healthreport) { |
|
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
1008 |
continue; |
|
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
1009 |
} |
|
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
1010 |
|
|
193129
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1011 |
let promiseDone = new Promise((resolve, reject) => { |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1012 |
if (!("query" in probe)) { |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1013 |
resolve([probe]); |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1014 |
return; |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1015 |
} |
|
120934
4654abd41ddf4fa5198f6f393fdf23c0a577df34
Bug 828546 - Part 1: Support Health Report mode when gathering Places Telemetry; r=mak
Gregory Szorc <gps@mozilla.com>
parents:
111947
diff
changeset
|
1016 |
|
|
193129
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1017 |
let stmt = DBConn.createAsyncStatement(probe.query); |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1018 |
for (let param in params) { |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1019 |
if (probe.query.indexOf(":" + param) > 0) { |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1020 |
stmt.params[param] = params[param]; |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1021 |
} |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1022 |
} |
|
86059
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
1023 |
|
|
193129
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1024 |
try { |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1025 |
stmt.executeAsync({ |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1026 |
handleError: reject, |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1027 |
handleResult: function (aResultSet) { |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1028 |
let row = aResultSet.getNextRow(); |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1029 |
resolve([probe, row.getResultByIndex(0)]); |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1030 |
}, |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1031 |
handleCompletion: function () {} |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1032 |
}); |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1033 |
} finally{ |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1034 |
stmt.finalize(); |
|
73637
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
1035 |
} |
|
193129
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1036 |
}); |
|
86059
2aaa19ec8815c1599312e5c37a3723af81bd560b
Bug 722242 - Avoid thread contention on idle maintenance. r=mak
Paolo Amadini <paolo.mozmail@amadzone.org>
parents:
85528
diff
changeset
|
1037 |
|
|
193129
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1038 |
// Report the result of the probe through Telemetry. |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1039 |
// The resulting promise cannot reject. |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1040 |
promiseDone = promiseDone.then( |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1041 |
// On success |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1042 |
([aProbe, aValue]) => { |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1043 |
let value = aValue; |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1044 |
try { |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1045 |
if ("callback" in aProbe) { |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1046 |
value = aProbe.callback(value); |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1047 |
} |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1048 |
probeValues[aProbe.histogram] = value; |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1049 |
Services.telemetry.getHistogramById(aProbe.histogram).add(value); |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1050 |
} catch (ex) { |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1051 |
Components.utils.reportError("Error adding value " + value + |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1052 |
" to histogram " + aProbe.histogram + |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1053 |
": " + ex); |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1054 |
} |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1055 |
}, |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1056 |
// On failure |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1057 |
this._handleError); |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1058 |
|
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1059 |
outstandingProbes.push(promiseDone); |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1060 |
} |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1061 |
|
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1062 |
if (aHealthReportCallback) { |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1063 |
Promise.all(outstandingProbes).then(() => |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1064 |
aHealthReportCallback(probeValues) |
|
2a980866313faa3c3f3a87daccab632e439b7ce7
Bug 1030266 - Ensuring that PlacesDBUtils.telemetry calls its callbacks even in case of error. r=mak
David Rajchenbach-Teller <dteller@mozilla.com>
parents:
190623
diff
changeset
|
1065 |
); |
|
73637
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
1066 |
} |
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
1067 |
|
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
1068 |
PlacesDBUtils._executeTasks(tasks); |
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
1069 |
}, |
|
638c7c0953da38c9ef5532efc8a50449da95b356
Bug 671001 - Use telemetry to collect common Places stats.
Marco Bonardo <mbonardo@mozilla.com>
parents:
71263
diff
changeset
|
1070 |
|
|
86337
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
1071 |
/** |
|
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
1072 |
* Runs a list of tasks, notifying log messages to the callback. |
|
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
1073 |
* |
|
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
1074 |
* @param aTasks |
|
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
1075 |
* Array of tasks to be executed, in form of pointers to methods in |
|
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
1076 |
* this module. |
|
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
1077 |
* @param [optional] aCallback |
|
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
1078 |
* Callback to be invoked when done. It will receive an array of |
|
106894
7530e96d9af635c68430a1d1cd97f67f74efaa0d
Bug 751813 - Stop spewing to the console about Places Maintenance.
Marco Bonardo <mbonardo@mozilla.com>
parents:
94475
diff
changeset
|
1079 |
* log messages. |
|
86337
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
1080 |
*/ |
|
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
1081 |
runTasks: function PDBU_runTasks(aTasks, aCallback) { |
|
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
1082 |
let tasks = new Tasks(aTasks); |
|
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
1083 |
tasks.callback = aCallback; |
|
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
1084 |
PlacesDBUtils._executeTasks(tasks); |
|
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
1085 |
} |
|
22552
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
1086 |
}; |
|
5f7a0e667bc4bc8c570ade67bd04c873bb40c9de
Bug 431558 - implement preventive maintenance for places.sqlite, r=dietrich
Marco Bonardo <mak77@bonardo.net>
parents:
diff
changeset
|
1087 |
|
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1088 |
/** |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1089 |
* LIFO tasks stack. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1090 |
* |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1091 |
* @param [optional] aTasks |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1092 |
* Array of tasks or another Tasks object to clone. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1093 |
*/ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1094 |
function Tasks(aTasks) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1095 |
{ |
|
67882
598855101f1258c76db07a7bef823c416d44f588
Bug 649211 - PlacesDBUtils console output is broken. r=sdwilsh
Marco Bonardo <mbonardo@mozilla.com>
parents:
63497
diff
changeset
|
1096 |
if (aTasks) { |
|
598855101f1258c76db07a7bef823c416d44f588
Bug 649211 - PlacesDBUtils console output is broken. r=sdwilsh
Marco Bonardo <mbonardo@mozilla.com>
parents:
63497
diff
changeset
|
1097 |
if (Array.isArray(aTasks)) { |
|
598855101f1258c76db07a7bef823c416d44f588
Bug 649211 - PlacesDBUtils console output is broken. r=sdwilsh
Marco Bonardo <mbonardo@mozilla.com>
parents:
63497
diff
changeset
|
1098 |
this._list = aTasks.slice(0, aTasks.length); |
|
598855101f1258c76db07a7bef823c416d44f588
Bug 649211 - PlacesDBUtils console output is broken. r=sdwilsh
Marco Bonardo <mbonardo@mozilla.com>
parents:
63497
diff
changeset
|
1099 |
} |
|
86337
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
1100 |
// This supports passing in a Tasks-like object, with a "list" property, |
|
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
1101 |
// for compatibility reasons. |
|
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
1102 |
else if (typeof(aTasks) == "object" && |
|
9422dadbfc7b262b204b49c1a9d0747be3e9738d
Bug 724805 - Bug 723126 broke PlacesDBUtils add-ons compatibility.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86187
diff
changeset
|
1103 |
(Tasks instanceof Tasks || "list" in aTasks)) { |
|
67882
598855101f1258c76db07a7bef823c416d44f588
Bug 649211 - PlacesDBUtils console output is broken. r=sdwilsh
Marco Bonardo <mbonardo@mozilla.com>
parents:
63497
diff
changeset
|
1104 |
this._list = aTasks.list; |
|
598855101f1258c76db07a7bef823c416d44f588
Bug 649211 - PlacesDBUtils console output is broken. r=sdwilsh
Marco Bonardo <mbonardo@mozilla.com>
parents:
63497
diff
changeset
|
1105 |
this._log = aTasks.messages; |
|
598855101f1258c76db07a7bef823c416d44f588
Bug 649211 - PlacesDBUtils console output is broken. r=sdwilsh
Marco Bonardo <mbonardo@mozilla.com>
parents:
63497
diff
changeset
|
1106 |
this.callback = aTasks.callback; |
|
598855101f1258c76db07a7bef823c416d44f588
Bug 649211 - PlacesDBUtils console output is broken. r=sdwilsh
Marco Bonardo <mbonardo@mozilla.com>
parents:
63497
diff
changeset
|
1107 |
this.scope = aTasks.scope; |
|
86187
a31efbfbba7bbcff4b06884c68d5b00193e12da3
Bug 723126 - Telemetry for time needed for idle maintenance.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86059
diff
changeset
|
1108 |
this._telemetryStart = aTasks._telemetryStart; |
|
67882
598855101f1258c76db07a7bef823c416d44f588
Bug 649211 - PlacesDBUtils console output is broken. r=sdwilsh
Marco Bonardo <mbonardo@mozilla.com>
parents:
63497
diff
changeset
|
1109 |
} |
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1110 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1111 |
} |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1112 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1113 |
Tasks.prototype = { |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1114 |
_list: [], |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1115 |
_log: [], |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1116 |
callback: null, |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1117 |
scope: null, |
|
86187
a31efbfbba7bbcff4b06884c68d5b00193e12da3
Bug 723126 - Telemetry for time needed for idle maintenance.
Marco Bonardo <mbonardo@mozilla.com>
parents:
86059
diff
changeset
|
1118 |
_telemetryStart: 0, |
|
60945
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1119 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1120 |
/** |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1121 |
* Adds a task to the top of the list. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1122 |
* |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1123 |
* @param aNewElt |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1124 |
* Task to be added. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1125 |
*/ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1126 |
push: function T_push(aNewElt) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1127 |
{ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1128 |
this._list.unshift(aNewElt); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1129 |
}, |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1130 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1131 |
/** |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1132 |
* Returns and consumes next task. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1133 |
* |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1134 |
* @return next task or undefined if no task is left. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1135 |
*/ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1136 |
pop: function T_pop() this._list.shift(), |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1137 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1138 |
/** |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1139 |
* Removes all tasks. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1140 |
*/ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1141 |
clear: function T_clear() |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1142 |
{ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1143 |
this._list.length = 0; |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1144 |
}, |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1145 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1146 |
/** |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1147 |
* Returns array of tasks ordered from the next to be run to the latest. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1148 |
*/ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1149 |
get list() this._list.slice(0, this._list.length), |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1150 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1151 |
/** |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1152 |
* Adds a message to the log. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1153 |
* |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1154 |
* @param aMsg |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1155 |
* String message to be added. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1156 |
*/ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1157 |
log: function T_log(aMsg) |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1158 |
{ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1159 |
this._log.push(aMsg); |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1160 |
}, |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1161 |
|
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1162 |
/** |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1163 |
* Returns array of log messages ordered from oldest to newest. |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1164 |
*/ |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1165 |
get messages() this._log.slice(0, this._log.length), |
|
3483b2d3112c0d51b44c1719c9731ca2342d63d5
Bug 609286 (Part 1) - Detect corrupt places.sqlite and replace it on next startup.
Marco Bonardo <mbonardo@mozilla.com>
parents:
59374
diff
changeset
|
1166 |
} |