Chromium Code Reviews| Index: chrome/browser/android/ntp/ntp_snippets_bridge.cc |
| diff --git a/chrome/browser/android/ntp/ntp_snippets_bridge.cc b/chrome/browser/android/ntp/ntp_snippets_bridge.cc |
| index 939435eba8b2a60d840dfae30e1cad96a0af49e6..481dda363260fad72b1fd18ba56118761134082d 100644 |
| --- a/chrome/browser/android/ntp/ntp_snippets_bridge.cc |
| +++ b/chrome/browser/android/ntp/ntp_snippets_bridge.cc |
| @@ -110,9 +110,10 @@ ntp_snippets::RemoteSuggestionsScheduler* GetRemoteSuggestionsScheduler() { |
| } // namespace |
| static jlong Init(JNIEnv* env, |
| - const JavaParamRef<jobject>& obj, |
| + const JavaParamRef<jobject>& j_bridge, |
| const JavaParamRef<jobject>& j_profile) { |
| - NTPSnippetsBridge* snippets_bridge = new NTPSnippetsBridge(env, j_profile); |
| + NTPSnippetsBridge* snippets_bridge = |
| + new NTPSnippetsBridge(env, j_bridge, j_profile); |
| return reinterpret_cast<intptr_t>(snippets_bridge); |
| } |
| @@ -155,8 +156,11 @@ static void OnSuggestionTargetVisited(JNIEnv* env, |
| } |
| NTPSnippetsBridge::NTPSnippetsBridge(JNIEnv* env, |
| + const JavaParamRef<jobject>& j_bridge, |
| const JavaParamRef<jobject>& j_profile) |
| - : content_suggestions_service_observer_(this), weak_ptr_factory_(this) { |
| + : content_suggestions_service_observer_(this), |
| + bridge_(env, j_bridge), |
| + weak_ptr_factory_(this) { |
| Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile); |
| content_suggestions_service_ = |
| ContentSuggestionsServiceFactory::GetForProfile(profile); |
| @@ -170,12 +174,6 @@ void NTPSnippetsBridge::Destroy(JNIEnv* env, const JavaParamRef<jobject>& obj) { |
| delete this; |
| } |
| -void NTPSnippetsBridge::SetObserver(JNIEnv* env, |
| - const JavaParamRef<jobject>& obj, |
| - const JavaParamRef<jobject>& j_observer) { |
| - observer_.Reset(env, j_observer); |
| -} |
| - |
| ScopedJavaLocalRef<jintArray> NTPSnippetsBridge::GetCategories( |
| JNIEnv* env, |
| const base::android::JavaParamRef<jobject>& obj) { |
| @@ -405,50 +403,50 @@ void NTPSnippetsBridge::OnNTPInitialized( |
| NTPSnippetsBridge::~NTPSnippetsBridge() {} |
| void NTPSnippetsBridge::OnNewSuggestions(Category category) { |
| - if (observer_.is_null()) { |
| + if (bridge_.is_null()) { |
|
Bernhard Bauer
2017/01/04 17:27:34
Hm, we now know that |bridge_| is non-null, right?
Michael van Ouwerkerk
2017/01/05 11:35:40
I think it could be, as it is reset in ContentSugg
Bernhard Bauer
2017/01/05 11:57:47
But in that case we shouldn't get called back anym
Michael van Ouwerkerk
2017/01/05 12:15:55
Done.
|
| return; |
| } |
| JNIEnv* env = base::android::AttachCurrentThread(); |
| - Java_SnippetsBridge_onNewSuggestions(env, observer_, |
| + Java_SnippetsBridge_onNewSuggestions(env, bridge_, |
| static_cast<int>(category.id())); |
| } |
| void NTPSnippetsBridge::OnCategoryStatusChanged(Category category, |
| CategoryStatus new_status) { |
| - if (observer_.is_null()) { |
| + if (bridge_.is_null()) { |
| return; |
| } |
| JNIEnv* env = base::android::AttachCurrentThread(); |
| - Java_SnippetsBridge_onCategoryStatusChanged(env, observer_, |
| + Java_SnippetsBridge_onCategoryStatusChanged(env, bridge_, |
| static_cast<int>(category.id()), |
| static_cast<int>(new_status)); |
| } |
| void NTPSnippetsBridge::OnSuggestionInvalidated( |
| const ContentSuggestion::ID& suggestion_id) { |
| - if (observer_.is_null()) { |
| + if (bridge_.is_null()) { |
| return; |
| } |
| JNIEnv* env = base::android::AttachCurrentThread(); |
| Java_SnippetsBridge_onSuggestionInvalidated( |
| - env, observer_.obj(), static_cast<int>(suggestion_id.category().id()), |
| + env, bridge_.obj(), static_cast<int>(suggestion_id.category().id()), |
| ConvertUTF8ToJavaString(env, suggestion_id.id_within_category()).obj()); |
| } |
| void NTPSnippetsBridge::OnFullRefreshRequired() { |
| - if (observer_.is_null()) { |
| + if (bridge_.is_null()) { |
| return; |
| } |
| JNIEnv* env = base::android::AttachCurrentThread(); |
| - Java_SnippetsBridge_onFullRefreshRequired(env, observer_.obj()); |
| + Java_SnippetsBridge_onFullRefreshRequired(env, bridge_.obj()); |
| } |
| void NTPSnippetsBridge::ContentSuggestionsServiceShutdown() { |
| - observer_.Reset(); |
| + bridge_.Reset(); |
| content_suggestions_service_observer_.Remove(content_suggestions_service_); |
| } |
| @@ -468,7 +466,7 @@ void NTPSnippetsBridge::OnSuggestionsFetched( |
| // TODO(fhorschig, dgn): Allow refetch or show notification acc. to status. |
| JNIEnv* env = AttachCurrentThread(); |
| Java_SnippetsBridge_onMoreSuggestions( |
| - env, observer_, category.id(), |
| + env, bridge_, category.id(), |
| ToJavaSuggestionList(env, category, suggestions)); |
| } |