/
toolstrip-handler.js
113 lines (106 loc) · 4.49 KB
/
toolstrip-handler.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
// Copyright (c) 2009, Scott Ferguson
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
// * Neither the name of the software nor the
// names of its contributors may be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY SCOTT FERGUSON ''AS IS'' AND ANY
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL SCOTT FERGUSON BE LIABLE FOR ANY
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
/**
* Message event listener so that we can talk to the content-script
*
*/
chrome.extension.onConnect.addListener(function(port) {
port.onMessage.addListener(function(data) {
switch (data.message) {
case 'OpenSettings':
onToolbarClick();
break;
case 'ChangeSetting':
localStorage.setItem(data.option, data.value);
break;
case 'OpenTab':
openNewTab(data.url);
break;
case 'ShowPageAction':
// Register the tab with the tagging page action
chrome.pageActions.enableForTab("forums_jump_list",
{
tabId: port.tab.id,
url: port.tab.url,
title: "Click to open forum jump list",
iconId: 0
});
break;
case 'GetPageSettings':
// If we don't have stored settings, set defaults
if (!localStorage.getItem('username')) {
setupDefaultPreferences();
}
var response = {};
for ( var index in localStorage ) {
response[index] = localStorage.getItem(index);
}
// Respond with the username
port.postMessage(response);
break;
case 'log':
default:
console.log(data);
}
});
});
/**
* Event handler for clicking on the toolstrip logo
*
* @param element - Toolstrip element
*/
function onToolbarClick() {
chrome.tabs.create({url:chrome.extension.getURL('settings.html')});
}
/**
* Opens a new tab with the specified URL
*
*
*/
function openNewTab(aUrl) {
chrome.tabs.create({url: aUrl});
}
/**
* Sets up default preferences for highlighting only
*
*/
function setupDefaultPreferences() {
localStorage.setItem('userQuote', '#a2cd5a');
localStorage.setItem('darkRead', '#6699cc');
localStorage.setItem('lightRead', '#99ccff');
localStorage.setItem('darkNewReplies', '#99cc99');
localStorage.setItem('lightNewReplies', '#ccffcc');
localStorage.setItem('youtubeHighlight', '#ff00ff');
localStorage.setItem('displayConfigureSalr', 'true');
localStorage.setItem('highlightFriendsColor', "#f2babb");
localStorage.setItem('highlightSelfColor', "#f2babb");
localStorage.setItem('highlightAdminColor', "#ff7256");
localStorage.setItem('highlightModeratorColor', "#b4eeb4");
localStorage.setItem('inlinePostCounts', 'false');
localStorage.setItem('disableCustomButtons', 'false');
localStorage.setItem('highlightOPColor', '#fff2aa');
localStorage.setItem('displayPageNavigator', 'true');
localStorage.setItem('userNotesEnabled', 'true');
}