1 // Copyright 2015 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 MANDOLINE_UI_PHONE_UI_PHONE_BROWSER_APPLICATION_DELEGATE_H_
6 #define MANDOLINE_UI_PHONE_UI_PHONE_BROWSER_APPLICATION_DELEGATE_H_
8 #include "base/macros.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "components/view_manager/public/cpp/view_observer.h"
11 #include "components/view_manager/public/cpp/view_tree_delegate.h"
12 #include "components/view_manager/public/interfaces/view_tree_host.mojom.h"
13 #include "components/web_view/public/cpp/web_view.h"
14 #include "components/web_view/public/interfaces/web_view.mojom.h"
15 // TODO(beng): move this file somewhere common.
16 #include "mandoline/ui/desktop_ui/public/interfaces/launch_handler.mojom.h"
17 #include "mojo/application/public/cpp/application_delegate.h"
18 #include "mojo/application/public/cpp/interface_factory.h"
19 #include "mojo/common/weak_binding_set.h"
27 class PhoneBrowserApplicationDelegate
:
28 public mojo::ApplicationDelegate
,
30 public mojo::ViewTreeDelegate
,
31 public mojo::ViewObserver
,
32 public web_view::mojom::WebViewClient
,
33 public mojo::InterfaceFactory
<LaunchHandler
> {
35 PhoneBrowserApplicationDelegate();
36 ~PhoneBrowserApplicationDelegate() override
;
39 // Overridden from mojo::ApplicationDelegate:
40 void Initialize(mojo::ApplicationImpl
* app
) override
;
41 bool ConfigureIncomingConnection(
42 mojo::ApplicationConnection
* connection
) override
;
44 // Overridden from LaunchHandler:
45 void LaunchURL(const mojo::String
& url
) override
;
47 // Overridden from mojo::ViewTreeDelegate:
48 void OnEmbed(mojo::View
* root
) override
;
49 void OnConnectionLost(mojo::ViewTreeConnection
* connection
) override
;
51 // Overridden from mojo::ViewObserver:
52 void OnViewBoundsChanged(mojo::View
* view
,
53 const mojo::Rect
& old_bounds
,
54 const mojo::Rect
& new_bounds
) override
;
56 // Overridden from web_view::mojom::WebViewClient:
57 void TopLevelNavigate(mojo::URLRequestPtr request
) override
;
58 void LoadingStateChanged(bool is_loading
) override
;
59 void ProgressChanged(double progress
) override
;
60 void TitleChanged(const mojo::String
& title
) override
;
62 // Overridden from mojo::InterfaceFactory<LaunchHandler>:
63 void Create(mojo::ApplicationConnection
* connection
,
64 mojo::InterfaceRequest
<LaunchHandler
> request
) override
;
66 mojo::ApplicationImpl
* app_
;
67 mojo::ViewTreeHostPtr host_
;
71 web_view::WebView web_view_
;
73 mojo::String default_url_
;
75 mojo::WeakBindingSet
<LaunchHandler
> launch_handler_bindings_
;
77 DISALLOW_COPY_AND_ASSIGN(PhoneBrowserApplicationDelegate
);
80 } // namespace mandoline
82 #endif // MANDOLINE_UI_PHONE_UI_PHONE_BROWSER_APPLICATION_DELEGATE_H_