Index: chrome/browser/android/recently_closed_tabs_bridge.cc |
diff --git a/chrome/browser/android/recently_closed_tabs_bridge.cc b/chrome/browser/android/recently_closed_tabs_bridge.cc |
index 5812266c8556a48347aae7067c0ce17b0402a1af..fe51dbf0123e171cd54ce80c4a5482f5930c7edb 100644 |
--- a/chrome/browser/android/recently_closed_tabs_bridge.cc |
+++ b/chrome/browser/android/recently_closed_tabs_bridge.cc |
@@ -20,7 +20,7 @@ using base::android::AttachCurrentThread; |
using base::android::ConvertUTF16ToJavaString; |
using base::android::ConvertUTF8ToJavaString; |
using base::android::JavaParamRef; |
-using base::android::ScopedJavaLocalRef; |
+using base::android::ScopedJavaGlobalRef; |
namespace { |
@@ -53,10 +53,10 @@ void AddTabsToList(JNIEnv* env, |
} // namespace |
-RecentlyClosedTabsBridge::RecentlyClosedTabsBridge(Profile* profile) |
- : profile_(profile), |
- tab_restore_service_(NULL) { |
-} |
+RecentlyClosedTabsBridge::RecentlyClosedTabsBridge( |
+ ScopedJavaGlobalRef<jobject> jbridge, |
+ Profile* profile) |
+ : bridge_(jbridge), profile_(profile), tab_restore_service_(NULL) {} |
Bernhard Bauer
2017/01/05 17:47:38
Nit: I think here you want to std::move() the |jbr
Michael van Ouwerkerk
2017/01/06 11:11:11
Done.
|
RecentlyClosedTabsBridge::~RecentlyClosedTabsBridge() { |
if (tab_restore_service_) |
@@ -68,13 +68,6 @@ void RecentlyClosedTabsBridge::Destroy(JNIEnv* env, |
delete this; |
} |
-void RecentlyClosedTabsBridge::SetRecentlyClosedCallback( |
- JNIEnv* env, |
- const JavaParamRef<jobject>& obj, |
- const JavaParamRef<jobject>& jcallback) { |
- callback_.Reset(env, jcallback); |
-} |
- |
jboolean RecentlyClosedTabsBridge::GetRecentlyClosedTabs( |
JNIEnv* env, |
const JavaParamRef<jobject>& obj, |
@@ -152,10 +145,7 @@ void RecentlyClosedTabsBridge::ClearRecentlyClosedTabs( |
void RecentlyClosedTabsBridge::TabRestoreServiceChanged( |
sessions::TabRestoreService* service) { |
- if (callback_.is_null()) |
- return; |
- JNIEnv* env = AttachCurrentThread(); |
- Java_RecentlyClosedCallback_onUpdated(env, callback_); |
+ Java_RecentlyClosedBridge_onUpdated(AttachCurrentThread(), bridge_); |
} |
void RecentlyClosedTabsBridge::TabRestoreServiceDestroyed( |
@@ -180,9 +170,10 @@ void RecentlyClosedTabsBridge::EnsureTabRestoreService() { |
} |
static jlong Init(JNIEnv* env, |
- const JavaParamRef<jobject>& obj, |
+ const JavaParamRef<jobject>& jbridge, |
const JavaParamRef<jobject>& jprofile) { |
RecentlyClosedTabsBridge* bridge = new RecentlyClosedTabsBridge( |
+ ScopedJavaGlobalRef<jobject>(env, jbridge.obj()), |
ProfileAndroid::FromProfileAndroid(jprofile)); |
return reinterpret_cast<intptr_t>(bridge); |
} |