Tried to organize files by the context they run in, as suggested by Lloyd here: https://gist.github.com/4127665
Removed a lot of old dead stuff, like popup notifications and socket.io.
This commit is contained in:
Paul Sawaya 2012-11-28 14:55:30 -08:00
Родитель d9154c96ac
Коммит 53b7caee3c
37 изменённых файлов: 56 добавлений и 4050 удалений

Просмотреть файл

@ -1,11 +1,10 @@
<!doctype html>
<script src="lib/jquery.js"></script>
<script src="lib/jsuri.js"></script>
<script src="lib/socket.io.js"></script>
<script src="infobar/manager.js"></script>
<script src="../lib/jquery.js"></script>
<script src="../lib/jsuri.js"></script>
<script src="../infobar/manager.js"></script>
<script src="util.js"></script>
<script src="pin_ui.js"></script>
<script src="pageaction_interface.js"></script>
<script src="browser_action_interface.js"></script>
<script src="clipboard.js"></script>
<script src="infobar_hooks.js"></script>
<script src="first_run.js"></script>

Просмотреть файл

@ -1,3 +1,14 @@
/*
* browser_action_interface.js
*
*
* These are some functions that allow the browserAction to get the state of the
* browser (ie, which tab is currently active) and send messages to the observer
* script running on that page.
*
*/
function getActiveTab(callback) {
// Taken from: http://code.google.com/p/pgn4web/issues/detail?id=110
chrome.windows.getCurrent(function(win) {

Просмотреть файл

Просмотреть файл

@ -14,14 +14,13 @@ function startFirstRunFlow() {
// Show the splash screen in a new tab. Should point the user to click
// on the browserAction.
chrome.tabs.create({
url: 'pages/first_run/index.html'
url: '../pages/first_run/index.html'
}, function(tab) {
initFirstRunInTab(tab);
});
// Set the browserAction popup to be the Gombot signup page.
chrome.browserAction.setPopup({
popup: "data/first_run.html"
});
// Updates the browserAction popup, stores that we haven't
// yet completed first run in localStorage.
setIfDidFirstRun(false);
}
function initFirstRunInTab(tab) {

Просмотреть файл

Просмотреть файл

@ -117,7 +117,7 @@ chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
function displayInfobar(notificationObj) {
var infobarPaths = {
password_observed: "data/remember_password_infobar.html"
password_observed: "/infobars/remember_password_infobar.html"
};
// Make sure we have a HTML infobar for this type of notification
if (!infobarPaths[notificationObj.notification.type]) return;

Просмотреть файл

@ -14,7 +14,7 @@ var lastPopupID = 0;
function promptUserForPIN(prompt,repeat,callback) {
console.log('promptUserForPIN');
chrome.windows.create({
url: 'data/pin_entry.html',
url: '../common/pin_entry.html',
type: 'popup',
width: 300,
height: 300,

Просмотреть файл

@ -38,7 +38,7 @@ function setIfDidFirstRun(firstRunFinished) {
});
// Update the browserAction popup page.
chrome.browserAction.setPopup({
popup: firstRunFinished ? "data/browser_action.html" : "data/first_run.html"
popup: firstRunFinished ? "browser_action/browser_action.html" : "browser_action/first_run.html"
});
}

Просмотреть файл

Просмотреть файл

@ -1,7 +1,3 @@
body {
width:600px;
}
#pin-entry {
display:none;
}

Просмотреть файл

@ -0,0 +1,16 @@
<!doctype html>
<html>
<head>
<link href="../lib/bootstrap.css" rel="stylesheet">
<link href="../common/pin_entry.css" rel="stylesheet">
<link href="browser_action.css" rel="stylesheet">
<script src="../lib/jquery.js"></script>
<script src="browser_action.js"></script>
</head>
<body>
<iframe src="../common/pin_entry.html" id="pin-entry-frame"></iframe>
<div id="logins"></div>
</body>
</html>

Просмотреть файл

Просмотреть файл

Просмотреть файл

@ -1,8 +1,8 @@
<!doctype html>
<html>
<head>
<link href="css/bootstrap.css" rel="stylesheet">
<link href="css/first_run.css" rel="stylesheet">
<link href="../lib/bootstrap.css" rel="stylesheet">
<link href="first_run.css" rel="stylesheet">
<script src="../lib/jquery.js"></script>
<script src="first_run_content.js"></script>
</head>
@ -36,7 +36,7 @@
<!-- Signup step 2: create a PIN -->
<div id="step2">
<iframe src="pin_entry.html" id="pin-entry-frame"></iframe>
<iframe src="../common/pin_entry.html" id="pin-entry-frame"></iframe>
</div>
<!-- Signup step 2: explain to the user what just happened -->

Просмотреть файл

Просмотреть файл

Просмотреть файл

@ -1,8 +1,8 @@
<!doctype html>
<html>
<head>
<link href="css/bootstrap.css" rel="stylesheet">
<link href="css/pin_entry.css" rel="stylesheet">
<link href="../lib/bootstrap.css" rel="stylesheet">
<link href="pin_entry.css" rel="stylesheet">
<script src="../lib/jquery.js"></script>
<script src="pin_entry.js"></script>
</head>

Просмотреть файл

Просмотреть файл

@ -1,13 +0,0 @@
window.addEventListener('login-success', function() {
alert('login-success');
});//
// window.__authSuccess = function(data) {
// alert('login-success');
// chrome.extension.sendMessage({
// type: 'login_success',
// message: {
// email: data.email
// }
// });
// };
//

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html>
<head>
<link href="css/bootstrap.css" rel="stylesheet">
<link href="css/pin_entry.css" rel="stylesheet">
<link href="css/browser_action.css" rel="stylesheet">
<script src="../lib/jquery.js"></script>
<script src="browser_action.js"></script>
</head>
<body>
<iframe src="pin_entry.html" id="pin-entry-frame"></iframe>
<div id="logins"></div>
</body>
</html>

Просмотреть файл

@ -1,4 +0,0 @@
.notification-widget {
/* Content script will set notification widgets to visible as needed. */
display:none;
}

Просмотреть файл

@ -1,38 +0,0 @@
.pwmgr-alert {
left:0px;
top:0px;
position:fixed;
width:100%;
min-height:50px;
background-color:#E4EDF7;
border:2px #e0e0ff solid;
text-align:center;
z-index:1000000100;
opacity:0.7;
font-family:helvetica,sans-serif;
}
.pwmgr-alert:hover {
opacity:1.0;
}
.pwmgr-alert .pwmgr-close {
color:red;
float:right;
text-decoration:none;
margin-right:30px;
}
.pwmgr-close:hover {
background-color:red;
color:white;
}
.pwmgr-alert .pwmgr-alert-text {
padding:20px;
}

Просмотреть файл

@ -1,81 +0,0 @@
(function() {
function createAlert(alertObj) {
var alertDiv = document.createElement('div');
alertDiv.className = "pwmgr-alert";
var alertMessage = document.createElement('div');
alertMessage.className = "pwmgr-alert-text";
alertMessage.appendChild(getAlertBody(alertObj));
var closeAlert = document.createElement('a');
closeAlert.href = "#";
closeAlert.className = 'pwmgr-close';
closeAlert.innerHTML = 'X';
closeAlert.addEventListener('click', function() {
document.body.removeChild(alertDiv);
});
alertDiv.appendChild(closeAlert);
alertDiv.appendChild(alertMessage);
return alertDiv;
}
function getAlertBody(alertObj) {
var bodyEl = document.createElement('div');
if (alertObj.type == 'password_observed') {
bodyEl.appendChild(document.createTextNode("SkyCrane saved login " + alertObj.username + ":"));
var passwordImg = document.createElement('img');
passwordImg.src = getDataURLForHash(alertObj.hash,50,13);
bodyEl.appendChild(passwordImg);
bodyEl.appendChild(document.createTextNode(" for site " + alertObj.hostname + "!"));
}
return bodyEl;
}
function displayAlert(alertObj) {
// document.body.appendChild(createAlert(alertObj));
document.body.insertBefore(createAlert(alertObj),document.body.children[0]);
}
function getDataURLForHash(passwordHash,inputWidth,inputHeight,numColorBars) {
function randomizeHash(passwordHash) {
// Add a little bit of randomness to each byte
for (var byteIdx = 0; byteIdx < passwordHash.length/2; byteIdx++) {
var byte = parseInt(passwordHash.substr(byteIdx*2,2),16);
// +/- 3, within 0-255
byte = Math.min(Math.max(byte + parseInt(Math.random()*6)-3,0),255);
var hexStr = byte.toString(16).length == 2 ? byte.toString(16) : '0' + byte.toString(16);
passwordHash = passwordHash.substr(0,byteIdx*2) + hexStr + passwordHash.substr(byteIdx*2+2);
}
return passwordHash;
}
if (!(numColorBars = Number(numColorBars)))
numColorBars = 4;
// Make sure there's enough data for the number of desired colorBars
numColorBars = Math.min(numColorBars,passwordHash.length/6);
var canvas = document.createElement('canvas');
canvas.height = inputHeight;
canvas.width = inputWidth;
var context = canvas.getContext('2d');
passwordHash = randomizeHash(passwordHash);
for (var hashBandX = 0; hashBandX < numColorBars; hashBandX++) {
context.fillStyle='#' + passwordHash.substr(hashBandX*6,6);
context.fillRect(hashBandX/numColorBars*inputWidth,0,inputWidth/numColorBars,inputHeight);
context.fillStyle='#000000';
context.fillRect(((hashBandX+1)/numColorBars*inputWidth)-1,0,2,inputHeight);
}
context.strokeStyle='#000000';
return canvas.toDataURL();
}
})();

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 2.4 KiB

После

Ширина:  |  Высота:  |  Размер: 2.4 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 25 KiB

После

Ширина:  |  Высота:  |  Размер: 25 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 162 KiB

После

Ширина:  |  Высота:  |  Размер: 162 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 69 KiB

После

Ширина:  |  Высота:  |  Размер: 69 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 3.4 KiB

После

Ширина:  |  Высота:  |  Размер: 3.4 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 15 KiB

После

Ширина:  |  Высота:  |  Размер: 15 KiB

Просмотреть файл

Просмотреть файл

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -11,30 +11,29 @@
"https://*/"
],
"icons": {
"128": "icons/gombot-icon-128.png"
"128": "images/gombot-icon-128.png"
},
"background": {
"page": "background.html"
"page": "background/background.html"
},
"options_page": "data/debug_settings.html",
"options_page": "pages/debug_settings/debug_settings.html",
"content_scripts": [
{
"matches": ["<all_urls>"],
"css": ["data/pwmgr.css"],
"js": ["data/pwmgr_inject.js","data/observer.js"]
"js": ["in_content/observer.js"]
}
],
"browser_action": {
"default_icon": "icons/cropped_persona_icon.png",
"default_popup": "data/browser_action.html"
"default_icon": "images/cropped_persona_icon.png",
"default_popup": "browser_action/browser_action.html"
},
"update_url": "http://dev.tobmog.org/downloads/updates.xml",
"web_accessible_resources": [
"icons/small.png",
"data/pin_entry.html",
"data/pin_entry.js",
"data/css/pin_entry.css",
"data/remember_password_infobar.html"
"images/small.png",
"common/pin_entry.html",
"common/pin_entry.js",
"common/pin_entry.css",
"infobars/remember_password_infobar.html"
]
}

Просмотреть файл

@ -1,8 +1,8 @@
<!doctype html>
<html>
<head>
<link href="css/bootstrap.css" rel="stylesheet">
<script src="../lib/jquery.js"></script>
<link href="../../lib/bootstrap.css" rel="stylesheet">
<script src="../../lib/jquery.js"></script>
<script src="debug_settings.js"></script>
<style>
textarea {

Просмотреть файл