// Copyright 2013 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.
function toggleHelpBox() {
var helpBoxOuter = document.getElementById('help-box-outer');
helpBoxOuter.classList.toggle('hidden');
var moreLessButton = document.getElementById('more-less-button');
if (helpBoxOuter.classList.contains('hidden')) {
moreLessButton.innerText = moreLessButton.moreText;
} else {
moreLessButton.innerText = moreLessButton.lessText;
}
}
function diagnoseErrors() {
var extension_id = "idddmepepmjcgiedknnmlbadcokidhoa";
var diagnose_frame = document.getElementById('diagnose-frame');
diagnose_frame.innerHTML =
'<iframe src="chrome-extension://' + extension_id +
'/index.html"></iframe>';
}
// Subframes use a different layout but the same html file. This is to make it
// easier to support platforms that load the error page via different
// mechanisms (Currently just iOS).
if (window.top.location != window.location)
document.documentElement.setAttribute('subframe', '');
// Re-renders the error page using |strings| as the dictionary of values.
// Used by NetErrorTabHelper to update DNS error pages with probe results.
function updateForDnsProbe(strings) {
i18nTemplate.process(document, strings);
var context = new JsEvalContext(strings);
jstProcess(context, document.getElementById('t'));
}
// Given the classList property of an element, adds an icon class to the list
// and removes the previously-
function updateIconClass(classList, newClass) {
var oldClass;
if (classList.hasOwnProperty('last_icon_class')) {
oldClass = classList['last_icon_class']
if (oldClass == newClass)
return;
}
classList.add(newClass);
if (oldClass !== undefined)
classList.remove(oldClass);
classList['last_icon_class'] = newClass;
}
// Does a search using |baseSearchUrl| and the text in the search box.
function search(baseSearchUrl) {
var searchTextNode = document.getElementById('search-box');
document.location = baseSearchUrl + searchTextNode.value;
return false;
}
// Use to track clicks on elements generated by the navigation correction
// service. If |trackingId| is negative, the element does not come from the
// correction service.
function trackClick(trackingId) {
// This can't be done with XHRs because XHRs are cancelled on navigation
// start, and because these are cross-site requests.
if (trackingId >= 0 && errorPageController)
errorPageController.trackClick(trackingId);
}
// Called when an <a> tag generated by the navigation correction service is
// clicked. Separate function from trackClick so the resources don't have to
// be updated if new data is added to jstdata.
function linkClicked(jstdata) {
trackClick(jstdata.trackingId);
}
// Implements button clicks. This function is needed during the transition
// between implementing these in trunk chromium and implementing them in
// iOS.
function reloadButtonClick(url) {
if (window.errorPageController) {
errorPageController.reloadButtonClick();
} else {
location = url;
}
}
function loadStaleButtonClick() {
if (window.errorPageController) {
errorPageController.loadStaleButtonClick();
}
}
function moreButtonClick() {
if (window.errorPageController) {
errorPageController.moreButtonClick();
}
}
<if expr="is_macosx or is_ios or is_linux or is_android">
// Re-orders buttons. Used on Mac, Linux, and Android, where reload should go
// on the right.
function swapButtonOrder() {
var reloadButton = document.getElementById('reload-button');
var moreLessButton = document.getElementById('more-less-button');
var staleLoadButton = document.getElementById('stale-load-button');
reloadButton.parentNode.insertBefore(moreLessButton, reloadButton);
reloadButton.parentNode.insertBefore(staleLoadButton, reloadButton)
}
document.addEventListener("DOMContentLoaded", swapButtonOrder);
</if>