Index: chrome/browser/resources/security_warnings/safe_browsing.js |
diff --git a/chrome/browser/resources/security_warnings/safe_browsing.js b/chrome/browser/resources/security_warnings/safe_browsing.js |
index 3673da5ceefcc616a57118fa3d285c562b05d3a0..bf7001eb30556ffc5a7258a8430dc7eb96e08f8c 100644 |
--- a/chrome/browser/resources/security_warnings/safe_browsing.js |
+++ b/chrome/browser/resources/security_warnings/safe_browsing.js |
@@ -12,24 +12,47 @@ var SB_CMD_SHOW_DIAGNOSTIC = 'showDiagnostic'; |
var SB_CMD_SHOW_PRIVACY = 'showPrivacy'; |
var SB_CMD_TAKE_ME_BACK = 'takeMeBack'; |
-// Other constants defined in safe_browsing_blocking_page.cc. |
+// Must match SSLBlockingPageCommands in ssl_blocking_page.h. |
+var SSL_CMD_DO_REPORT = 6; |
+var SSL_CMD_DONT_REPORT = 7; |
+ |
+// Other constants defined in security_interstitial_page.h. |
var SB_BOX_CHECKED = 'boxchecked'; |
var SB_DISPLAY_CHECK_BOX = 'displaycheckbox'; |
-// This sets up the Extended Safe Browsing Reporting opt-in. |
-function setupCheckbox() { |
- if (loadTimeData.getString('type') != 'SAFEBROWSING' || |
+// This sets up the Extended Safe Browsing Reporting opt-in, either for |
+// reporting malware or invalid certificate chains, depending on which |
+// |type| is passed in. |type| can be 'SAFEBROWSING' or |
+// 'SSL' (to set up the invalid cert collection checkbox). |
+function setupCheckbox(type) { |
+ if (type != 'SAFEBROWSING' && type != 'SSL') { |
+ throw new Error('setupCheckbox called for invalid interstitial.'); |
+ } |
+ |
+ var container = type == 'SAFEBROWSING' ? |
+ 'malware-opt-in' : 'cert-collection-opt-in'; |
+ |
+ if (loadTimeData.getString('type') != type || |
!loadTimeData.getBoolean(SB_DISPLAY_CHECK_BOX)) { |
return; |
} |
- $('opt-in-label').innerHTML = loadTimeData.getString('optInLink'); |
- $('opt-in-checkbox').checked = loadTimeData.getBoolean(SB_BOX_CHECKED); |
- $('malware-opt-in').classList.remove('hidden'); |
+ $(container + '-label').innerHTML = |
+ loadTimeData.getString('optInLink'); |
+ $(container + '-checkbox').checked = |
+ loadTimeData.getBoolean(SB_BOX_CHECKED); |
+ |
+ $(container).classList.remove('hidden'); |
$('body').classList.add('safe-browsing-has-checkbox'); |
- $('opt-in-checkbox').addEventListener('click', function() { |
- sendCommand( |
- $('opt-in-checkbox').checked ? SB_CMD_DO_REPORT : SB_CMD_DONT_REPORT); |
+ $(container + '-checkbox').addEventListener('click', function() { |
+ var command; |
+ if ($(container + '-checkbox').checked) { |
+ command = type == 'SAFEBROWSING' ? SB_CMD_DO_REPORT : SSL_CMD_DO_REPORT; |
+ } else { |
+ command = type == 'SAFEBROWSING' ? |
+ SB_CMD_DONT_REPORT : SSL_CMD_DONT_REPORT; |
+ } |
+ sendCommand(command); |
}); |
} |