Bug 476596 - Malware 'why is this site blocked' button does not take me to safebrowsing diagnostic page. Patch by Christopher Henderson <trendyhendy2000@gmail.com>, r=murph, sr=smorgan

git-svn-id: svn://10.0.0.236/trunk@257206 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
alqahira%ardisson.org
2009-05-15 18:21:18 +00:00
parent 73222995ae
commit 24152b386e
6 changed files with 37 additions and 3 deletions

View File

@@ -236,6 +236,9 @@ pref("browser.safebrowsing.provider.0.reportPhishURL", "http://{moz:locale}.phis
// Location to more information about the safe browsing feature
pref("browser.safebrowsing.warning.infoURL", "http://en-us.www.mozilla.com/en-US/firefox/phishing-protection/");
// URL for checking the reason for a malware warning.
pref("browser.safebrowsing.malware.reportURL", "http://safebrowsing.clients.google.com/safebrowsing/diagnostic?client={moz:client}&hl={moz:locale}&site=");
// Name of the about: page contributed by safebrowsing to handle display of error
// pages on phishing/malware hits.
pref("urlclassifier.alternate_error_page", "safebrowsingblocked");

View File

@@ -84,6 +84,7 @@
#import "ToolbarScriptItem.h"
#import "SearchEngineManager.h"
#import "SearchEngineEditor.h"
#import "CmXULAppInfo.h"
// For search plugin description keys:
#import "XMLSearchPluginParser.h"
@@ -5166,6 +5167,30 @@ public:
[self loadURL:blockingInformationURL referrer:nil focusContent:YES allowPopups:NO];
}
- (void)showMalwareDiagnosticInformation
{
NSString *malwareDiagnosticURL =
[[PreferenceManager sharedInstance] getStringPref:kGeckoPrefSafeBrowsingMalwareDiagnosticURL
withSuccess:NULL];
NSString *locale =
[[PreferenceManager sharedInstance] getStringPref:kGeckoPrefUserAgentLocale
withSuccess:NULL];
// Fill in certain URL parameter tokens with values.
NSMutableString *filledURL = [[malwareDiagnosticURL mutableCopy] autorelease];
[filledURL replaceOccurrencesOfString:@"{moz:client}"
withString:[XULAppInfo name]
options:NULL
range:NSMakeRange(0, [filledURL length])];
[filledURL replaceOccurrencesOfString:@"{moz:locale}"
withString:locale
options:NULL
range:NSMakeRange(0, [filledURL length])];
[filledURL appendString:[mBrowserView currentURI]];
[self loadURL:filledURL referrer:nil focusContent:YES allowPopups:NO];
}
@end
#pragma mark -

View File

@@ -86,6 +86,7 @@ extern NSString* const kBrowserInstanceClosedNotification;
// Called when the user clicks buttons on the about:safebrowsingblocked error page.
- (void)runAwayFromSafeBrowsingBlockedSite;
- (void)showSafeBrowsingInformation;
- (void)showMalwareDiagnosticInformation;
@end

View File

@@ -1103,9 +1103,12 @@ static FlashblockWhitelistManager* sFlashblockWhitelistManager = nil;
allowPopups:NO];
}
else if ([elementIdentifier isEqualToString:@"whyBlockedButton"]) {
// Note: pageURI can be examined for e=phishingBlocked or e=malwareBlocked
// to customize the blocking info location for each case...
[mDelegate showSafeBrowsingInformation];
// Examine pageURI for e=phishingBlocked or e=malwareBlocked
// to customize the blocking info location for each case.
if ([pageURI rangeOfString:@"e=malwareBlocked"].location != NSNotFound)
[mDelegate showMalwareDiagnosticInformation];
else // e=phishingBlocked
[mDelegate showSafeBrowsingInformation];
}
}
}

View File

@@ -322,6 +322,7 @@ extern NSString* const kGeckoPrefSafeBrowsingDataProviderReportURL; // strin
extern NSString* const kGeckoPrefSafeBrowsingDataProviderGetHashURL; // string
extern const char* const kGeckoPrefSafeBrowsingInformationURL; // string
extern const char* const kGeckoPrefSafeBrowsingMalwareDiagnosticURL; // string
extern const char* const kGeckoPrefSafeBrowsingPhishingCheckingEnabled; // bool
extern const char* const kGeckoPrefSafeBrowsingMalwareCheckingEnabled; // bool
extern const char* const kGeckoPrefSafeBrowsingDataProvider; // int

View File

@@ -209,6 +209,7 @@ NSString* const kGeckoPrefSafeBrowsingDataProviderReportURL = @"browser.safebrow
NSString* const kGeckoPrefSafeBrowsingDataProviderGetHashURL = @"browser.safebrowsing.provider.%i.gethashURL";
const char* const kGeckoPrefSafeBrowsingInformationURL = "browser.safebrowsing.warning.infoURL";
const char* const kGeckoPrefSafeBrowsingMalwareDiagnosticURL = "browser.safebrowsing.malware.reportURL";
const char* const kGeckoPrefSafeBrowsingPhishingCheckingEnabled = "browser.safebrowsing.enabled";
const char* const kGeckoPrefSafeBrowsingMalwareCheckingEnabled = "browser.safebrowsing.malware.enabled";
const char* const kGeckoPrefSafeBrowsingDataProvider = "browser.safebrowsing.dataProvider";