Index: android_webview/browser/shared_renderer_state.cc |
diff --git a/android_webview/browser/shared_renderer_state.cc b/android_webview/browser/shared_renderer_state.cc |
index 488f915b65209451ffa264e536f79cb7d0c0c31f..fdd2a4e4478137d7b5c82d2f23ebb8a9c589714b 100644 |
--- a/android_webview/browser/shared_renderer_state.cc |
+++ b/android_webview/browser/shared_renderer_state.cc |
@@ -87,16 +87,14 @@ base::LazyInstance<internal::RequestDrawGLTracker> g_request_draw_gl_tracker = |
} |
SharedRendererState::SharedRendererState( |
- const scoped_refptr<base::SingleThreadTaskRunner>& ui_loop, |
- BrowserViewRenderer* browser_view_renderer) |
+ const scoped_refptr<base::SingleThreadTaskRunner>& ui_loop) |
: ui_loop_(ui_loop), |
- browser_view_renderer_(browser_view_renderer), |
+ browser_view_renderer_(nullptr), |
renderer_manager_key_(GLViewRendererManager::GetInstance()->NullKey()), |
hardware_renderer_has_frame_(false), |
inside_hardware_release_(false), |
weak_factory_on_ui_thread_(this) { |
DCHECK(ui_loop_->BelongsToCurrentThread()); |
- DCHECK(browser_view_renderer_); |
ui_thread_weak_ptr_ = weak_factory_on_ui_thread_.GetWeakPtr(); |
ResetRequestDrawGLCallback(); |
} |
@@ -142,6 +140,7 @@ void SharedRendererState::ResetRequestDrawGLCallback() { |
void SharedRendererState::ClientRequestDrawGLOnUI() { |
DCHECK(ui_loop_->BelongsToCurrentThread()); |
+ DCHECK(browser_view_renderer_); |
ResetRequestDrawGLCallback(); |
g_request_draw_gl_tracker.Get().SetQueuedFunctorOnUi(this); |
if (!browser_view_renderer_->RequestDrawGL(false)) { |
@@ -152,9 +151,16 @@ void SharedRendererState::ClientRequestDrawGLOnUI() { |
void SharedRendererState::UpdateParentDrawConstraintsOnUI() { |
DCHECK(ui_loop_->BelongsToCurrentThread()); |
+ DCHECK(browser_view_renderer_); |
browser_view_renderer_->UpdateParentDrawConstraints(); |
} |
+void SharedRendererState::SetBrowserViewRendererOnUI( |
+ BrowserViewRenderer* browser_view_renderer) { |
+ DCHECK(ui_loop_->BelongsToCurrentThread()); |
+ browser_view_renderer_ = browser_view_renderer; |
+} |
+ |
void SharedRendererState::SetScrollOffsetOnUI(gfx::Vector2d scroll_offset) { |
base::AutoLock lock(lock_); |
scroll_offset_ = scroll_offset; |
@@ -314,17 +320,9 @@ void SharedRendererState::DrawGL(AwDrawGLInfo* draw_info) { |
DeferredGpuCommandService::GetInstance()->PerformIdleWork(false); |
} |
-void SharedRendererState::ReleaseHardwareDrawIfNeededOnUI() { |
- ReleaseCompositorResourcesIfNeededOnUI(true); |
-} |
- |
-void SharedRendererState::DeleteHardwareRendererOnUI() { |
- ReleaseCompositorResourcesIfNeededOnUI(false); |
-} |
- |
-void SharedRendererState::ReleaseCompositorResourcesIfNeededOnUI( |
- bool release_hardware_draw) { |
+void SharedRendererState::ReleaseCompositorResourcesIfNeededOnUI() { |
boliu
2016/03/23 20:42:32
DeleteHardwareRendererOnUIThread actually sounds b
Tobias Sargeant
2016/03/24 16:53:05
Done.
|
DCHECK(ui_loop_->BelongsToCurrentThread()); |
+ |
InsideHardwareReleaseReset auto_inside_hardware_release_reset(this); |
browser_view_renderer_->DetachFunctorFromView(); |
@@ -340,9 +338,6 @@ void SharedRendererState::ReleaseCompositorResourcesIfNeededOnUI( |
info.mode = AwDrawGLInfo::kModeProcess; |
DrawGL(&info); |
} |
- |
- if (release_hardware_draw) |
- browser_view_renderer_->ReleaseHardware(); |
} |
GLViewRendererManager* manager = GLViewRendererManager::GetInstance(); |
@@ -366,6 +361,10 @@ bool SharedRendererState::HasFrameOnUI() const { |
return hardware_renderer_has_frame_ || child_frame_.get(); |
} |
+void SharedRendererState::TrimMemoryOnUI(int level) { |
boliu
2016/03/23 20:42:32
The level check got dropped?
Tobias Sargeant
2016/03/24 16:53:05
Done. Deciding what to trim and when moved to AwCo
|
+ ReleaseCompositorResourcesIfNeededOnUI(); |
+} |
+ |
void SharedRendererState::InitializeHardwareDrawIfNeededOnUI() { |
DCHECK(ui_loop_->BelongsToCurrentThread()); |
GLViewRendererManager* manager = GLViewRendererManager::GetInstance(); |