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/mus/public/cpp/view_observer.h"
11 #include "components/mus/public/cpp/view_tree_delegate.h"
12 #include "components/mus/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 mus::ViewTreeDelegate
,
31 public mus::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 mus::ViewTreeDelegate:
48 void OnEmbed(mus::View
* root
) override
;
49 void OnConnectionLost(mus::ViewTreeConnection
* connection
) override
;
51 // Overridden from mus::ViewObserver:
52 void OnViewBoundsChanged(mus::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
, double progress
) override
;
59 void BackForwardChanged(web_view::mojom::ButtonState back_button
,
60 web_view::mojom::ButtonState forward_button
) override
;
61 void TitleChanged(const mojo::String
& title
) override
;
63 // Overridden from mojo::InterfaceFactory<LaunchHandler>:
64 void Create(mojo::ApplicationConnection
* connection
,
65 mojo::InterfaceRequest
<LaunchHandler
> request
) override
;
67 mojo::ApplicationImpl
* app_
;
68 mojo::ViewTreeHostPtr host_
;
72 web_view::WebView web_view_
;
74 mojo::String default_url_
;
76 mojo::WeakBindingSet
<LaunchHandler
> launch_handler_bindings_
;
78 DISALLOW_COPY_AND_ASSIGN(PhoneBrowserApplicationDelegate
);
81 } // namespace mandoline
83 #endif // MANDOLINE_UI_PHONE_UI_PHONE_BROWSER_APPLICATION_DELEGATE_H_