1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h" 6 7 #include "ash/ash_switches.h" 8 #include "base/command_line.h" 9 #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app.h" 10 #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser.h" 11 12 // statics 13 ChromeLauncherController* ChromeLauncherController::instance_ = NULL; 14 15 // static 16 ChromeLauncherController* ChromeLauncherController::CreateInstance( 17 Profile* profile, 18 ash::LauncherModel* model) { 19 // We do not check here for re-creation of the ChromeLauncherController since 20 // it appears that it might be intentional that the ChromeLauncherController 21 // can be re-created. 22 if (!CommandLine::ForCurrentProcess()->HasSwitch( 23 ash::switches::kAshDisablePerAppLauncher)) 24 instance_ = new ChromeLauncherControllerPerApp(profile, model); 25 else 26 instance_ = new ChromeLauncherControllerPerBrowser(profile, model); 27 return instance_; 28 } 29 30 ChromeLauncherController::~ChromeLauncherController() { 31 if (instance_ == this) 32 instance_ = NULL; 33 } 34 35 bool ChromeLauncherController::IsPerAppLauncher() { 36 if (!instance_) 37 return false; 38 return instance_->GetPerAppInterface() != NULL; 39 } 40