Roll src/third_party/WebKit 3aea697:d9c6159 (svn 201973:201974)
[chromium-blink-merge.git] / mandoline / ui / phone_ui / phone_browser_application_delegate.h
blobc39e61bb6b98099571e38ec3dc0b0ac58a740a22
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"
21 namespace mojo {
22 class View;
25 namespace mandoline {
27 class PhoneBrowserApplicationDelegate :
28 public mojo::ApplicationDelegate,
29 public LaunchHandler,
30 public mojo::ViewTreeDelegate,
31 public mojo::ViewObserver,
32 public web_view::mojom::WebViewClient,
33 public mojo::InterfaceFactory<LaunchHandler> {
34 public:
35 PhoneBrowserApplicationDelegate();
36 ~PhoneBrowserApplicationDelegate() override;
38 private:
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_;
69 mojo::View* root_;
70 mojo::View* content_;
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_