| Index: chrome/browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_controller.h
 | 
| diff --git a/chrome/browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_controller.h b/chrome/browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_controller.h
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..b6c970bdee67a1c444023a56319e5a9add961e92
 | 
| --- /dev/null
 | 
| +++ b/chrome/browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_controller.h
 | 
| @@ -0,0 +1,85 @@
 | 
| +// Copyright 2017 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.
 | 
| +
 | 
| +#ifndef CHROME_BROWSER_SAFE_BROWSING_SETTINGS_RESET_PROMPT_SETTINGS_RESET_PROMPT_CONTROLLER_H_
 | 
| +#define CHROME_BROWSER_SAFE_BROWSING_SETTINGS_RESET_PROMPT_SETTINGS_RESET_PROMPT_CONTROLLER_H_
 | 
| +
 | 
| +#include <memory>
 | 
| +#include <vector>
 | 
| +
 | 
| +#include "base/macros.h"
 | 
| +#include "base/strings/string16.h"
 | 
| +
 | 
| +class Browser;
 | 
| +
 | 
| +namespace safe_browsing {
 | 
| +
 | 
| +class SettingsResetPromptModel;
 | 
| +
 | 
| +// The |SettingsResetPromptController| class is responsible for providing the
 | 
| +// text that will be displayed in the settings reset dialog. The controller's
 | 
| +// |Accept()| and |Cancel()| functions will be called based on user
 | 
| +// interaction. Objects of this class will delete themselves after |Accept()| or
 | 
| +// |Cancel()| has been called.
 | 
| +class SettingsResetPromptController {
 | 
| + public:
 | 
| +  // A simple struct representing text to be displayed in the dialog.
 | 
| +  struct LabelInfo {
 | 
| +    enum LabelType {
 | 
| +      // Strings of type PARAGRAPH will be displayed by multiline labels.
 | 
| +      PARAGRAPH,
 | 
| +      // Strings of type BULLET_ITEM will be displayed as a (possibly elided)
 | 
| +      // single-line label starting with a bullet point.
 | 
| +      BULLET_ITEM,
 | 
| +    };
 | 
| +
 | 
| +    LabelInfo(LabelType type, const base::string16& text);
 | 
| +    // Convenience constructor for displaying resource strings.
 | 
| +    LabelInfo(LabelType type, int message_id);
 | 
| +    ~LabelInfo();
 | 
| +
 | 
| +    LabelType type;
 | 
| +    base::string16 text;
 | 
| +  };
 | 
| +
 | 
| +  // A controller should be created only if |model->ShouldPromptforReset()|
 | 
| +  // is true.
 | 
| +  explicit SettingsResetPromptController(
 | 
| +      std::unique_ptr<SettingsResetPromptModel> model);
 | 
| +  static void ShowSettingsResetPrompt(
 | 
| +      Browser* browser,
 | 
| +      SettingsResetPromptController* controller);
 | 
| +
 | 
| +  base::string16 GetWindowTitle() const;
 | 
| +  base::string16 GetButtonLabel() const;
 | 
| +  base::string16 GetShowDetailsLabel() const;
 | 
| +  base::string16 GetHideDetailsLabel() const;
 | 
| +  const std::vector<LabelInfo>& GetMainText() const;
 | 
| +  const std::vector<LabelInfo>& GetDetailsText() const;
 | 
| +  // |Accept()| will be called by the dialog when the user clicks the main
 | 
| +  // button, after which the dialog will be closed.
 | 
| +  void Accept();
 | 
| +  // |Cancel()| will be called by the dialog when the user clicks the dismiss
 | 
| +  // button on the top right, after which the dialog will be closed.
 | 
| +  void Cancel();
 | 
| +
 | 
| + private:
 | 
| +  ~SettingsResetPromptController();
 | 
| +  void InitMainText();
 | 
| +  void InitDetailsText();
 | 
| +  // Function to be called sometime after |Accept()| or |Cancel()| has been
 | 
| +  // called to perform any final tasks (such as metrcis reporting) and delete
 | 
| +  // this object.
 | 
| +  void OnInteractionDone();
 | 
| +
 | 
| +  std::unique_ptr<SettingsResetPromptModel> model_;
 | 
| +  std::vector<SettingsResetPromptController::LabelInfo> details_text_;
 | 
| +  std::vector<SettingsResetPromptController::LabelInfo> main_text_;
 | 
| +
 | 
| +  DISALLOW_COPY_AND_ASSIGN(SettingsResetPromptController);
 | 
| +};
 | 
| +
 | 
| +}  // namespace safe_browsing
 | 
| +
 | 
| +#endif  // CHROME_BROWSER_SAFE_BROWSING_SETTINGS_RESET_PROMPT_SETTINGS_RESET_PROMPT_CONTROLLER_H_
 | 
| 
 |