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

Side by Side Diff: chrome/browser/android/omnibox/answers_image_bridge.cc

Issue 341083008: [AiS] Fix ownership issue for image service observers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@img-bridge
Patch Set: Re-upload. Created 6 years, 6 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 unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/bitmap_fetcher/bitmap_fetcher_service.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "chrome/browser/android/omnibox/answers_image_bridge.h" 5 #include "chrome/browser/android/omnibox/answers_image_bridge.h"
6 6
7 #include <jni.h> 7 #include <jni.h>
8 8
9 #include "base/android/jni_android.h" 9 #include "base/android/jni_android.h"
10 #include "base/android/jni_string.h" 10 #include "base/android/jni_string.h"
(...skipping 18 matching lines...) Expand all
29 explicit AnswersImageObserverAndroid(JNIEnv* env, 29 explicit AnswersImageObserverAndroid(JNIEnv* env,
30 jobject java_answers_image_observer) { 30 jobject java_answers_image_observer) {
31 java_answers_image_observer_.Reset(env, java_answers_image_observer); 31 java_answers_image_observer_.Reset(env, java_answers_image_observer);
32 } 32 }
33 33
34 virtual ~AnswersImageObserverAndroid() {} 34 virtual ~AnswersImageObserverAndroid() {}
35 35
36 // AnswersImageObserver: 36 // AnswersImageObserver:
37 virtual void OnImageChanged(BitmapFetcherService::RequestId request_id, 37 virtual void OnImageChanged(BitmapFetcherService::RequestId request_id,
38 const SkBitmap& answers_image) OVERRIDE { 38 const SkBitmap& answers_image) OVERRIDE {
39 // An empty image signals a completed request. 39 DCHECK(!answers_image.empty());
40 if (answers_image.empty()) {
41 delete this;
42 return;
43 }
44 40
45 JNIEnv* env = base::android::AttachCurrentThread(); 41 JNIEnv* env = base::android::AttachCurrentThread();
46 ScopedJavaLocalRef<jobject> java_bitmap = 42 ScopedJavaLocalRef<jobject> java_bitmap =
47 gfx::ConvertToJavaBitmap(&answers_image); 43 gfx::ConvertToJavaBitmap(&answers_image);
48 Java_AnswersImageObserver_onAnswersImageChanged( 44 Java_AnswersImageObserver_onAnswersImageChanged(
49 env, java_answers_image_observer_.obj(), java_bitmap.obj()); 45 env, java_answers_image_observer_.obj(), java_bitmap.obj());
50 } 46 }
51 47
52 private: 48 private:
53 base::android::ScopedJavaGlobalRef<jobject> java_answers_image_observer_; 49 base::android::ScopedJavaGlobalRef<jobject> java_answers_image_observer_;
(...skipping 24 matching lines...) Expand all
78 std::string url; 74 std::string url;
79 base::android::ConvertJavaStringToUTF8(env, java_url, &url); 75 base::android::ConvertJavaStringToUTF8(env, java_url, &url);
80 return bitmap_fetcher_service->RequestImage( 76 return bitmap_fetcher_service->RequestImage(
81 GURL(url), new AnswersImageObserverAndroid(env, java_callback)); 77 GURL(url), new AnswersImageObserverAndroid(env, java_callback));
82 } 78 }
83 79
84 // static 80 // static
85 bool RegisterAnswersImageBridge(JNIEnv* env) { 81 bool RegisterAnswersImageBridge(JNIEnv* env) {
86 return RegisterNativesImpl(env); 82 return RegisterNativesImpl(env);
87 } 83 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/bitmap_fetcher/bitmap_fetcher_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698