Chromium Code Reviews| 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); |
| } |