summaryrefslogtreecommitdiffstats
path: root/ui/gfx/android/java_bitmap.cc
diff options
context:
space:
mode:
authorjdduke@chromium.org <jdduke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-08 18:12:05 +0000
committerjdduke@chromium.org <jdduke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-08 18:12:05 +0000
commit420c7d0513bf76da520bc2b8987d634b5579a824 (patch)
tree53c71fe658765d5b61701554d224876baf20834c /ui/gfx/android/java_bitmap.cc
parent2c8f5285e1081a5a438d9917524c30d4b0b9042a (diff)
downloadchromium_src-420c7d0513bf76da520bc2b8987d634b5579a824.zip
chromium_src-420c7d0513bf76da520bc2b8987d634b5579a824.tar.gz
chromium_src-420c7d0513bf76da520bc2b8987d634b5579a824.tar.bz2
Revert of Revert of [Android] Use UIResource for overscroll glow (https://codereview.chromium.org/454863003/)
Reason for revert: The ToT builder failures appear to be unrelated to this change, and the upstream instrumentation already exercise these code paths. Tentatively reverting the revert and will keep an eye on downstream rolls. Original issue's description: > Revert of [Android] Use UIResource for overscroll glow (https://codereview.chromium.org/422013003/) > > Reason for revert: > This is breaking chrome ToT downstream and the change quie complex so > I don't feel qualified to try to fix it in place. > > The failure we hit is > F/chromium( 2961): [FATAL:system_ui_resource_manager_impl.cc(35)] Check failed: !bitmap.empty(). > > See an example of a failed run in > https://uberchromegw.corp.google.com/i/clank.tot/builders/instrumentation-yakju-clankium-tot/builds/32007 > > (but just trying to boot clank with this patch will trigger it) > > > Original issue's description: > > [Android] Use UIResource for overscroll glow > > > > Introduce a SystemUIResourceManager class for loading and providing access to > > shared UIResourceId's. Wire this class to the existing OverscrollGlow effect, > > using the shared id's with a UIResourceLayer for both glow and edge layers. > > > > This patch is a subset of powei@'s original SystemUIResource patch found at > > https://codereview.chromium.org/377013002/. > > > > BUG=326326 > > > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=288095 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=288330 TBR=aelias@chromium.org,powei@chromium.org,yfriedman@chromium.org,sky@chromium.org,miguelg@chromium.org NOTREECHECKS=true NOTRY=true BUG=326326 Review URL: https://codereview.chromium.org/454113002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288392 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/gfx/android/java_bitmap.cc')
-rw-r--r--ui/gfx/android/java_bitmap.cc32
1 files changed, 21 insertions, 11 deletions
diff --git a/ui/gfx/android/java_bitmap.cc b/ui/gfx/android/java_bitmap.cc
index 5988befe..d1f644f 100644
--- a/ui/gfx/android/java_bitmap.cc
+++ b/ui/gfx/android/java_bitmap.cc
@@ -9,6 +9,7 @@
#include "base/android/jni_string.h"
#include "base/logging.h"
#include "jni/BitmapHelper_jni.h"
+#include "skia/ext/image_operations.h"
#include "ui/gfx/size.h"
using base::android::AttachCurrentThread;
@@ -68,17 +69,6 @@ ScopedJavaLocalRef<jobject> CreateJavaBitmap(int width,
AttachCurrentThread(), width, height, java_bitmap_config);
}
-ScopedJavaLocalRef<jobject> CreateJavaBitmapFromAndroidResource(
- const char* name,
- gfx::Size size) {
- DCHECK(name);
- DCHECK(!size.IsEmpty());
- JNIEnv* env = AttachCurrentThread();
- ScopedJavaLocalRef<jstring> jname(ConvertUTF8ToJavaString(env, name));
- return Java_BitmapHelper_decodeDrawableResource(
- env, jname.obj(), size.width(), size.height());
-}
-
ScopedJavaLocalRef<jobject> ConvertToJavaBitmap(const SkBitmap* skbitmap) {
DCHECK(skbitmap);
DCHECK(!skbitmap->isNull());
@@ -96,6 +86,26 @@ ScopedJavaLocalRef<jobject> ConvertToJavaBitmap(const SkBitmap* skbitmap) {
return jbitmap;
}
+SkBitmap CreateSkBitmapFromAndroidResource(const char* name, gfx::Size size) {
+ DCHECK(name);
+ DCHECK(!size.IsEmpty());
+ JNIEnv* env = AttachCurrentThread();
+ ScopedJavaLocalRef<jstring> jname(ConvertUTF8ToJavaString(env, name));
+ base::android::ScopedJavaLocalRef<jobject> jobj =
+ Java_BitmapHelper_decodeDrawableResource(
+ env, jname.obj(), size.width(), size.height());
+
+ if (jobj.is_null())
+ return SkBitmap();
+
+ SkBitmap bitmap = CreateSkBitmapFromJavaBitmap(gfx::JavaBitmap(jobj.obj()));
+ if (bitmap.isNull())
+ return bitmap;
+
+ return skia::ImageOperations::Resize(
+ bitmap, skia::ImageOperations::RESIZE_BOX, size.width(), size.height());
+}
+
SkBitmap CreateSkBitmapFromJavaBitmap(const JavaBitmap& jbitmap) {
// TODO(jdduke): Convert to DCHECK's when sufficient data has been capture for
// crbug.com/341406.