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

Side by Side Diff: content/browser/web_contents/web_contents_view_android.cc

Issue 2490383002: Revert of Resolves layering violation in SynchronousCompositorHost creation (Closed)
Patch Set: Created 4 years, 1 month 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
« no previous file with comments | « content/browser/web_contents/web_contents_view_android.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/browser/web_contents/web_contents_view_android.h" 5 #include "content/browser/web_contents/web_contents_view_android.h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_string.h" 8 #include "base/android/jni_string.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "cc/layers/layer.h" 10 #include "cc/layers/layer.h"
(...skipping 28 matching lines...) Expand all
39 results->device_scale_factor = display.device_scale_factor(); 39 results->device_scale_factor = display.device_scale_factor();
40 results->orientation_angle = display.RotationAsDegree(); 40 results->orientation_angle = display.RotationAsDegree();
41 results->orientation_type = 41 results->orientation_type =
42 RenderWidgetHostViewBase::GetOrientationTypeForMobile(display); 42 RenderWidgetHostViewBase::GetOrientationTypeForMobile(display);
43 gfx::DeviceDisplayInfo info; 43 gfx::DeviceDisplayInfo info;
44 results->depth = display.color_depth(); 44 results->depth = display.color_depth();
45 results->depth_per_component = display.depth_per_component(); 45 results->depth_per_component = display.depth_per_component();
46 results->is_monochrome = display.is_monochrome(); 46 results->is_monochrome = display.is_monochrome();
47 } 47 }
48 48
49 // static
50 void SynchronousCompositor::SetClientForWebContents(
51 WebContents* contents,
52 SynchronousCompositorClient* client) {
53 DCHECK(contents);
54 DCHECK(client);
55 WebContentsViewAndroid* wcva = static_cast<WebContentsViewAndroid*>(
56 static_cast<WebContentsImpl*>(contents)->GetView());
57 DCHECK(!wcva->synchronous_compositor_client());
58 wcva->set_synchronous_compositor_client(client);
59 RenderWidgetHostViewAndroid* rwhv = static_cast<RenderWidgetHostViewAndroid*>(
60 contents->GetRenderWidgetHostView());
61 if (rwhv)
62 rwhv->SetSynchronousCompositorClient(client);
63 }
64
65 WebContentsView* CreateWebContentsView( 49 WebContentsView* CreateWebContentsView(
66 WebContentsImpl* web_contents, 50 WebContentsImpl* web_contents,
67 WebContentsViewDelegate* delegate, 51 WebContentsViewDelegate* delegate,
68 RenderViewHostDelegateView** render_view_host_delegate_view) { 52 RenderViewHostDelegateView** render_view_host_delegate_view) {
69 WebContentsViewAndroid* rv = new WebContentsViewAndroid( 53 WebContentsViewAndroid* rv = new WebContentsViewAndroid(
70 web_contents, delegate); 54 web_contents, delegate);
71 *render_view_host_delegate_view = rv; 55 *render_view_host_delegate_view = rv;
72 return rv; 56 return rv;
73 } 57 }
74 58
75 WebContentsViewAndroid::WebContentsViewAndroid( 59 WebContentsViewAndroid::WebContentsViewAndroid(
76 WebContentsImpl* web_contents, 60 WebContentsImpl* web_contents,
77 WebContentsViewDelegate* delegate) 61 WebContentsViewDelegate* delegate)
78 : web_contents_(web_contents), 62 : web_contents_(web_contents),
79 content_view_core_(NULL), 63 content_view_core_(NULL),
80 delegate_(delegate), 64 delegate_(delegate) {
81 synchronous_compositor_client_(nullptr) {
82 } 65 }
83 66
84 WebContentsViewAndroid::~WebContentsViewAndroid() { 67 WebContentsViewAndroid::~WebContentsViewAndroid() {
85 if (view_.GetLayer()) 68 if (view_.GetLayer())
86 view_.GetLayer()->RemoveFromParent(); 69 view_.GetLayer()->RemoveFromParent();
87 } 70 }
88 71
89 void WebContentsViewAndroid::SetContentViewCore( 72 void WebContentsViewAndroid::SetContentViewCore(
90 ContentViewCoreImpl* content_view_core) { 73 ContentViewCoreImpl* content_view_core) {
91 content_view_core_ = content_view_core; 74 content_view_core_ = content_view_core;
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 DCHECK(RenderViewHostFactory::has_factory()); 177 DCHECK(RenderViewHostFactory::has_factory());
195 return static_cast<RenderWidgetHostViewBase*>( 178 return static_cast<RenderWidgetHostViewBase*>(
196 render_widget_host->GetView()); 179 render_widget_host->GetView());
197 } 180 }
198 // Note that while this instructs the render widget host to reference 181 // Note that while this instructs the render widget host to reference
199 // |native_view_|, this has no effect without also instructing the 182 // |native_view_|, this has no effect without also instructing the
200 // native view (i.e. ContentView) how to obtain a reference to this widget in 183 // native view (i.e. ContentView) how to obtain a reference to this widget in
201 // order to paint it. See ContentView::GetRenderWidgetHostViewAndroid for an 184 // order to paint it. See ContentView::GetRenderWidgetHostViewAndroid for an
202 // example of how this is achieved for InterstitialPages. 185 // example of how this is achieved for InterstitialPages.
203 RenderWidgetHostImpl* rwhi = RenderWidgetHostImpl::From(render_widget_host); 186 RenderWidgetHostImpl* rwhi = RenderWidgetHostImpl::From(render_widget_host);
204 RenderWidgetHostViewAndroid* rwhv = 187 return new RenderWidgetHostViewAndroid(rwhi, content_view_core_);
205 new RenderWidgetHostViewAndroid(rwhi, content_view_core_);
206 rwhv->SetSynchronousCompositorClient(synchronous_compositor_client_);
207 return rwhv;
208 } 188 }
209 189
210 RenderWidgetHostViewBase* WebContentsViewAndroid::CreateViewForPopupWidget( 190 RenderWidgetHostViewBase* WebContentsViewAndroid::CreateViewForPopupWidget(
211 RenderWidgetHost* render_widget_host) { 191 RenderWidgetHost* render_widget_host) {
212 RenderWidgetHostImpl* rwhi = RenderWidgetHostImpl::From(render_widget_host); 192 RenderWidgetHostImpl* rwhi = RenderWidgetHostImpl::From(render_widget_host);
213 return new RenderWidgetHostViewAndroid(rwhi, NULL); 193 return new RenderWidgetHostViewAndroid(rwhi, NULL);
214 } 194 }
215 195
216 void WebContentsViewAndroid::RenderViewCreated(RenderViewHost* host) { 196 void WebContentsViewAndroid::RenderViewCreated(RenderViewHost* host) {
217 } 197 }
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 // This is called when we the renderer asks us to take focus back (i.e., it has 323 // This is called when we the renderer asks us to take focus back (i.e., it has
344 // iterated past the last focusable element on the page). 324 // iterated past the last focusable element on the page).
345 void WebContentsViewAndroid::TakeFocus(bool reverse) { 325 void WebContentsViewAndroid::TakeFocus(bool reverse) {
346 if (web_contents_->GetDelegate() && 326 if (web_contents_->GetDelegate() &&
347 web_contents_->GetDelegate()->TakeFocus(web_contents_, reverse)) 327 web_contents_->GetDelegate()->TakeFocus(web_contents_, reverse))
348 return; 328 return;
349 web_contents_->GetRenderWidgetHostView()->Focus(); 329 web_contents_->GetRenderWidgetHostView()->Focus();
350 } 330 }
351 331
352 } // namespace content 332 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/web_contents/web_contents_view_android.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698