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

Side by Side Diff: android_webview/browser/browser_view_renderer_impl.cc

Issue 14888002: Android WebView Merged-Thread Hardware Draw (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 7 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "android_webview/browser/browser_view_renderer_impl.h" 5 #include "android_webview/browser/browser_view_renderer_impl.h"
6 6
7 #include <android/bitmap.h> 7 #include <android/bitmap.h>
8 8
9 #include "android_webview/browser/in_process_renderer/in_process_view_renderer.h " 9 #include "android_webview/browser/in_process_renderer/in_process_view_renderer.h "
10 #include "android_webview/common/aw_switches.h" 10 #include "android_webview/common/aw_switches.h"
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 UserData* data = reinterpret_cast<UserData*>( 111 UserData* data = reinterpret_cast<UserData*>(
112 contents->GetUserData(kUserDataKey)); 112 contents->GetUserData(kUserDataKey));
113 return data ? data->instance_ : NULL; 113 return data ? data->instance_ : NULL;
114 } 114 }
115 115
116 private: 116 private:
117 BrowserViewRendererImpl* instance_; 117 BrowserViewRendererImpl* instance_;
118 }; 118 };
119 119
120 // static 120 // static
121 BrowserViewRendererImpl* BrowserViewRendererImpl::Create( 121 BrowserViewRenderer* BrowserViewRendererImpl::Create(
122 BrowserViewRenderer::Client* client, 122 BrowserViewRenderer::Client* client,
123 JavaHelper* java_helper) { 123 JavaHelper* java_helper) {
124 if (CommandLine::ForCurrentProcess()->HasSwitch( 124 if (CommandLine::ForCurrentProcess()->HasSwitch(
125 switches::kNoMergeUIAndRendererCompositorThreads)) { 125 switches::kNoMergeUIAndRendererCompositorThreads)) {
126 return new BrowserViewRendererImpl(client, java_helper); 126 return new BrowserViewRendererImpl(client, java_helper);
127 } 127 }
128 128
129 return new InProcessViewRenderer(client, java_helper); 129 return new InProcessViewRenderer(client, java_helper);
130 } 130 }
131 131
132 // static 132 // static
133 BrowserViewRendererImpl* BrowserViewRendererImpl::FromWebContents( 133 BrowserViewRendererImpl* BrowserViewRendererImpl::FromWebContents(
134 content::WebContents* contents) { 134 content::WebContents* contents) {
135 return UserData::GetInstance(contents); 135 return UserData::GetInstance(contents);
136 } 136 }
137 137
138 // static
139 BrowserViewRendererImpl* BrowserViewRendererImpl::FromId(int render_process_id,
140 int render_view_id) {
141 const content::RenderViewHost* rvh =
142 content::RenderViewHost::FromID(render_process_id, render_view_id);
143 if (!rvh) return NULL;
144 return FromWebContents(content::WebContents::FromRenderViewHost(rvh));
145 }
146
147 BrowserViewRendererImpl::BrowserViewRendererImpl( 138 BrowserViewRendererImpl::BrowserViewRendererImpl(
148 BrowserViewRenderer::Client* client, 139 BrowserViewRenderer::Client* client,
149 JavaHelper* java_helper) 140 JavaHelper* java_helper)
150 : client_(client), 141 : client_(client),
151 java_helper_(java_helper), 142 java_helper_(java_helper),
152 view_renderer_host_(new ViewRendererHost(NULL, this)), 143 view_renderer_host_(new ViewRendererHost(NULL, this)),
153 compositor_(Compositor::Create(this)), 144 compositor_(Compositor::Create(this)),
154 view_clip_layer_(cc::Layer::Create()), 145 view_clip_layer_(cc::Layer::Create()),
155 transform_layer_(cc::Layer::Create()), 146 transform_layer_(cc::Layer::Create()),
156 scissor_clip_layer_(cc::Layer::Create()), 147 scissor_clip_layer_(cc::Layer::Create()),
(...skipping 18 matching lines...) Expand all
175 scissor_clip_layer_->AddChild(transform_layer_); 166 scissor_clip_layer_->AddChild(transform_layer_);
176 compositor_->SetRootLayer(scissor_clip_layer_); 167 compositor_->SetRootLayer(scissor_clip_layer_);
177 168
178 RendererPictureMap::CreateInstance(); 169 RendererPictureMap::CreateInstance();
179 } 170 }
180 171
181 BrowserViewRendererImpl::~BrowserViewRendererImpl() { 172 BrowserViewRendererImpl::~BrowserViewRendererImpl() {
182 SetContents(NULL); 173 SetContents(NULL);
183 } 174 }
184 175
185 void BrowserViewRendererImpl::BindSynchronousCompositor(
186 content::SynchronousCompositor* compositor) {
187 NOTREACHED(); // Must be handled by the InProcessViewRenderer
188 }
189
190 // static 176 // static
191 void BrowserViewRendererImpl::SetAwDrawSWFunctionTable( 177 void BrowserViewRendererImpl::SetAwDrawSWFunctionTable(
192 AwDrawSWFunctionTable* table) { 178 AwDrawSWFunctionTable* table) {
193 g_sw_draw_functions = table; 179 g_sw_draw_functions = table;
194 g_is_skia_version_compatible = 180 g_is_skia_version_compatible =
195 g_sw_draw_functions->is_skia_version_compatible(&SkGraphics::GetVersion); 181 g_sw_draw_functions->is_skia_version_compatible(&SkGraphics::GetVersion);
196 LOG_IF(WARNING, !g_is_skia_version_compatible) 182 LOG_IF(WARNING, !g_is_skia_version_compatible)
197 << "Skia versions are not compatible, rendering performance will suffer."; 183 << "Skia versions are not compatible, rendering performance will suffer.";
198 } 184 }
199 185
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 } 472 }
487 473
488 void BrowserViewRendererImpl::OnPictureUpdated(int process_id, 474 void BrowserViewRendererImpl::OnPictureUpdated(int process_id,
489 int render_view_id) { 475 int render_view_id) {
490 client_->OnNewPicture(); 476 client_->OnNewPicture();
491 477
492 // TODO(mkosiba): Remove when invalidation path is re-implemented. 478 // TODO(mkosiba): Remove when invalidation path is re-implemented.
493 Invalidate(); 479 Invalidate();
494 } 480 }
495 481
496 void BrowserViewRendererImpl::OnPageScaleFactorChanged(
497 int process_id,
498 int render_view_id,
499 float page_scale_factor) {
500 CHECK_EQ(web_contents_->GetRenderProcessHost()->GetID(), process_id);
501 if (render_view_id != web_contents_->GetRoutingID())
502 return;
503
504 client_->OnPageScaleFactorChanged(page_scale_factor);
505 }
506
507 void BrowserViewRendererImpl::SetCompositorVisibility(bool visible) { 482 void BrowserViewRendererImpl::SetCompositorVisibility(bool visible) {
508 if (compositor_visible_ != visible) { 483 if (compositor_visible_ != visible) {
509 compositor_visible_ = visible; 484 compositor_visible_ = visible;
510 compositor_->SetVisible(compositor_visible_); 485 compositor_->SetVisible(compositor_visible_);
511 } 486 }
512 } 487 }
513 488
514 void BrowserViewRendererImpl::ResetCompositor() { 489 void BrowserViewRendererImpl::ResetCompositor() {
515 compositor_.reset(content::Compositor::Create(this)); 490 compositor_.reset(content::Compositor::Create(this));
516 compositor_->SetRootLayer(scissor_clip_layer_); 491 compositor_->SetRootLayer(scissor_clip_layer_);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 525
551 void BrowserViewRendererImpl::OnFrameInfoUpdated( 526 void BrowserViewRendererImpl::OnFrameInfoUpdated(
552 const gfx::SizeF& content_size, 527 const gfx::SizeF& content_size,
553 const gfx::Vector2dF& scroll_offset, 528 const gfx::Vector2dF& scroll_offset,
554 float page_scale_factor) { 529 float page_scale_factor) {
555 page_scale_ = page_scale_factor; 530 page_scale_ = page_scale_factor;
556 content_size_css_ = content_size; 531 content_size_css_ = content_size;
557 } 532 }
558 533
559 } // namespace android_webview 534 } // namespace android_webview
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698