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 5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/chromeos/login/help_app_launcher.h" 6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 7bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include <string> 8bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/stringprintf.h" 103f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen#include "base/utf_string_conversions.h" 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/extensions/extension_service.h" 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/profiles/profile.h" 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/profiles/profile_manager.h" 14bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "grit/generated_resources.h" 1572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/base/l10n/l10n_util.h" 16bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 17bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsennamespace { 18bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenconst char kHelpAppFormat[] = 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen "chrome-extension://honijodknafkokifofgiaalefdiedpko/oobe.html?id=%d"; 21bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace chromeos { 25bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 26bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen/////////////////////////////////////////////////////////////////////////////// 27bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// HelpApp, public: 28bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 29bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenHelpAppLauncher::HelpAppLauncher(gfx::NativeWindow parent_window) 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen : parent_window_(parent_window) { 31bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 32bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 33bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenvoid HelpAppLauncher::ShowHelpTopic(HelpTopic help_topic_id) { 34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen Profile* profile = ProfileManager::GetDefaultProfile(); 35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ExtensionService* service = profile->GetExtensionService(); 36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen DCHECK(service); 38ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen if (!service) 39bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen return; 40bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen GURL url(base::StringPrintf(kHelpAppFormat, 42ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen static_cast<int>(help_topic_id))); 43ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // HelpApp component extension presents only in official builds so we can 44ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // show help only when the extensions is installed. 45ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen if (service->GetExtensionByURL(url)) 46ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ShowHelpTopicDialog(GURL(url)); 47bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 48bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 49bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen/////////////////////////////////////////////////////////////////////////////// 50bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// HelpApp, private: 51bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 52bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenvoid HelpAppLauncher::ShowHelpTopicDialog(const GURL& topic_url) { 5372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 54ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen dialog_.reset(new LoginHtmlDialog( 55ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen this, 56ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen parent_window_, 57ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen UTF16ToWide( 58ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen l10n_util::GetStringUTF16(IDS_LOGIN_OOBE_HELP_DIALOG_TITLE)), 59ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen topic_url, 60ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen LoginHtmlDialog::STYLE_BUBBLE)); 61bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen dialog_->Show(); 62bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 63bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 64bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} // namespace chromeos 65