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

Unified Diff: ui/android/resources/resource_manager_impl.cc

Issue 1371523003: Android: Don't destroy LayerTreeHost when Surface goes away (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 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: ui/android/resources/resource_manager_impl.cc
diff --git a/ui/android/resources/resource_manager_impl.cc b/ui/android/resources/resource_manager_impl.cc
index c1c64ba26f8f114b34fc07fa99cd4dbfee7cc68e..b539418ed97944ebf93546257acbb4449bd07c26 100644
--- a/ui/android/resources/resource_manager_impl.cc
+++ b/ui/android/resources/resource_manager_impl.cc
@@ -6,8 +6,8 @@
#include "base/android/jni_string.h"
#include "base/trace_event/trace_event.h"
+#include "cc/resources/scoped_ui_resource.h"
#include "jni/ResourceManager_jni.h"
-#include "ui/android/resources/ui_resource_android.h"
#include "ui/android/resources/ui_resource_provider.h"
#include "ui/gfx/android/java_bitmap.h"
@@ -20,9 +20,7 @@ ResourceManagerImpl* ResourceManagerImpl::FromJavaObject(jobject jobj) {
jobj));
}
-ResourceManagerImpl::ResourceManagerImpl(
- ui::UIResourceProvider* ui_resource_provider)
- : ui_resource_provider_(ui_resource_provider) {
+ResourceManagerImpl::ResourceManagerImpl() {
jdduke (slow) 2015/09/30 17:19:43 : host_(nullptr)
no sievers 2015/09/30 21:58:48 Done.
JNIEnv* env = base::android::AttachCurrentThread();
java_obj_.Reset(env, Java_ResourceManager_create(
env, base::android::GetApplicationContext(),
@@ -35,6 +33,12 @@ ResourceManagerImpl::~ResourceManagerImpl() {
java_obj_.obj());
}
+void ResourceManagerImpl::Init(cc::LayerTreeHost* host) {
+ DCHECK(!host_);
+ DCHECK(host);
+ host_ = host;
+}
+
base::android::ScopedJavaLocalRef<jobject>
ResourceManagerImpl::GetJavaObject() {
return base::android::ScopedJavaLocalRef<jobject>(java_obj_);
@@ -102,8 +106,11 @@ void ResourceManagerImpl::OnResourceReady(JNIEnv* env,
resource->aperture.SetRect(aperture_left, aperture_top,
aperture_right - aperture_left,
aperture_bottom - aperture_top);
+
+ SkBitmap skbitmap = gfx::CreateSkBitmapFromJavaBitmap(jbitmap);
+ skbitmap.setImmutable();
resource->ui_resource =
- UIResourceAndroid::CreateFromJavaBitmap(ui_resource_provider_, jbitmap);
+ cc::ScopedUIResource::Create(host_, cc::UIResourceBitmap(skbitmap));
}
// static

Powered by Google App Engine
This is Rietveld 408576698