Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(57)

Side by Side Diff: athena/main/athena_launcher.cc

Issue 549453005: Run athena on device (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ash/shell.cc ('k') | athena/wm/window_list_provider_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "athena/main/public/athena_launcher.h" 5 #include "athena/main/public/athena_launcher.h"
6 6
7 #include "athena/activity/public/activity_factory.h" 7 #include "athena/activity/public/activity_factory.h"
8 #include "athena/activity/public/activity_manager.h" 8 #include "athena/activity/public/activity_manager.h"
9 #include "athena/content/public/app_registry.h" 9 #include "athena/content/public/app_registry.h"
10 #include "athena/content/public/content_activity_factory_creator.h" 10 #include "athena/content/public/content_activity_factory_creator.h"
(...skipping 26 matching lines...) Expand all
37 #endif 37 #endif
38 38
39 namespace athena { 39 namespace athena {
40 struct AthenaEnvState; 40 struct AthenaEnvState;
41 } 41 }
42 42
43 DECLARE_WINDOW_PROPERTY_TYPE(athena::AthenaEnvState*); 43 DECLARE_WINDOW_PROPERTY_TYPE(athena::AthenaEnvState*);
44 44
45 namespace athena { 45 namespace athena {
46 46
47 namespace {
48
49 bool session_started = false;
50
51 } // namespace
52
47 class VirtualKeyboardObserver; 53 class VirtualKeyboardObserver;
48 54
49 // Athena's env state. 55 // Athena's env state.
50 struct AthenaEnvState { 56 struct AthenaEnvState {
51 scoped_ptr< ::wm::VisibilityController> visibility_client; 57 scoped_ptr< ::wm::VisibilityController> visibility_client;
52 scoped_ptr<VirtualKeyboardObserver> virtual_keyboard_observer; 58 scoped_ptr<VirtualKeyboardObserver> virtual_keyboard_observer;
53 }; 59 };
54 60
55 DEFINE_OWNED_WINDOW_PROPERTY_KEY(athena::AthenaEnvState, 61 DEFINE_OWNED_WINDOW_PROPERTY_KEY(athena::AthenaEnvState,
56 kAthenaEnvStateKey, 62 kAthenaEnvStateKey,
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 AthenaEnvState* env_state = 130 AthenaEnvState* env_state =
125 athena::ScreenManager::Get()->GetContext()->GetProperty( 131 athena::ScreenManager::Get()->GetContext()->GetProperty(
126 kAthenaEnvStateKey); 132 kAthenaEnvStateKey);
127 133
128 env_state->virtual_keyboard_observer.reset(new VirtualKeyboardObserver); 134 env_state->virtual_keyboard_observer.reset(new VirtualKeyboardObserver);
129 CreateTestPages(context); 135 CreateTestPages(context);
130 } 136 }
131 137
132 void StartAthenaSession(athena::ActivityFactory* activity_factory, 138 void StartAthenaSession(athena::ActivityFactory* activity_factory,
133 athena::AppModelBuilder* app_model_builder) { 139 athena::AppModelBuilder* app_model_builder) {
140 DCHECK(!session_started);
141 session_started = true;
134 athena::HomeCard::Create(app_model_builder); 142 athena::HomeCard::Create(app_model_builder);
135 athena::ActivityManager::Create(); 143 athena::ActivityManager::Create();
136 athena::ResourceManager::Create(); 144 athena::ResourceManager::Create();
137 athena::ActivityFactory::RegisterActivityFactory(activity_factory); 145 athena::ActivityFactory::RegisterActivityFactory(activity_factory);
138 } 146 }
139 147
140 void ShutdownAthena() { 148 void ShutdownAthena() {
141 athena::ActivityFactory::Shutdown(); 149 if (session_started) {
142 athena::ResourceManager::Shutdown(); 150 athena::ActivityFactory::Shutdown();
143 athena::ActivityManager::Shutdown(); 151 athena::ResourceManager::Shutdown();
144 athena::HomeCard::Shutdown(); 152 athena::ActivityManager::Shutdown();
153 athena::HomeCard::Shutdown();
154 session_started = false;
155 }
145 athena::AppRegistry::ShutDown(); 156 athena::AppRegistry::ShutDown();
146 athena::WindowManager::Shutdown(); 157 athena::WindowManager::Shutdown();
147 athena::SystemUI::Shutdown(); 158 athena::SystemUI::Shutdown();
148 athena::ScreenManager::Shutdown(); 159 athena::ScreenManager::Shutdown();
149 athena::InputManager::Shutdown(); 160 athena::InputManager::Shutdown();
150 athena::ExtensionsDelegate::Shutdown(); 161 athena::ExtensionsDelegate::Shutdown();
151 athena::AthenaEnv::Shutdown(); 162 athena::AthenaEnv::Shutdown();
152 163
153 delete views::ViewsDelegate::views_delegate; 164 delete views::ViewsDelegate::views_delegate;
154 } 165 }
155 166
156 } // namespace athena 167 } // namespace athena
OLDNEW
« no previous file with comments | « ash/shell.cc ('k') | athena/wm/window_list_provider_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698