| Index: chrome/browser/resources/options/reset_profile_settings_banner.js
 | 
| diff --git a/chrome/browser/resources/options/reset_profile_settings_banner.js b/chrome/browser/resources/options/reset_profile_settings_banner.js
 | 
| index 4517e9151c7fed0d4ba41775df3337f2c710d506..ffa2b07c1c5c4adfda5e0adf7d828b5c7c4aafda 100644
 | 
| --- a/chrome/browser/resources/options/reset_profile_settings_banner.js
 | 
| +++ b/chrome/browser/resources/options/reset_profile_settings_banner.js
 | 
| @@ -6,6 +6,7 @@
 | 
|  
 | 
|  cr.define('options', function() {
 | 
|    /** @const */ var OptionsPage = options.OptionsPage;
 | 
| +  /** @const */ var SettingsBannerBase = options.SettingsBannerBase;
 | 
|  
 | 
|    /**
 | 
|     * ResetProfileSettingsBanner class
 | 
| @@ -17,28 +18,19 @@ cr.define('options', function() {
 | 
|    cr.addSingletonGetter(ResetProfileSettingsBanner);
 | 
|  
 | 
|    ResetProfileSettingsBanner.prototype = {
 | 
| -    /**
 | 
| -     * Whether or not the banner has already been dismissed.
 | 
| -     *
 | 
| -     * This is needed because of the surprising ordering of asynchronous
 | 
| -     * JS<->native calls when the settings page is opened with specifying a
 | 
| -     * given sub-page, e.g. chrome://settings/resetProfileSettings.
 | 
| -     *
 | 
| -     * In such a case, ResetProfileSettingsOverlay's didShowPage(), which calls
 | 
| -     * our dismiss() method, would be called before the native Handlers'
 | 
| -     * InitalizePage() methods have an effect in the JS, which includes calling
 | 
| -     * our show() method. This would mean that the banner would be first
 | 
| -     * dismissed, then shown. We want to prevent this.
 | 
| -     *
 | 
| -     * @type {boolean}
 | 
| -     * @private
 | 
| -     */
 | 
| -    hadBeenDismissed_: false,
 | 
| +    __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']);
 | 
| @@ -50,39 +42,6 @@ cr.define('options', function() {
 | 
|          OptionsPage.navigateToPage('resetProfileSettings');
 | 
|        };
 | 
|      },
 | 
| -
 | 
| -    /**
 | 
| -     * Called by the native code to show the banner if needed.
 | 
| -     * @private
 | 
| -     */
 | 
| -    show_: function() {
 | 
| -      if (!this.hadBeenDismissed_) {
 | 
| -        chrome.send('metricsHandler:recordAction',
 | 
| -            ['AutomaticReset_WebUIBanner_BannerShown']);
 | 
| -        this.setVisibility_(true);
 | 
| -      }
 | 
| -    },
 | 
| -
 | 
| -    /**
 | 
| -     * Called when the banner should be closed as a result of something taking
 | 
| -     * place on the WebUI page, i.e. when its close button is pressed, or when
 | 
| -     * the confirmation dialog for the profile settings reset feature is opened.
 | 
| -     * @private
 | 
| -     */
 | 
| -    dismiss_: function() {
 | 
| -      chrome.send('onDismissedResetProfileSettingsBanner');
 | 
| -      this.hadBeenDismissed_ = true;
 | 
| -      this.setVisibility_(false);
 | 
| -    },
 | 
| -
 | 
| -    /**
 | 
| -     * Sets whether or not the reset profile settings banner shall be visible.
 | 
| -     * @param {boolean} show Whether or not to show the banner.
 | 
| -     * @private
 | 
| -     */
 | 
| -    setVisibility_: function(show) {
 | 
| -      $('reset-profile-settings-banner').hidden = !show;
 | 
| -    }
 | 
|    };
 | 
|  
 | 
|    // Forward public APIs to private implementations.
 | 
| 
 |