• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 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 "apps/shell/browser/default_shell_browser_main_delegate.h"
6 
7 #include "apps/shell/browser/default_shell_app_window_controller.h"
8 #include "apps/shell/browser/shell_desktop_controller.h"
9 #include "apps/shell/browser/shell_extension_system.h"
10 #include "base/command_line.h"
11 #include "base/file_util.h"
12 #include "base/files/file_path.h"
13 
14 namespace apps {
15 
DefaultShellBrowserMainDelegate()16 DefaultShellBrowserMainDelegate::DefaultShellBrowserMainDelegate() {
17 }
18 
~DefaultShellBrowserMainDelegate()19 DefaultShellBrowserMainDelegate::~DefaultShellBrowserMainDelegate() {
20 }
21 
Start(content::BrowserContext * browser_context)22 void DefaultShellBrowserMainDelegate::Start(
23     content::BrowserContext* browser_context) {
24   const std::string kAppSwitch = "app";
25   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
26   if (command_line->HasSwitch(kAppSwitch)) {
27     base::FilePath app_dir(command_line->GetSwitchValueNative(kAppSwitch));
28     base::FilePath app_absolute_dir = base::MakeAbsoluteFilePath(app_dir);
29 
30     extensions::ShellExtensionSystem* extension_system =
31         static_cast<extensions::ShellExtensionSystem*>(
32             extensions::ExtensionSystem::Get(browser_context));
33     if (!extension_system->LoadApp(app_absolute_dir))
34       return;
35     extension_system->LaunchApp();
36   } else {
37     LOG(ERROR) << "--" << kAppSwitch << " unset; boredom is in your future";
38   }
39 }
40 
Shutdown()41 void DefaultShellBrowserMainDelegate::Shutdown() {
42 }
43 
44 ShellDesktopController*
CreateDesktopController()45 DefaultShellBrowserMainDelegate::CreateDesktopController() {
46   ShellDesktopController* desktop = new ShellDesktopController();
47   desktop->SetAppWindowController(new DefaultShellAppWindowController(desktop));
48   return desktop;
49 }
50 
51 }  // namespace apps
52