blob: 52becaf8e58a88665c97a889ad623347ae3669bf [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This is the shared code for the new (Chrome 37) security interstitials. It is
// used for both SSL interstitials and Safe Browsing interstitials.
var expandedDetails = false;
function setupEvents() {
var overridable = loadTimeData.getBoolean('overridable');
var ssl = loadTimeData.getBoolean('ssl');
if (ssl) {
$('body').classList.add('ssl');
} else {
$('body').classList.add('safe-browsing');
setupMalwareFinchExperiment();
}
$('primary-button').addEventListener('click', function() {
if (!ssl)
sendCommand(SB_CMD_TAKE_ME_BACK);
else if (overridable)
sendCommand(CMD_DONT_PROCEED);
else
sendCommand(CMD_RELOAD);
});
if (overridable) {
$('proceed-link').addEventListener('click', function(event) {
sendCommand(ssl ? CMD_PROCEED : SB_CMD_PROCEED);
});
} else if (!ssl) {
$('final-paragraph').classList.add('hidden');
}
if (ssl && overridable) {
$('proceed-link').classList.add('small-link');
} else {
// Overridable SSL page doesn't have this link.
$('help-link').addEventListener('click', function(event) {
if (ssl)
sendCommand(CMD_HELP);
else if (loadTimeData.getBoolean('phishing'))
sendCommand(SB_CMD_LEARN_MORE_2);
else
sendCommand(SB_CMD_SHOW_DIAGNOSTIC);
});
}
if (ssl && !overridable) {
$('error-code').textContent = loadTimeData.getString('errorCode');
$('error-code').classList.remove('hidden');
}
$('details-button').addEventListener('click', function(event) {
var hiddenDetails = $('details').classList.toggle('hidden');
$('details-button').innerText = hiddenDetails ?
loadTimeData.getString('openDetails') :
loadTimeData.getString('closeDetails');
if (!expandedDetails) {
// Record a histogram entry only the first time that details is opened.
sendCommand(ssl ? CMD_MORE : SB_CMD_EXPANDED_SEE_MORE);
expandedDetails = true;
}
});
preventDefaultOnPoundLinkClicks();
setupCheckbox();
}
document.addEventListener('DOMContentLoaded', setupEvents);