| OLD | NEW |
| (Empty) |
| 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. | |
| 4 | |
| 5 #ifndef SERVICES_SKY_DOCUMENT_VIEW_H_ | |
| 6 #define SERVICES_SKY_DOCUMENT_VIEW_H_ | |
| 7 | |
| 8 #include "base/callback.h" | |
| 9 #include "base/memory/weak_ptr.h" | |
| 10 #include "mojo/public/cpp/application/lazy_interface_ptr.h" | |
| 11 #include "mojo/public/cpp/application/service_provider_impl.h" | |
| 12 #include "mojo/public/cpp/bindings/strong_binding.h" | |
| 13 #include "mojo/public/interfaces/application/application.mojom.h" | |
| 14 #include "mojo/services/content_handler/public/interfaces/content_handler.mojom.
h" | |
| 15 #include "mojo/services/navigation/public/interfaces/navigation.mojom.h" | |
| 16 #include "mojo/services/network/public/interfaces/network_service.mojom.h" | |
| 17 #include "mojo/services/network/public/interfaces/url_loader.mojom.h" | |
| 18 #include "mojo/services/service_registry/public/interfaces/service_registry.mojo
m.h" | |
| 19 #include "mojo/services/view_manager/public/cpp/view_manager_client_factory.h" | |
| 20 #include "mojo/services/view_manager/public/cpp/view_manager_delegate.h" | |
| 21 #include "mojo/services/view_manager/public/cpp/view_observer.h" | |
| 22 #include "services/sky/compositor/layer_client.h" | |
| 23 #include "services/sky/compositor/layer_host_client.h" | |
| 24 #include "sky/engine/public/platform/ServiceProvider.h" | |
| 25 #include "sky/engine/public/sky/sky_view.h" | |
| 26 #include "sky/engine/public/sky/sky_view_client.h" | |
| 27 #include "ui/events/gestures/gesture_types.h" | |
| 28 | |
| 29 namespace mojo { | |
| 30 class ViewManager; | |
| 31 class View; | |
| 32 } | |
| 33 | |
| 34 namespace sky { | |
| 35 class Rasterizer; | |
| 36 class RasterizerBitmap; | |
| 37 class Layer; | |
| 38 class LayerHost; | |
| 39 class DartLibraryProviderImpl; | |
| 40 | |
| 41 class DocumentView : public blink::ServiceProvider, | |
| 42 public blink::SkyViewClient, | |
| 43 public mojo::ViewManagerDelegate, | |
| 44 public mojo::ViewObserver, | |
| 45 public sky::LayerClient, | |
| 46 public sky::LayerHostClient, | |
| 47 public ui::GestureConsumer { | |
| 48 public: | |
| 49 DocumentView(mojo::InterfaceRequest<mojo::ServiceProvider> services, | |
| 50 mojo::ServiceProviderPtr exported_services, | |
| 51 mojo::URLResponsePtr response, | |
| 52 mojo::Shell* shell); | |
| 53 ~DocumentView() override; | |
| 54 | |
| 55 base::WeakPtr<DocumentView> GetWeakPtr(); | |
| 56 | |
| 57 mojo::Shell* shell() const { return shell_; } | |
| 58 | |
| 59 // sky::LayerHostClient | |
| 60 mojo::Shell* GetShell() override; | |
| 61 void BeginFrame(base::TimeTicks frame_time) override; | |
| 62 void OnSurfaceIdAvailable(mojo::SurfaceIdPtr surface_id) override; | |
| 63 // sky::LayerClient | |
| 64 void PaintContents(SkCanvas* canvas, const gfx::Rect& clip) override; | |
| 65 | |
| 66 // SkyViewClient methods: | |
| 67 void ScheduleFrame() override; | |
| 68 | |
| 69 void StartDebuggerInspectorBackend(); | |
| 70 | |
| 71 void GetPixelsForTesting(std::vector<unsigned char>* pixels); | |
| 72 | |
| 73 mojo::ScopedMessagePipeHandle TakeServicesProvidedToEmbedder(); | |
| 74 mojo::ScopedMessagePipeHandle TakeServicesProvidedByEmbedder(); | |
| 75 mojo::ScopedMessagePipeHandle TakeServiceRegistry(); | |
| 76 | |
| 77 private: | |
| 78 // SkyViewClient methods: | |
| 79 void DidCreateIsolate(Dart_Isolate isolate) override; | |
| 80 | |
| 81 // Services methods: | |
| 82 mojo::NavigatorHost* NavigatorHost() override; | |
| 83 | |
| 84 // ViewManagerDelegate methods: | |
| 85 void OnEmbed(mojo::View* root, | |
| 86 mojo::InterfaceRequest<mojo::ServiceProvider> services, | |
| 87 mojo::ServiceProviderPtr exposed_services) override; | |
| 88 void OnViewManagerDisconnected(mojo::ViewManager* view_manager) override; | |
| 89 | |
| 90 // ViewObserver methods: | |
| 91 void OnViewBoundsChanged(mojo::View* view, | |
| 92 const mojo::Rect& old_bounds, | |
| 93 const mojo::Rect& new_bounds) override; | |
| 94 void OnViewViewportMetricsChanged( | |
| 95 mojo::View* view, | |
| 96 const mojo::ViewportMetrics& old_metrics, | |
| 97 const mojo::ViewportMetrics& new_metrics) override; | |
| 98 void OnViewFocusChanged(mojo::View* gained_focus, | |
| 99 mojo::View* lost_focus) override; | |
| 100 void OnViewDestroyed(mojo::View* view) override; | |
| 101 void OnViewInputEvent(mojo::View* view, const mojo::EventPtr& event) override; | |
| 102 | |
| 103 void Load(mojo::URLResponsePtr response); | |
| 104 float GetDevicePixelRatio() const; | |
| 105 scoped_ptr<Rasterizer> CreateRasterizer(); | |
| 106 | |
| 107 void UpdateRootSizeAndViewportMetrics(const mojo::Rect& new_bounds); | |
| 108 | |
| 109 void InitServiceRegistry(); | |
| 110 | |
| 111 mojo::URLResponsePtr response_; | |
| 112 mojo::ServiceProviderImpl exported_services_; | |
| 113 mojo::ServiceProviderPtr imported_services_; | |
| 114 mojo::InterfaceRequest<mojo::ServiceProvider> services_provided_to_embedder_; | |
| 115 mojo::ServiceProviderPtr services_provided_by_embedder_; | |
| 116 mojo::NetworkServicePtr network_service_; | |
| 117 mojo::Shell* shell_; | |
| 118 mojo::NavigatorHostPtr navigator_host_; | |
| 119 std::unique_ptr<blink::SkyView> sky_view_; | |
| 120 mojo::View* root_; | |
| 121 mojo::ViewManagerClientFactory view_manager_client_factory_; | |
| 122 scoped_ptr<DartLibraryProviderImpl> library_provider_; | |
| 123 scoped_ptr<LayerHost> layer_host_; | |
| 124 scoped_refptr<Layer> root_layer_; | |
| 125 RasterizerBitmap* bitmap_rasterizer_; // Used for pixel tests. | |
| 126 mojo::ServiceRegistryPtr service_registry_; | |
| 127 scoped_ptr<mojo::StrongBinding<mojo::ServiceProvider>> | |
| 128 service_registry_service_provider_binding_; | |
| 129 | |
| 130 base::WeakPtrFactory<DocumentView> weak_factory_; | |
| 131 | |
| 132 DISALLOW_COPY_AND_ASSIGN(DocumentView); | |
| 133 }; | |
| 134 | |
| 135 } // namespace sky | |
| 136 | |
| 137 #endif // SERVICES_SKY_DOCUMENT_VIEW_H_ | |
| OLD | NEW |