Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: lib/typoFixer.js

Issue 8382011: Applied changes from emailed code review (Closed)
Patch Set: Applied remaining changes Created Sept. 26, 2012, 9:02 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« lib/typedItCollector.js ('K') | « lib/typedItCollector.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/typoFixer.js
===================================================================
--- a/lib/typoFixer.js
+++ b/lib/typoFixer.js
@@ -143,8 +143,7 @@
function correctURL(window, value)
{
let hasCorrection = false;
-
- // Trim it
+
value = value.trim();
if (value.length == 0)
return null;
@@ -178,9 +177,9 @@
return null;
// Check manually entered corrections
- if (Prefs.custom_replace[value])
+ if (Prefs.custom_replace.hasOwnProperty(value) && Prefs.custom_replace[value])
return Prefs.custom_replace[value];
-
+
let [prefix, domain, suffix] = parseURL(value);
if (!domain)
return null;
@@ -231,54 +230,38 @@
return null;
// Show infobar to inform and ask about correction
- let browser = appIntegration.getBrowser(window);
- let infobar = browser.getNotificationBox();
- let notif = infobar.getNotificationWithValue("url-fixer-infobar-askafter");
+ let [message, yes, no, cancel] = getInfobarTexts();
Wladimir Palant 2012/09/28 09:29:34 You don't use a Cancel button - please remove the
+ message = message.replace(/\?1\?/g, prefix+domain);
+ let buttons = [
+ {
+ label: yes,
+ accessKey: null,
+ callback: function()
+ {
+ // Yes: Do nothing
+ }
+ },
+ {
+ label: no,
+ accessKey: null,
+ callback: function()
+ {
+ // No: Add to list of corrections (ignore)
+ if (/^www\./.test(value))
+ {
+ value = value.substr(4);
+ }
+ Prefs.whitelist[value] = value;
Wladimir Palant 2012/09/28 09:29:34 Comments from previous review not addressed here -
+ Prefs.whitelist = JSON.parse(JSON.stringify(Prefs.whitelist));
- let [message, yes, no, cancel] = getAskAfterDialogTexts();
- message = message.replace(/\?1\?/g, prefix+domain);
+ require("appIntegration").loadURI(value);
+ processFalsePositive(oldDomain, domain);
+ }
+ }
+ ];
+ require("appIntegration").openInfobar(window, "url-fixer-infobar-askafter", message, buttons, 1);
Wladimir Palant 2012/09/28 09:29:34 It isn't obvious why we pass 1 for persistence her
- if (notif)
- {
- notif.label = message;
- }
- else
- {
- let buttons = [
- {
- label: yes,
- accessKey: null,
- callback: function()
- {
- // Yes: Do nothing
- }
- },
- {
- label: no,
- accessKey: null,
- callback: function()
- {
- // No: Add to list of corrections (ignore)
- // TODO: maybe find more appropriate place to store this information
- Prefs.custom_replace[value] = value;
- Prefs.custom_replace = JSON.parse(JSON.stringify(Prefs.custom_replace));
-
- browser.loadURI(value);
- processFalsePositive(oldDomain, domain);
- }
- }
- ];
- notif = infobar.appendNotification(
- message,
- "url-fixer-infobar-askafter",
- require("info").addonRoot + "icon64.png",
- infobar.PRIORITY_INFO_LOW,
- buttons
- );
- notif.persistence = 1;
- }
-
- require("survey").incrementCorrectionsCounter(window);
+ require("survey").incrementCorrectionsCounter();
// Consider the correction a second typed domain
if (!isIPAddress(domain))
@@ -289,8 +272,9 @@
let stringBundle = null;
-function getAskAfterDialogTexts()
+function getInfobarTexts()
{
+ // Randomize URI to work around bug 719376
if (!stringBundle)
stringBundle = Services.strings.createBundle("chrome://url-fixer/locale/locale.properties?" + Math.random());
let result = [
@@ -300,6 +284,6 @@
stringBundle.GetStringFromName("urlfixer.cancel")
];
- getAskAfterDialogTexts = function() result;
- return getAskAfterDialogTexts();
+ getInfobarTexts = function() result;
+ return getInfobarTexts();
}
« lib/typedItCollector.js ('K') | « lib/typedItCollector.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld