| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |