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

Side by Side Diff: athena/env/athena_env_impl.cc

Issue 544953003: Supprot V2 app: step1 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase 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 | « athena/content/web_activity.cc ('k') | athena/env/athena_env_unittest.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/env/public/athena_env.h" 5 #include "athena/env/public/athena_env.h"
6 6
7 #include <vector>
8
7 #include "athena/util/fill_layout_manager.h" 9 #include "athena/util/fill_layout_manager.h"
8 #include "base/sys_info.h" 10 #include "base/sys_info.h"
9 #include "ui/aura/client/aura_constants.h" 11 #include "ui/aura/client/aura_constants.h"
10 #include "ui/aura/client/cursor_client.h" 12 #include "ui/aura/client/cursor_client.h"
11 #include "ui/aura/client/default_capture_client.h" 13 #include "ui/aura/client/default_capture_client.h"
12 #include "ui/aura/env.h" 14 #include "ui/aura/env.h"
13 #include "ui/aura/test/test_screen.h" 15 #include "ui/aura/test/test_screen.h"
14 #include "ui/aura/window_event_dispatcher.h" 16 #include "ui/aura/window_event_dispatcher.h"
15 #include "ui/aura/window_tree_host.h" 17 #include "ui/aura/window_tree_host.h"
16 #include "ui/aura/window_tree_host_observer.h" 18 #include "ui/aura/window_tree_host_observer.h"
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 244
243 ScreenForShutdown::Create(screen_.get()); 245 ScreenForShutdown::Create(screen_.get());
244 screen_.reset(); 246 screen_.reset();
245 aura::Env::DeleteInstance(); 247 aura::Env::DeleteInstance();
246 248
247 display_configurator_->RemoveObserver(this); 249 display_configurator_->RemoveObserver(this);
248 display_configurator_.reset(); 250 display_configurator_.reset();
249 } 251 }
250 252
251 private: 253 private:
254 struct Finder {
255 explicit Finder(const base::Closure& c) : closure(c) {}
256 bool operator()(const base::Closure& other) {
257 return closure.Equals(other);
258 }
259 base::Closure closure;
260 };
261
262 // AthenaEnv:
252 virtual aura::WindowTreeHost* GetHost() OVERRIDE { return host_.get(); } 263 virtual aura::WindowTreeHost* GetHost() OVERRIDE { return host_.get(); }
253 264
254 // AthenaEnv:
255 virtual void SetDisplayWorkAreaInsets(const gfx::Insets& insets) OVERRIDE { 265 virtual void SetDisplayWorkAreaInsets(const gfx::Insets& insets) OVERRIDE {
256 screen_->SetWorkAreaInsets(insets); 266 screen_->SetWorkAreaInsets(insets);
257 } 267 }
258 268
269 virtual void AddTerminatingCallback(const base::Closure& closure) OVERRIDE {
270 if (closure.is_null())
271 return;
272 DCHECK(terminating_callbacks_.end() ==
273 std::find_if(terminating_callbacks_.begin(),
274 terminating_callbacks_.end(),
275 Finder(closure)));
276 terminating_callbacks_.push_back(closure);
277 }
278
279 virtual void RemoveTerminatingCallback(
280 const base::Closure& closure) OVERRIDE {
281 std::vector<base::Closure>::iterator iter =
282 std::find_if(terminating_callbacks_.begin(),
283 terminating_callbacks_.end(),
284 Finder(closure));
285 if (iter != terminating_callbacks_.end())
286 terminating_callbacks_.erase(iter);
287 }
288
289 virtual void OnTerminating() OVERRIDE {
290 for (std::vector<base::Closure>::iterator iter =
291 terminating_callbacks_.begin();
292 iter != terminating_callbacks_.end();
293 ++iter) {
294 iter->Run();
295 }
296 }
297
259 // ui::DisplayConfigurator::Observer: 298 // ui::DisplayConfigurator::Observer:
260 virtual void OnDisplayModeChanged(const std::vector< 299 virtual void OnDisplayModeChanged(const std::vector<
261 ui::DisplayConfigurator::DisplayState>& displays) OVERRIDE { 300 ui::DisplayConfigurator::DisplayState>& displays) OVERRIDE {
262 gfx::Size size = GetPrimaryDisplaySize(); 301 gfx::Size size = GetPrimaryDisplaySize();
263 if (!size.IsEmpty()) 302 if (!size.IsEmpty())
264 host_->UpdateRootWindowSize(size); 303 host_->UpdateRootWindowSize(size);
265 } 304 }
266 305
267 // aura::WindowTreeHostObserver: 306 // aura::WindowTreeHostObserver:
268 virtual void OnHostCloseRequested(const aura::WindowTreeHost* host) OVERRIDE { 307 virtual void OnHostCloseRequested(const aura::WindowTreeHost* host) OVERRIDE {
(...skipping 14 matching lines...) Expand all
283 scoped_ptr<aura::WindowTreeHost> host_; 322 scoped_ptr<aura::WindowTreeHost> host_;
284 323
285 scoped_ptr<wm::InputMethodEventFilter> input_method_filter_; 324 scoped_ptr<wm::InputMethodEventFilter> input_method_filter_;
286 scoped_ptr<wm::CompoundEventFilter> root_window_event_filter_; 325 scoped_ptr<wm::CompoundEventFilter> root_window_event_filter_;
287 scoped_ptr<aura::client::DefaultCaptureClient> capture_client_; 326 scoped_ptr<aura::client::DefaultCaptureClient> capture_client_;
288 scoped_ptr<wm::CursorManager> cursor_manager_; 327 scoped_ptr<wm::CursorManager> cursor_manager_;
289 scoped_ptr<wm::UserActivityDetector> user_activity_detector_; 328 scoped_ptr<wm::UserActivityDetector> user_activity_detector_;
290 scoped_ptr<ui::DisplayConfigurator> display_configurator_; 329 scoped_ptr<ui::DisplayConfigurator> display_configurator_;
291 scoped_ptr<ui::UserActivityPowerManagerNotifier> user_activity_notifier_; 330 scoped_ptr<ui::UserActivityPowerManagerNotifier> user_activity_notifier_;
292 331
332 std::vector<base::Closure> terminating_callbacks_;
333
293 DISALLOW_COPY_AND_ASSIGN(AthenaEnvImpl); 334 DISALLOW_COPY_AND_ASSIGN(AthenaEnvImpl);
294 }; 335 };
295 336
296 } // namespace 337 } // namespace
297 338
298 // static 339 // static
299 void AthenaEnv::Create() { 340 void AthenaEnv::Create() {
300 DCHECK(!instance); 341 DCHECK(!instance);
301 new AthenaEnvImpl(); 342 new AthenaEnvImpl();
302 } 343 }
303 344
304 AthenaEnv* AthenaEnv::Get() { 345 AthenaEnv* AthenaEnv::Get() {
305 DCHECK(instance); 346 DCHECK(instance);
306 return instance; 347 return instance;
307 } 348 }
308 349
309 // static 350 // static
310 351
311 // static 352 // static
312 void AthenaEnv::Shutdown() { 353 void AthenaEnv::Shutdown() {
313 DCHECK(instance); 354 DCHECK(instance);
314 delete instance; 355 delete instance;
315 } 356 }
316 357
317 } // namespace athena 358 } // namespace athena
OLDNEW
« no previous file with comments | « athena/content/web_activity.cc ('k') | athena/env/athena_env_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698