]>
git.wh0rd.org - chrome-ext/clearhistory-advance-fork.git/blob - javascript/clearhistory.js
1 // Copyright 2011 Google Inc. All Rights Reserved.
4 * @fileoverview The main script for the Clear History extension for Chrome.
5 * @author arunjit@google.com (Arunjit Singh)
9 * Removes a single cookie
10 * @param {Object.<Cookie>} cookie The cookie to delete.
11 * @param {Function} callback The function to invoke when the cookie is deleted.
13 function removeCookie(cookie
, callback
) {
14 var url
= 'http' + (cookie
.secure
? 's' : '') + '://' + cookie
.domain
+
16 chrome
.cookies
.remove({url
: url
, name
: cookie
.name
}, callback
);
21 * @param {Function=} callback The function to invoke when all cookies are
24 function clearCookies(callback
) {
25 callback
= callback
|| function() {};
26 chrome
.cookies
.getAll({}, function(cookies
) {
27 var len
= cookies
.length
;
28 // Synchronize the cookie deletion and execute the callback only when all
29 // cookie deletion functions have called back (finished).
30 (function doCookieCleanup(i
) {
34 removeCookie(cookies
[i
], function() {
35 doCookieCleanup(i
+ 1);
43 * Callback for when history deletion is successful
45 function didClearHistory() {
46 chrome
.storage
.sync
.get('time', function(s
) {
47 var time
= ~~(s
.time
) || CONSTANTS
.DEFAULT_TIME
;
48 time
= getUnitsForTime(time
);
49 var timeString
= (time
.time
=== -1) ?
50 chrome
.i18n
.getMessage('notificationTimeAll') :
51 chrome
.i18n
.getMessage('notificationTime',
52 [time
.time
, time
.units
]);
53 var message
= chrome
.i18n
.getMessage('notificationBody', timeString
);
54 var notification
= webkitNotifications
.createNotification(
55 chrome
.extension
.getURL('/images/icon48.png'),
56 chrome
.i18n
.getMessage('notificationTitle'),
59 setTimeout(function() {
60 notification
.cancel();
66 * Clears the history for the amount of time stored in {@code localStorage}
68 function clearHistory() {
69 //Get the values from localStorage
71 chrome
.storage
.sync
.get(['time', 'timeStart'], function(s
) {
72 var time
= ~~(s
.time
) || CONSTANTS
.DEFAULT_TIME
;
75 chrome
.history
.deleteAll(didClearHistory
);
78 var timeStart
= s
.timeStart
=== CONSTANTS
.YES
;
79 var now
= (new Date
).getTime();
80 var startTime
= (now
- time
* 60 * 60 * 1000); // time from hrs to ms
84 var endTime
= startTime
;
91 // Delete history in the range
92 chrome
.history
.deleteRange(range
, didClearHistory
);
97 function runCleaner() {
98 chrome
.storage
.sync
.get('cookies', function(s
) {
99 var clearCookies
= s
.cookies
|| CONSTANTS
.NO
;
101 if (clearCookies
=== CONSTANTS
.YES
) {
102 clearCookies(clearHistory
);
110 * Executes when the user clicks the browser action. Uses stored values from
111 * {@code localStorage}
113 chrome
.browserAction
.onClicked
.addListener(function(tab
) {
114 // Get the value from localStorage
115 chrome
.storage
.sync
.get('prompt', function(s
) {
116 var showPrompt
= s
.prompt
|| CONSTANTS
.YES
;
118 // The confirmation message to ask
119 var message
= chrome
.i18n
.getMessage('confirmPrompt');
121 // Clear cookies, and then clear the history
122 if (showPrompt
=== CONSTANTS
.YES
) {
123 if (!confirm(message
))
130 chrome
.alarms
.get(CONSTANTS
.CLEANER_ALARM
, function(a
) {
134 chrome
.alarms
.create(CONSTANTS
.CLEANER_ALARM
, {
135 // First fire 10 minutes from now.
136 'when': Date
.now() + (10 * 60 * 1000),
137 'periodInMinutes': 24 * 60
141 chrome
.alarms
.onAlarm
.addListener(function(alarm
) {
142 chrome
.storage
.sync
.get('autoclear', function(s
) {
143 var autoCleaner
= s
.autoclear
|| CONSTANTS
.NO
;
144 if (autoCleaner
=== CONSTANTS
.YES
)