Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(90)

Side by Side Diff: components/html_viewer/html_widget.cc

Issue 1674903003: Extract shell methods from ApplicationImpl into a base class, and pass this to Initialize() instead. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mojom
Patch Set: . Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 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 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 "components/html_viewer/html_widget.h" 5 #include "components/html_viewer/html_widget.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "components/html_viewer/blink_settings.h" 11 #include "components/html_viewer/blink_settings.h"
12 #include "components/html_viewer/global_state.h" 12 #include "components/html_viewer/global_state.h"
13 #include "components/html_viewer/ime_controller.h" 13 #include "components/html_viewer/ime_controller.h"
14 #include "components/html_viewer/stats_collection_controller.h" 14 #include "components/html_viewer/stats_collection_controller.h"
15 #include "components/html_viewer/web_layer_tree_view_impl.h" 15 #include "components/html_viewer/web_layer_tree_view_impl.h"
16 #include "components/html_viewer/web_storage_namespace_impl.h" 16 #include "components/html_viewer/web_storage_namespace_impl.h"
17 #include "components/mus/public/cpp/window.h" 17 #include "components/mus/public/cpp/window.h"
18 #include "mojo/services/tracing/public/interfaces/tracing.mojom.h" 18 #include "mojo/services/tracing/public/interfaces/tracing.mojom.h"
19 #include "mojo/shell/public/cpp/application_impl.h" 19 #include "mojo/shell/public/cpp/shell.h"
20 #include "third_party/WebKit/public/web/WebFrameWidget.h" 20 #include "third_party/WebKit/public/web/WebFrameWidget.h"
21 #include "third_party/WebKit/public/web/WebSettings.h" 21 #include "third_party/WebKit/public/web/WebSettings.h"
22 #include "third_party/WebKit/public/web/WebView.h" 22 #include "third_party/WebKit/public/web/WebView.h"
23 #include "ui/gfx/geometry/dip_util.h" 23 #include "ui/gfx/geometry/dip_util.h"
24 24
25 namespace html_viewer { 25 namespace html_viewer {
26 namespace { 26 namespace {
27 27
28 scoped_ptr<WebLayerTreeViewImpl> CreateWebLayerTreeView( 28 scoped_ptr<WebLayerTreeViewImpl> CreateWebLayerTreeView(
29 GlobalState* global_state) { 29 GlobalState* global_state) {
30 return make_scoped_ptr(new WebLayerTreeViewImpl( 30 return make_scoped_ptr(new WebLayerTreeViewImpl(
31 global_state->compositor_thread(), 31 global_state->compositor_thread(),
32 global_state->gpu_memory_buffer_manager(), 32 global_state->gpu_memory_buffer_manager(),
33 global_state->raster_thread_helper()->task_graph_runner())); 33 global_state->raster_thread_helper()->task_graph_runner()));
34 } 34 }
35 35
36 void InitializeWebLayerTreeView(WebLayerTreeViewImpl* web_layer_tree_view, 36 void InitializeWebLayerTreeView(WebLayerTreeViewImpl* web_layer_tree_view,
37 mojo::ApplicationImpl* app, 37 mojo::Shell* shell,
38 mus::Window* window, 38 mus::Window* window,
39 blink::WebWidget* widget) { 39 blink::WebWidget* widget) {
40 DCHECK(window); 40 DCHECK(window);
41 mus::mojom::GpuPtr gpu_service; 41 mus::mojom::GpuPtr gpu_service;
42 app->ConnectToService("mojo:mus", &gpu_service); 42 shell->ConnectToService("mojo:mus", &gpu_service);
43 web_layer_tree_view->Initialize(std::move(gpu_service), window, widget); 43 web_layer_tree_view->Initialize(std::move(gpu_service), window, widget);
44 } 44 }
45 45
46 void UpdateWebViewSizeFromViewSize(mus::Window* window, 46 void UpdateWebViewSizeFromViewSize(mus::Window* window,
47 blink::WebWidget* web_widget, 47 blink::WebWidget* web_widget,
48 WebLayerTreeViewImpl* web_layer_tree_view) { 48 WebLayerTreeViewImpl* web_layer_tree_view) {
49 const gfx::Size size_in_pixels(window->bounds().size()); 49 const gfx::Size size_in_pixels(window->bounds().size());
50 const gfx::Size size_in_dips = gfx::ConvertSizeToDIP( 50 const gfx::Size size_in_dips = gfx::ConvertSizeToDIP(
51 window->viewport_metrics().device_pixel_ratio, size_in_pixels); 51 window->viewport_metrics().device_pixel_ratio, size_in_pixels);
52 web_widget->resize( 52 web_widget->resize(
(...skipping 22 matching lines...) Expand all
75 } 75 }
76 76
77 blink::WebWidget* HTMLWidgetRootRemote::GetWidget() { 77 blink::WebWidget* HTMLWidgetRootRemote::GetWidget() {
78 return web_view_; 78 return web_view_;
79 } 79 }
80 80
81 void HTMLWidgetRootRemote::OnWindowBoundsChanged(mus::Window* window) {} 81 void HTMLWidgetRootRemote::OnWindowBoundsChanged(mus::Window* window) {}
82 82
83 // HTMLWidgetRootLocal -------------------------------------------------------- 83 // HTMLWidgetRootLocal --------------------------------------------------------
84 84
85 HTMLWidgetRootLocal::CreateParams::CreateParams(mojo::ApplicationImpl* app, 85 HTMLWidgetRootLocal::CreateParams::CreateParams(mojo::Shell* shell,
86 GlobalState* global_state, 86 GlobalState* global_state,
87 mus::Window* window) 87 mus::Window* window)
88 : app(app), global_state(global_state), window(window) {} 88 : shell(shell), global_state(global_state), window(window) {}
89 89
90 HTMLWidgetRootLocal::CreateParams::~CreateParams() {} 90 HTMLWidgetRootLocal::CreateParams::~CreateParams() {}
91 91
92 HTMLWidgetRootLocal::HTMLWidgetRootLocal(CreateParams* create_params) 92 HTMLWidgetRootLocal::HTMLWidgetRootLocal(CreateParams* create_params)
93 : app_(create_params->app), 93 : shell_(create_params->shell),
94 global_state_(create_params->global_state), 94 global_state_(create_params->global_state),
95 window_(create_params->window), 95 window_(create_params->window),
96 web_view_(nullptr) { 96 web_view_(nullptr) {
97 web_view_ = blink::WebView::create(this); 97 web_view_ = blink::WebView::create(this);
98 ime_controller_.reset(new ImeController(window_, web_view_)); 98 ime_controller_.reset(new ImeController(window_, web_view_));
99 // Creating the widget calls initializeLayerTreeView() to create the 99 // Creating the widget calls initializeLayerTreeView() to create the
100 // |web_layer_tree_view_impl_|. As we haven't yet assigned the |web_view_| 100 // |web_layer_tree_view_impl_|. As we haven't yet assigned the |web_view_|
101 // we have to set it here. 101 // we have to set it here.
102 if (web_layer_tree_view_impl_) { 102 if (web_layer_tree_view_impl_) {
103 InitializeWebLayerTreeView(web_layer_tree_view_impl_.get(), app_, window_, 103 InitializeWebLayerTreeView(web_layer_tree_view_impl_.get(), shell_, window_,
104 web_view_); 104 web_view_);
105 UpdateWebViewSizeFromViewSize(window_, web_view_, 105 UpdateWebViewSizeFromViewSize(window_, web_view_,
106 web_layer_tree_view_impl_.get()); 106 web_layer_tree_view_impl_.get());
107 } 107 }
108 global_state_->blink_settings()->ApplySettingsToWebView(web_view_); 108 global_state_->blink_settings()->ApplySettingsToWebView(web_view_);
109 } 109 }
110 110
111 HTMLWidgetRootLocal::~HTMLWidgetRootLocal() {} 111 HTMLWidgetRootLocal::~HTMLWidgetRootLocal() {}
112 112
113 blink::WebStorageNamespace* 113 blink::WebStorageNamespace*
114 HTMLWidgetRootLocal::createSessionStorageNamespace() { 114 HTMLWidgetRootLocal::createSessionStorageNamespace() {
115 return new WebStorageNamespaceImpl(); 115 return new WebStorageNamespaceImpl();
116 } 116 }
117 117
118 void HTMLWidgetRootLocal::initializeLayerTreeView() { 118 void HTMLWidgetRootLocal::initializeLayerTreeView() {
119 web_layer_tree_view_impl_ = CreateWebLayerTreeView(global_state_); 119 web_layer_tree_view_impl_ = CreateWebLayerTreeView(global_state_);
120 } 120 }
121 121
122 blink::WebLayerTreeView* HTMLWidgetRootLocal::layerTreeView() { 122 blink::WebLayerTreeView* HTMLWidgetRootLocal::layerTreeView() {
123 return web_layer_tree_view_impl_.get(); 123 return web_layer_tree_view_impl_.get();
124 } 124 }
125 125
126 void HTMLWidgetRootLocal::didMeaningfulLayout( 126 void HTMLWidgetRootLocal::didMeaningfulLayout(
127 blink::WebMeaningfulLayout layout_type) { 127 blink::WebMeaningfulLayout layout_type) {
128 static bool called = false; 128 static bool called = false;
129 if (!called && layout_type == blink::WebMeaningfulLayout::VisuallyNonEmpty) { 129 if (!called && layout_type == blink::WebMeaningfulLayout::VisuallyNonEmpty) {
130 const int64_t ticks = base::TimeTicks::Now().ToInternalValue(); 130 const int64_t ticks = base::TimeTicks::Now().ToInternalValue();
131 tracing::StartupPerformanceDataCollectorPtr collector = 131 tracing::StartupPerformanceDataCollectorPtr collector =
132 StatsCollectionController::ConnectToDataCollector(app_); 132 StatsCollectionController::ConnectToDataCollector(shell_);
133 if (collector) 133 if (collector)
134 collector->SetFirstVisuallyNonEmptyLayoutTicks(ticks); 134 collector->SetFirstVisuallyNonEmptyLayoutTicks(ticks);
135 called = true; 135 called = true;
136 } 136 }
137 } 137 }
138 138
139 void HTMLWidgetRootLocal::resetInputMethod() { 139 void HTMLWidgetRootLocal::resetInputMethod() {
140 ime_controller_->ResetInputMethod(); 140 ime_controller_->ResetInputMethod();
141 } 141 }
142 142
(...skipping 15 matching lines...) Expand all
158 return web_view_; 158 return web_view_;
159 } 159 }
160 160
161 void HTMLWidgetRootLocal::OnWindowBoundsChanged(mus::Window* window) { 161 void HTMLWidgetRootLocal::OnWindowBoundsChanged(mus::Window* window) {
162 UpdateWebViewSizeFromViewSize(window, web_view_, 162 UpdateWebViewSizeFromViewSize(window, web_view_,
163 web_layer_tree_view_impl_.get()); 163 web_layer_tree_view_impl_.get());
164 } 164 }
165 165
166 // HTMLWidgetLocalRoot -------------------------------------------------------- 166 // HTMLWidgetLocalRoot --------------------------------------------------------
167 167
168 HTMLWidgetLocalRoot::HTMLWidgetLocalRoot(mojo::ApplicationImpl* app, 168 HTMLWidgetLocalRoot::HTMLWidgetLocalRoot(mojo::Shell* shell,
169 GlobalState* global_state, 169 GlobalState* global_state,
170 mus::Window* window, 170 mus::Window* window,
171 blink::WebLocalFrame* web_local_frame) 171 blink::WebLocalFrame* web_local_frame)
172 : app_(app), global_state_(global_state), web_frame_widget_(nullptr) { 172 : shell_(shell), global_state_(global_state), web_frame_widget_(nullptr) {
173 web_frame_widget_ = blink::WebFrameWidget::create(this, web_local_frame); 173 web_frame_widget_ = blink::WebFrameWidget::create(this, web_local_frame);
174 ime_controller_.reset(new ImeController(window, web_frame_widget_)); 174 ime_controller_.reset(new ImeController(window, web_frame_widget_));
175 // Creating the widget calls initializeLayerTreeView() to create the 175 // Creating the widget calls initializeLayerTreeView() to create the
176 // |web_layer_tree_view_impl_|. As we haven't yet assigned the 176 // |web_layer_tree_view_impl_|. As we haven't yet assigned the
177 // |web_frame_widget_| 177 // |web_frame_widget_|
178 // we have to set it here. 178 // we have to set it here.
179 if (web_layer_tree_view_impl_) { 179 if (web_layer_tree_view_impl_) {
180 InitializeWebLayerTreeView(web_layer_tree_view_impl_.get(), app_, window, 180 InitializeWebLayerTreeView(web_layer_tree_view_impl_.get(), shell_, window,
181 web_frame_widget_); 181 web_frame_widget_);
182 UpdateWebViewSizeFromViewSize(window, web_frame_widget_, 182 UpdateWebViewSizeFromViewSize(window, web_frame_widget_,
183 web_layer_tree_view_impl_.get()); 183 web_layer_tree_view_impl_.get());
184 } 184 }
185 } 185 }
186 186
187 HTMLWidgetLocalRoot::~HTMLWidgetLocalRoot() {} 187 HTMLWidgetLocalRoot::~HTMLWidgetLocalRoot() {}
188 188
189 blink::WebWidget* HTMLWidgetLocalRoot::GetWidget() { 189 blink::WebWidget* HTMLWidgetLocalRoot::GetWidget() {
190 return web_frame_widget_; 190 return web_frame_widget_;
(...skipping 24 matching lines...) Expand all
215 215
216 void HTMLWidgetLocalRoot::didUpdateTextOfFocusedElementByNonUserInput() { 216 void HTMLWidgetLocalRoot::didUpdateTextOfFocusedElementByNonUserInput() {
217 ime_controller_->DidUpdateTextOfFocusedElementByNonUserInput(); 217 ime_controller_->DidUpdateTextOfFocusedElementByNonUserInput();
218 } 218 }
219 219
220 void HTMLWidgetLocalRoot::showImeIfNeeded() { 220 void HTMLWidgetLocalRoot::showImeIfNeeded() {
221 ime_controller_->ShowImeIfNeeded(); 221 ime_controller_->ShowImeIfNeeded();
222 } 222 }
223 223
224 } // namespace html_viewer 224 } // namespace html_viewer
OLDNEW
« no previous file with comments | « components/html_viewer/html_widget.h ('k') | components/html_viewer/layout_test_content_handler_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698