Use int64 more pervasively in storing time s/ms/us values.
[chromium-blink-merge.git] / mojo / shell / ui_application_loader_android.h
blobbed36cad1716fcc5510ae245207c4fe2d2815506
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 #ifndef MOJO_SHELL_UI_APPLICATION_LOADER_ANDROID_H_
6 #define MOJO_SHELL_UI_APPLICATION_LOADER_ANDROID_H_
8 #include "base/macros.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "mojo/application_manager/application_loader.h"
12 namespace mojo {
14 class ApplicationManager;
16 namespace shell {
17 class Context;
20 // ApplicationLoader implementation that creates a background thread and issues
21 // load
22 // requests there.
23 class UIApplicationLoader : public ApplicationLoader {
24 public:
25 UIApplicationLoader(scoped_ptr<ApplicationLoader> real_loader,
26 shell::Context* context);
27 virtual ~UIApplicationLoader();
29 // ApplicationLoader overrides:
30 virtual void Load(ApplicationManager* manager,
31 const GURL& url,
32 scoped_refptr<LoadCallbacks> callbacks) override;
33 virtual void OnApplicationError(ApplicationManager* manager,
34 const GURL& url) override;
36 private:
37 class UILoader;
39 // These functions are exected on the background thread. They call through
40 // to |background_loader_| to do the actual loading.
41 // TODO: having this code take a |manager| is fragile (as ApplicationManager
42 // isn't thread safe).
43 void LoadOnUIThread(ApplicationManager* manager,
44 const GURL& url,
45 ScopedMessagePipeHandle* shell_handle);
46 void OnApplicationErrorOnUIThread(ApplicationManager* manager,
47 const GURL& url);
48 void ShutdownOnUIThread();
50 scoped_ptr<ApplicationLoader> loader_;
51 shell::Context* context_;
53 // Lives on the UI thread. Trivial interface that calls through to |loader_|.
54 UILoader* ui_loader_;
56 DISALLOW_COPY_AND_ASSIGN(UIApplicationLoader);
59 } // namespace mojo
61 #endif // MOJO_SHELL_UI_APPLICATION_LOADER_ANDROID_H_