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

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: 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..5b572fd686928ae33df638410397adb666505554 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,32 @@ 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_string = ConvertJavaStringToUTF8(env, j_url);
- top_sites->AddBlacklistedURL(GURL(url_string));
+ GURL url(url_string);
Mathieu 2014/05/22 21:50:49 I guess you could move this in top_sites->AddBlack
manzagop (departed) 2014/05/23 15:20:02 Done.
+
+ switch (mv_source_) {
+ case TOP_SITES: {
+ TopSites* top_sites = profile_->GetTopSites();
+ if (top_sites) {
+ top_sites->AddBlacklistedURL(url);
+ }
+ break;
+ }
+
+ case SUGGESTIONS_SERVICE: {
+ SuggestionsService* suggestions_service =
+ SuggestionsServiceFactory::GetForProfile(profile_);
+ if (suggestions_service) {
Mathieu 2014/05/22 21:50:49 Aren't we certain at this point that the service e
manzagop (departed) 2014/05/23 15:20:02 If services can't be turned off, then yes. Still,
+ suggestions_service->AddBlacklistedURL(
+ url_string,
Mathieu 2014/05/22 21:50:49 This should probably take a GURL as well.
manzagop (departed) 2014/05/23 15:20:02 Done.
+ base::Bind(
+ &MostVisitedSites::OnSuggestionsProfileAvailable,
+ weak_ptr_factory_.GetWeakPtr(),
+ base::Owned(new ScopedJavaGlobalRef<jobject>(observer_))));
+ }
+ break;
+ }
+ }
}
void MostVisitedSites::Observe(int type,
@@ -220,10 +226,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 +247,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 +290,8 @@ void MostVisitedSites::OnSuggestionsProfileAvailable(
urls.push_back(suggestion.url());
}
+ mv_source_ = SUGGESTIONS_SERVICE;
+
JNIEnv* env = AttachCurrentThread();
Java_MostVisitedURLsObserver_onMostVisitedURLsAvailable(
env,

Powered by Google App Engine
This is Rietveld 408576698