Pin Chrome's shortcut to the Win10 Start menu on install and OS upgrade.
[chromium-blink-merge.git] / mojo / runner / android / ui_application_loader_android.cc
blob4579e80c9b5f5b5715f2c32806b29bc414d235b0
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.
5 #include "mojo/runner/android/ui_application_loader_android.h"
7 #include "base/bind.h"
8 #include "base/message_loop/message_loop.h"
9 #include "mojo/shell/application_manager.h"
11 namespace mojo {
12 namespace runner {
14 UIApplicationLoader::UIApplicationLoader(
15 scoped_ptr<ApplicationLoader> real_loader,
16 base::MessageLoop* ui_message_loop)
17 : loader_(real_loader.Pass()), ui_message_loop_(ui_message_loop) {
20 UIApplicationLoader::~UIApplicationLoader() {
21 ui_message_loop_->PostTask(
22 FROM_HERE, base::Bind(&UIApplicationLoader::ShutdownOnUIThread,
23 base::Unretained(this)));
26 void UIApplicationLoader::Load(
27 const GURL& url,
28 InterfaceRequest<Application> application_request) {
29 DCHECK(application_request.is_pending());
30 ui_message_loop_->PostTask(
31 FROM_HERE,
32 base::Bind(&UIApplicationLoader::LoadOnUIThread, base::Unretained(this),
33 url, base::Passed(&application_request)));
36 void UIApplicationLoader::LoadOnUIThread(
37 const GURL& url,
38 InterfaceRequest<Application> application_request) {
39 loader_->Load(url, application_request.Pass());
42 void UIApplicationLoader::ShutdownOnUIThread() {
43 // Destroy |loader_| on the thread it's actually used on.
44 loader_.reset();
47 } // namespace runner
48 } // namespace mojo