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

Unified Diff: chrome/browser/android/most_visited_sites.cc

Issue 298703009: SuggestionsService blacklist handling. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Missed renaming. Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/android/most_visited_sites.cc
diff --git a/chrome/browser/android/most_visited_sites.cc b/chrome/browser/android/most_visited_sites.cc
index 6fc326f7d9426cbad6c43d979ed6810d674a4b71..5ff3d30df03330e9cd6980e70cfb0d5c60650f63 100644
--- a/chrome/browser/android/most_visited_sites.cc
+++ b/chrome/browser/android/most_visited_sites.cc
@@ -4,6 +4,9 @@
#include "chrome/browser/android/most_visited_sites.h"
+#include <string>
+#include <vector>
+
#include "base/android/jni_android.h"
#include "base/android/jni_array.h"
#include "base/android/jni_string.h"
@@ -11,7 +14,6 @@
#include "base/strings/utf_string_conversions.h"
#include "base/time/time.h"
#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/history/history_types.h"
#include "chrome/browser/history/top_sites.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_android.h"
@@ -60,22 +62,6 @@ void ExtractMostVisitedTitlesAndURLs(
}
}
-void OnMostVisitedURLsAvailable(
- ScopedJavaGlobalRef<jobject>* j_observer,
- int num_sites,
- const history::MostVisitedURLList& visited_list) {
- std::vector<base::string16> titles;
- std::vector<std::string> urls;
- ExtractMostVisitedTitlesAndURLs(visited_list, &titles, &urls, num_sites);
-
- JNIEnv* env = AttachCurrentThread();
- Java_MostVisitedURLsObserver_onMostVisitedURLsAvailable(
- env,
- j_observer->obj(),
- ToJavaArrayOfStrings(env, titles).obj(),
- ToJavaArrayOfStrings(env, urls).obj());
-}
-
SkBitmap ExtractThumbnail(const base::RefCountedMemory& image_data) {
scoped_ptr<SkBitmap> image(gfx::JPEGCodec::Decode(
image_data.front(),
@@ -197,12 +183,29 @@ void MostVisitedSites::GetURLThumbnail(JNIEnv* env,
void MostVisitedSites::BlacklistUrl(JNIEnv* env,
jobject obj,
jstring j_url) {
- TopSites* top_sites = profile_->GetTopSites();
- if (!top_sites)
- return;
+ std::string url = ConvertJavaStringToUTF8(env, j_url);
+
+ switch (mv_source_) {
+ case TOP_SITES: {
+ TopSites* top_sites = profile_->GetTopSites();
+ DCHECK(top_sites);
+ top_sites->AddBlacklistedURL(GURL(url));
+ break;
+ }
- std::string url_string = ConvertJavaStringToUTF8(env, j_url);
- top_sites->AddBlacklistedURL(GURL(url_string));
+ case SUGGESTIONS_SERVICE: {
+ SuggestionsService* suggestions_service =
+ SuggestionsServiceFactory::GetForProfile(profile_);
+ DCHECK(suggestions_service);
+ suggestions_service->BlacklistURL(
+ GURL(url),
+ base::Bind(
+ &MostVisitedSites::OnSuggestionsProfileAvailable,
+ weak_ptr_factory_.GetWeakPtr(),
+ base::Owned(new ScopedJavaGlobalRef<jobject>(observer_))));
+ break;
+ }
+ }
}
void MostVisitedSites::Observe(int type,
@@ -210,8 +213,10 @@ void MostVisitedSites::Observe(int type,
const content::NotificationDetails& details) {
DCHECK_EQ(type, chrome::NOTIFICATION_TOP_SITES_CHANGED);
- // Most visited urls changed, query again.
- QueryMostVisitedURLs();
+ if (mv_source_ == TOP_SITES) {
+ // The displayed suggestions are invalidated.
+ QueryMostVisitedURLs();
+ }
}
// static
@@ -220,10 +225,8 @@ bool MostVisitedSites::Register(JNIEnv* env) {
}
void MostVisitedSites::QueryMostVisitedURLs() {
- SuggestionsServiceFactory* suggestions_service_factory =
- SuggestionsServiceFactory::GetInstance();
SuggestionsService* suggestions_service =
- suggestions_service_factory->GetForProfile(profile_);
+ SuggestionsServiceFactory::GetForProfile(profile_);
if (suggestions_service) {
// Suggestions service is enabled, initiate a query.
suggestions_service->FetchSuggestionsData(
@@ -243,12 +246,31 @@ void MostVisitedSites::InitiateTopSitesQuery() {
top_sites->GetMostVisitedURLs(
base::Bind(
- &OnMostVisitedURLsAvailable,
+ &MostVisitedSites::OnMostVisitedURLsAvailable,
+ weak_ptr_factory_.GetWeakPtr(),
base::Owned(new ScopedJavaGlobalRef<jobject>(observer_)),
num_sites_),
false);
}
+void MostVisitedSites::OnMostVisitedURLsAvailable(
+ ScopedJavaGlobalRef<jobject>* j_observer,
+ int num_sites,
+ const history::MostVisitedURLList& visited_list) {
+ std::vector<base::string16> titles;
+ std::vector<std::string> urls;
+ ExtractMostVisitedTitlesAndURLs(visited_list, &titles, &urls, num_sites);
+
+ mv_source_ = TOP_SITES;
+
+ JNIEnv* env = AttachCurrentThread();
+ Java_MostVisitedURLsObserver_onMostVisitedURLsAvailable(
+ env,
+ j_observer->obj(),
+ ToJavaArrayOfStrings(env, titles).obj(),
+ ToJavaArrayOfStrings(env, urls).obj());
+}
+
void MostVisitedSites::OnSuggestionsProfileAvailable(
ScopedJavaGlobalRef<jobject>* j_observer,
const SuggestionsProfile& suggestions_profile) {
@@ -267,6 +289,8 @@ void MostVisitedSites::OnSuggestionsProfileAvailable(
urls.push_back(suggestion.url());
}
+ mv_source_ = SUGGESTIONS_SERVICE;
+
JNIEnv* env = AttachCurrentThread();
Java_MostVisitedURLsObserver_onMostVisitedURLsAvailable(
env,
« no previous file with comments | « chrome/browser/android/most_visited_sites.h ('k') | chrome/browser/search/suggestions/suggestions_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698