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

Unified Diff: android_webview/browser/shared_renderer_state.cc

Issue 1816283005: Move SharedRendererState ownership to AwContents (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
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..7442bd6706a633ea8d2b7557e0691ae5899470e4 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;
@@ -325,6 +331,7 @@ void SharedRendererState::DeleteHardwareRendererOnUI() {
void SharedRendererState::ReleaseCompositorResourcesIfNeededOnUI(
bool release_hardware_draw) {
DCHECK(ui_loop_->BelongsToCurrentThread());
+ DCHECK(browser_view_renderer_);
InsideHardwareReleaseReset auto_inside_hardware_release_reset(this);
browser_view_renderer_->DetachFunctorFromView();

Powered by Google App Engine
This is Rietveld 408576698