blob: ffa2b07c1c5c4adfda5e0adf7d828b5c7c4aafda [file] [log] [blame]
// 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.
// Note: the native-side handler for this is ResetProfileSettingsHandler.
cr.define('options', function() {
/** @const */ var OptionsPage = options.OptionsPage;
/** @const */ var SettingsBannerBase = options.SettingsBannerBase;
/**
* ResetProfileSettingsBanner class
* Provides encapsulated handling of the Reset Profile Settings banner.
* @constructor
*/
function ResetProfileSettingsBanner() {}
cr.addSingletonGetter(ResetProfileSettingsBanner);
ResetProfileSettingsBanner.prototype = {
__proto__: SettingsBannerBase.prototype,
/**
* Initializes the banner's event handlers.
*/
initialize: function() {
this.showMetricName_ = 'AutomaticReset_WebUIBanner_BannerShown';
this.dismissNativeCallbackName_ =
'onDismissedResetProfileSettingsBanner';
this.setVisibilibyDomElement_ = $('reset-profile-settings-banner');
$('reset-profile-settings-banner-close').onclick = function(event) {
chrome.send('metricsHandler:recordAction',
['AutomaticReset_WebUIBanner_ManuallyClosed']);
ResetProfileSettingsBanner.dismiss();
};
$('reset-profile-settings-banner-activate').onclick = function(event) {
chrome.send('metricsHandler:recordAction',
['AutomaticReset_WebUIBanner_ResetClicked']);
OptionsPage.navigateToPage('resetProfileSettings');
};
},
};
// Forward public APIs to private implementations.
[
'show',
'dismiss',
].forEach(function(name) {
ResetProfileSettingsBanner[name] = function() {
var instance = ResetProfileSettingsBanner.getInstance();
return instance[name + '_'].apply(instance, arguments);
};
});
// Export
return {
ResetProfileSettingsBanner: ResetProfileSettingsBanner
};
});