summaryrefslogtreecommitdiffstats
path: root/android_webview/native/aw_contents.cc
diff options
context:
space:
mode:
authorboliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-26 06:39:28 +0000
committerboliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-26 06:39:28 +0000
commit628e3539f3caf339af7b30e885e713176bae823c (patch)
treefd5cb572ea42aea19afbed12988847d130fe272a /android_webview/native/aw_contents.cc
parent3a00ccc0450c037167aea4feb765e590202fc642 (diff)
downloadchromium_src-628e3539f3caf339af7b30e885e713176bae823c.zip
chromium_src-628e3539f3caf339af7b30e885e713176bae823c.tar.gz
chromium_src-628e3539f3caf339af7b30e885e713176bae823c.tar.bz2
aw: Fix hardware teardown race
Reading IsHardwareInitialized in OnDetachedFromWindow on the UI thread is unsafe as it can change after being read. Remove it and use whether UI has hardware initialized instead. BUG=388890 Review URL: https://codereview.chromium.org/348613004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279934 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview/native/aw_contents.cc')
-rw-r--r--android_webview/native/aw_contents.cc9
1 files changed, 1 insertions, 8 deletions
diff --git a/android_webview/native/aw_contents.cc b/android_webview/native/aw_contents.cc
index dd673ad..de62339 100644
--- a/android_webview/native/aw_contents.cc
+++ b/android_webview/native/aw_contents.cc
@@ -358,7 +358,6 @@ void AwContents::DrawGL(AwDrawGLInfo* draw_info) {
if (!shared_renderer_state_.IsHardwareAllowed()) {
hardware_renderer_.reset();
- shared_renderer_state_.SetHardwareInitialized(false);
return;
}
@@ -366,9 +365,7 @@ void AwContents::DrawGL(AwDrawGLInfo* draw_info) {
return;
if (!hardware_renderer_) {
- DCHECK(!shared_renderer_state_.IsHardwareInitialized());
hardware_renderer_.reset(new HardwareRenderer(&shared_renderer_state_));
- shared_renderer_state_.SetHardwareInitialized(true);
}
if (hardware_renderer_->DrawGL(state_restore.stencil_enabled(),
@@ -866,7 +863,7 @@ void AwContents::OnDetachedFromWindow(JNIEnv* env, jobject obj) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
shared_renderer_state_.SetHardwareAllowed(false);
- bool hardware_initialized = shared_renderer_state_.IsHardwareInitialized();
+ bool hardware_initialized = browser_view_renderer_.hardware_enabled();
if (hardware_initialized) {
bool draw_functor_succeeded = RequestDrawGL(NULL, true);
if (!draw_functor_succeeded) {
@@ -1138,10 +1135,6 @@ void AwContents::TrimMemory(JNIEnv* env,
jint level,
jboolean visible) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-
- if (!shared_renderer_state_.IsHardwareInitialized())
- return;
-
browser_view_renderer_.TrimMemory(level, visible);
}