1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// found in the LICENSE file. 4bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 5bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_HELP_APP_LAUNCHER_H_ 6bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#define CHROME_BROWSER_CHROMEOS_LOGIN_HELP_APP_LAUNCHER_H_ 7bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#pragma once 8bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/ref_counted.h" 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/scoped_ptr.h" 11bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "chrome/browser/chromeos/login/login_html_dialog.h" 1272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/gfx/native_widget_types.h" 13bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 14bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsennamespace chromeos { 15bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 16bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Provides help content during OOBE / login. 17bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Based on connectivity state (offline/online) shows help topic dialog 18bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// or launches HelpApp in BWSI mode. 1972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenclass HelpAppLauncher : public LoginHtmlDialog::Delegate, 2072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen public base::RefCountedThreadSafe<HelpAppLauncher> { 21bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen public: 22bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // IDs of help topics available from HelpApp. 23bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen enum HelpTopic { 24bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Showed on basic connectivity issues. 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen HELP_CONNECTIVITY = 188752, 26bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Showed at EULA screen as "Learn more" about stats/crash reports. 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen HELP_STATS_USAGE = 183078, 28bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Showed whenever there're troubles signing in (offline case). 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen HELP_CANT_ACCESS_ACCOUNT_OFFLINE = 188755, 30513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch // Showed whenever there're troubles signing in (online case). 31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen HELP_CANT_ACCESS_ACCOUNT = 188036, 32bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Showed in case when account was disabled. 33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen HELP_ACCOUNT_DISABLED = 188756, 34513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch // Showed in case when hosted account is used. 35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen HELP_HOSTED_ACCOUNT = 1054228, 36bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen }; 37bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 38bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Parent window is used to show dialog. 39513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch explicit HelpAppLauncher(gfx::NativeWindow parent_window); 40bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 41bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Shows specified help topic. 42bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen void ShowHelpTopic(HelpTopic help_topic_id); 43bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 44201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch // Returns true if the dialog is currently open. 45201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch bool is_open() const { return dialog_.get() && dialog_->is_open(); } 46201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 47bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen protected: 48bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // LoginHtmlDialog::Delegate implementation: 49bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen virtual void OnDialogClosed() {} 50bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 51bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen private: 52bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Shows help topic dialog for specified GURL. 53bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen void ShowHelpTopicDialog(const GURL& topic_url); 54bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 55bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Dialog used to display help like "Can't access your account". 56bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen scoped_ptr<LoginHtmlDialog> dialog_; 57bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 58bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Parent window which is passed to help dialog. 59bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen gfx::NativeWindow parent_window_; 60bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 61bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen DISALLOW_COPY_AND_ASSIGN(HelpAppLauncher); 62bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 63bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 64bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} // namespace chromeos 65bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 66bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#endif // CHROME_BROWSER_CHROMEOS_LOGIN_HELP_APP_LAUNCHER_H_ 67