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 "android_webview/browser/browser_view_renderer.h" | 5 #include "android_webview/browser/browser_view_renderer.h" |
6 | 6 |
7 #include "android_webview/browser/browser_view_renderer_client.h" | 7 #include "android_webview/browser/browser_view_renderer_client.h" |
8 #include "base/auto_reset.h" | 8 #include "base/auto_reset.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
372 "width", | 372 "width", |
373 width, | 373 width, |
374 "height", | 374 "height", |
375 height); | 375 height); |
376 attached_to_window_ = true; | 376 attached_to_window_ = true; |
377 size_.SetSize(width, height); | 377 size_.SetSize(width, height); |
378 } | 378 } |
379 | 379 |
380 void BrowserViewRenderer::OnDetachedFromWindow() { | 380 void BrowserViewRenderer::OnDetachedFromWindow() { |
381 TRACE_EVENT0("android_webview", "BrowserViewRenderer::OnDetachedFromWindow"); | 381 TRACE_EVENT0("android_webview", "BrowserViewRenderer::OnDetachedFromWindow"); |
| 382 attached_to_window_ = false; |
382 shared_renderer_state_.ReleaseHardwareDrawIfNeededOnUI(); | 383 shared_renderer_state_.ReleaseHardwareDrawIfNeededOnUI(); |
383 attached_to_window_ = false; | |
384 DCHECK(!hardware_enabled_); | 384 DCHECK(!hardware_enabled_); |
385 } | 385 } |
386 | 386 |
387 void BrowserViewRenderer::ReleaseHardware() { | 387 void BrowserViewRenderer::ReleaseHardware() { |
388 DCHECK(hardware_enabled_); | 388 DCHECK(hardware_enabled_); |
389 ReturnUnusedResource(shared_renderer_state_.PassUncommittedFrameOnUI()); | 389 ReturnUnusedResource(shared_renderer_state_.PassUncommittedFrameOnUI()); |
390 ReturnResourceFromParent(); | 390 ReturnResourceFromParent(); |
391 DCHECK(shared_renderer_state_.ReturnedResourcesEmptyOnUI()); | 391 DCHECK(shared_renderer_state_.ReturnedResourcesEmptyOnUI()); |
392 | 392 |
393 if (compositor_) { | 393 if (compositor_) { |
394 compositor_->ReleaseHwDraw(); | 394 compositor_->ReleaseHwDraw(); |
395 } | 395 } |
396 | 396 |
397 hardware_enabled_ = false; | 397 hardware_enabled_ = false; |
398 } | 398 } |
399 | 399 |
400 bool BrowserViewRenderer::IsVisible() const { | 400 bool BrowserViewRenderer::IsVisible() const { |
401 // Ignore |window_visible_| if |attached_to_window_| is false. | 401 // Ignore |window_visible_| if |attached_to_window_| is false. |
402 return view_visible_ && (!attached_to_window_ || window_visible_); | 402 return view_visible_ && attached_to_window_ && window_visible_; |
403 } | 403 } |
404 | 404 |
405 gfx::Rect BrowserViewRenderer::GetScreenRect() const { | 405 gfx::Rect BrowserViewRenderer::GetScreenRect() const { |
406 return gfx::Rect(client_->GetLocationOnScreen(), size_); | 406 return gfx::Rect(client_->GetLocationOnScreen(), size_); |
407 } | 407 } |
408 | 408 |
409 void BrowserViewRenderer::DidInitializeCompositor( | 409 void BrowserViewRenderer::DidInitializeCompositor( |
410 content::SynchronousCompositor* compositor) { | 410 content::SynchronousCompositor* compositor) { |
411 TRACE_EVENT0("android_webview", | 411 TRACE_EVENT0("android_webview", |
412 "BrowserViewRenderer::DidInitializeCompositor"); | 412 "BrowserViewRenderer::DidInitializeCompositor"); |
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
746 base::StringAppendF(&str, | 746 base::StringAppendF(&str, |
747 "overscroll_rounding_error_: %s ", | 747 "overscroll_rounding_error_: %s ", |
748 overscroll_rounding_error_.ToString().c_str()); | 748 overscroll_rounding_error_.ToString().c_str()); |
749 base::StringAppendF( | 749 base::StringAppendF( |
750 &str, "on_new_picture_enable: %d ", on_new_picture_enable_); | 750 &str, "on_new_picture_enable: %d ", on_new_picture_enable_); |
751 base::StringAppendF(&str, "clear_view: %d ", clear_view_); | 751 base::StringAppendF(&str, "clear_view: %d ", clear_view_); |
752 return str; | 752 return str; |
753 } | 753 } |
754 | 754 |
755 } // namespace android_webview | 755 } // namespace android_webview |
OLD | NEW |