| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/native/aw_contents.h" | 5 #include "android_webview/native/aw_contents.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 | 8 |
| 9 #include "android_webview/browser/aw_browser_context.h" | 9 #include "android_webview/browser/aw_browser_context.h" |
| 10 #include "android_webview/browser/aw_browser_main_parts.h" | 10 #include "android_webview/browser/aw_browser_main_parts.h" |
| (...skipping 881 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 892 | 892 |
| 893 void AwContents::OnDetachedFromWindow(JNIEnv* env, jobject obj) { | 893 void AwContents::OnDetachedFromWindow(JNIEnv* env, jobject obj) { |
| 894 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 894 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 895 ReleaseHardwareDrawIfNeeded(); | 895 ReleaseHardwareDrawIfNeeded(); |
| 896 browser_view_renderer_.OnDetachedFromWindow(); | 896 browser_view_renderer_.OnDetachedFromWindow(); |
| 897 } | 897 } |
| 898 | 898 |
| 899 void AwContents::ReleaseHardwareDrawIfNeeded() { | 899 void AwContents::ReleaseHardwareDrawIfNeeded() { |
| 900 InsideHardwareReleaseReset inside_reset(&shared_renderer_state_); | 900 InsideHardwareReleaseReset inside_reset(&shared_renderer_state_); |
| 901 | 901 |
| 902 JNIEnv* env = AttachCurrentThread(); |
| 903 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
| 904 if (!obj.is_null()) |
| 905 Java_AwContents_invalidateOnFunctorDestroy(env, obj.obj()); |
| 906 |
| 902 bool hardware_initialized = browser_view_renderer_.hardware_enabled(); | 907 bool hardware_initialized = browser_view_renderer_.hardware_enabled(); |
| 903 if (hardware_initialized) { | 908 if (hardware_initialized) { |
| 904 bool draw_functor_succeeded = RequestDrawGL(NULL, true); | 909 bool draw_functor_succeeded = RequestDrawGL(NULL, true); |
| 905 if (!draw_functor_succeeded) { | 910 if (!draw_functor_succeeded) { |
| 906 LOG(ERROR) << "Unable to free GL resources. Has the Window leaked?"; | 911 LOG(ERROR) << "Unable to free GL resources. Has the Window leaked?"; |
| 907 // Calling release on wrong thread intentionally. | 912 // Calling release on wrong thread intentionally. |
| 908 AwDrawGLInfo info; | 913 AwDrawGLInfo info; |
| 909 info.mode = AwDrawGLInfo::kModeProcess; | 914 info.mode = AwDrawGLInfo::kModeProcess; |
| 910 DrawGL(&info); | 915 DrawGL(&info); |
| 911 } | 916 } |
| (...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1165 } | 1170 } |
| 1166 | 1171 |
| 1167 browser_view_renderer_.TrimMemory(level, visible); | 1172 browser_view_renderer_.TrimMemory(level, visible); |
| 1168 } | 1173 } |
| 1169 | 1174 |
| 1170 void SetShouldDownloadFavicons(JNIEnv* env, jclass jclazz) { | 1175 void SetShouldDownloadFavicons(JNIEnv* env, jclass jclazz) { |
| 1171 g_should_download_favicons = true; | 1176 g_should_download_favicons = true; |
| 1172 } | 1177 } |
| 1173 | 1178 |
| 1174 } // namespace android_webview | 1179 } // namespace android_webview |
| OLD | NEW |