OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "mojo/examples/html_viewer/blink_platform_impl.h" | 5 #include "mojo/examples/html_viewer/blink_platform_impl.h" |
6 #include "mojo/examples/html_viewer/html_document_view.h" | 6 #include "mojo/examples/html_viewer/html_document_view.h" |
7 #include "mojo/public/cpp/application/application_connection.h" | 7 #include "mojo/public/cpp/application/application_connection.h" |
8 #include "mojo/public/cpp/application/application_delegate.h" | 8 #include "mojo/public/cpp/application/application_delegate.h" |
9 #include "mojo/public/cpp/application/application_impl.h" | 9 #include "mojo/public/cpp/application/application_impl.h" |
10 #include "mojo/services/public/cpp/view_manager/node.h" | 10 #include "mojo/services/public/cpp/view_manager/node.h" |
(...skipping 29 matching lines...) Expand all Loading... |
40 | 40 |
41 class HTMLViewer : public ApplicationDelegate, | 41 class HTMLViewer : public ApplicationDelegate, |
42 public view_manager::ViewManagerDelegate { | 42 public view_manager::ViewManagerDelegate { |
43 public: | 43 public: |
44 HTMLViewer() : application_impl_(NULL), document_view_(NULL) { | 44 HTMLViewer() : application_impl_(NULL), document_view_(NULL) { |
45 } | 45 } |
46 virtual ~HTMLViewer() { | 46 virtual ~HTMLViewer() { |
47 blink::shutdown(); | 47 blink::shutdown(); |
48 } | 48 } |
49 | 49 |
50 void Load(URLResponsePtr response, | 50 void Load(URLResponsePtr response) { |
51 ScopedDataPipeConsumerHandle response_body_stream) { | |
52 // Need to wait for OnRootAdded. | 51 // Need to wait for OnRootAdded. |
53 response_ = response.Pass(); | 52 response_ = response.Pass(); |
54 response_body_stream_ = response_body_stream.Pass(); | |
55 MaybeLoad(); | 53 MaybeLoad(); |
56 } | 54 } |
57 | 55 |
58 private: | 56 private: |
59 // Overridden from ApplicationDelegate: | 57 // Overridden from ApplicationDelegate: |
60 virtual void Initialize(ApplicationImpl* app) OVERRIDE { | 58 virtual void Initialize(ApplicationImpl* app) OVERRIDE { |
61 application_impl_ = app; | 59 application_impl_ = app; |
62 blink_platform_impl_.reset(new BlinkPlatformImpl(app)); | 60 blink_platform_impl_.reset(new BlinkPlatformImpl(app)); |
63 blink::initialize(blink_platform_impl_.get()); | 61 blink::initialize(blink_platform_impl_.get()); |
64 } | 62 } |
(...skipping 10 matching lines...) Expand all Loading... |
75 view_manager::Node* root) OVERRIDE { | 73 view_manager::Node* root) OVERRIDE { |
76 document_view_ = new HTMLDocumentView( | 74 document_view_ = new HTMLDocumentView( |
77 application_impl_->ConnectToApplication("mojo://mojo_window_manager/")-> | 75 application_impl_->ConnectToApplication("mojo://mojo_window_manager/")-> |
78 GetServiceProvider(), view_manager); | 76 GetServiceProvider(), view_manager); |
79 document_view_->AttachToNode(root); | 77 document_view_->AttachToNode(root); |
80 MaybeLoad(); | 78 MaybeLoad(); |
81 } | 79 } |
82 | 80 |
83 void MaybeLoad() { | 81 void MaybeLoad() { |
84 if (document_view_ && response_.get()) | 82 if (document_view_ && response_.get()) |
85 document_view_->Load(response_.Pass(), response_body_stream_.Pass()); | 83 document_view_->Load(response_.Pass()); |
86 } | 84 } |
87 | 85 |
88 scoped_ptr<BlinkPlatformImpl> blink_platform_impl_; | 86 scoped_ptr<BlinkPlatformImpl> blink_platform_impl_; |
89 ApplicationImpl* application_impl_; | 87 ApplicationImpl* application_impl_; |
90 | 88 |
91 // TODO(darin): Figure out proper ownership of this instance. | 89 // TODO(darin): Figure out proper ownership of this instance. |
92 HTMLDocumentView* document_view_; | 90 HTMLDocumentView* document_view_; |
93 URLResponsePtr response_; | 91 URLResponsePtr response_; |
94 ScopedDataPipeConsumerHandle response_body_stream_; | |
95 | 92 |
96 DISALLOW_COPY_AND_ASSIGN(HTMLViewer); | 93 DISALLOW_COPY_AND_ASSIGN(HTMLViewer); |
97 }; | 94 }; |
98 | 95 |
99 void NavigatorImpl::Navigate( | 96 void NavigatorImpl::Navigate( |
100 uint32_t node_id, | 97 uint32_t node_id, |
101 navigation::NavigationDetailsPtr navigation_details, | 98 navigation::NavigationDetailsPtr navigation_details, |
102 navigation::ResponseDetailsPtr response_details) { | 99 navigation::ResponseDetailsPtr response_details) { |
103 printf("In HTMLViewer, rendering url: %s\n", | 100 printf("In HTMLViewer, rendering url: %s\n", |
104 response_details->response->url.data()); | 101 response_details->response->url.data()); |
105 viewer_->Load(response_details->response.Pass(), | 102 viewer_->Load(response_details->response.Pass()); |
106 response_details->response_body_stream.Pass()); | |
107 } | 103 } |
108 | 104 |
109 } | 105 } |
110 | 106 |
111 // static | 107 // static |
112 ApplicationDelegate* ApplicationDelegate::Create() { | 108 ApplicationDelegate* ApplicationDelegate::Create() { |
113 return new examples::HTMLViewer; | 109 return new examples::HTMLViewer; |
114 } | 110 } |
115 | 111 |
116 } | 112 } |
OLD | NEW |