| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/ntp_tiles/webui/ntp_tiles_internals_message_handler.h" | 5 #include "components/ntp_tiles/webui/ntp_tiles_internals_message_handler.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/callback.h" | 8 #include "base/callback.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| 11 #include "base/values.h" | 11 #include "base/values.h" |
| 12 #include "components/ntp_tiles/most_visited_sites.h" | 12 #include "components/ntp_tiles/most_visited_sites.h" |
| 13 #include "components/ntp_tiles/pref_names.h" | 13 #include "components/ntp_tiles/pref_names.h" |
| 14 #include "components/ntp_tiles/webui/ntp_tiles_internals_message_handler_client.
h" | 14 #include "components/ntp_tiles/webui/ntp_tiles_internals_message_handler_client.
h" |
| 15 #include "components/prefs/pref_service.h" | 15 #include "components/prefs/pref_service.h" |
| 16 #include "components/url_formatter/url_fixer.h" | 16 #include "components/url_formatter/url_fixer.h" |
| 17 #include "url/gurl.h" | 17 #include "url/gurl.h" |
| 18 | 18 |
| 19 namespace ntp_tiles { | 19 namespace ntp_tiles { |
| 20 | 20 |
| 21 NTPTilesInternalsMessageHandlerClient::NTPTilesInternalsMessageHandlerClient() = | 21 NTPTilesInternalsMessageHandlerClient::NTPTilesInternalsMessageHandlerClient() = |
| 22 default; | 22 default; |
| 23 NTPTilesInternalsMessageHandlerClient:: | 23 NTPTilesInternalsMessageHandlerClient:: |
| 24 ~NTPTilesInternalsMessageHandlerClient() = default; | 24 ~NTPTilesInternalsMessageHandlerClient() = default; |
| 25 | 25 |
| 26 NTPTilesInternalsMessageHandler::NTPTilesInternalsMessageHandler() | 26 NTPTilesInternalsMessageHandler::NTPTilesInternalsMessageHandler() |
| 27 : client_(nullptr), site_count_(8) {} | 27 : client_(nullptr) {} |
| 28 | 28 |
| 29 NTPTilesInternalsMessageHandler::~NTPTilesInternalsMessageHandler() = default; | 29 NTPTilesInternalsMessageHandler::~NTPTilesInternalsMessageHandler() = default; |
| 30 | 30 |
| 31 void NTPTilesInternalsMessageHandler::RegisterMessages( | 31 void NTPTilesInternalsMessageHandler::RegisterMessages( |
| 32 NTPTilesInternalsMessageHandlerClient* client) { | 32 NTPTilesInternalsMessageHandlerClient* client) { |
| 33 client_ = client; | 33 client_ = client; |
| 34 | 34 |
| 35 client_->RegisterMessageCallback( | 35 client_->RegisterMessageCallback( |
| 36 "registerForEvents", | 36 "registerForEvents", |
| 37 base::Bind(&NTPTilesInternalsMessageHandler::HandleRegisterForEvents, | 37 base::Bind(&NTPTilesInternalsMessageHandler::HandleRegisterForEvents, |
| 38 base::Unretained(this))); | 38 base::Unretained(this))); |
| 39 | 39 |
| 40 client_->RegisterMessageCallback( | 40 client_->RegisterMessageCallback( |
| 41 "update", base::Bind(&NTPTilesInternalsMessageHandler::HandleUpdate, | 41 "update", base::Bind(&NTPTilesInternalsMessageHandler::HandleUpdate, |
| 42 base::Unretained(this))); | 42 base::Unretained(this))); |
| 43 } | 43 } |
| 44 | 44 |
| 45 void NTPTilesInternalsMessageHandler::HandleRegisterForEvents( | 45 void NTPTilesInternalsMessageHandler::HandleRegisterForEvents( |
| 46 const base::ListValue* args) { | 46 const base::ListValue* args) { |
| 47 DCHECK(args->empty()); | 47 DCHECK(args->empty()); |
| 48 | 48 |
| 49 SendSourceInfo(); | 49 SendSourceInfo(); |
| 50 | 50 |
| 51 most_visited_sites_ = client_->MakeMostVisitedSites(); | 51 most_visited_sites_ = client_->MakeMostVisitedSites(); |
| 52 most_visited_sites_->SetMostVisitedURLsObserver(this, site_count_); | 52 most_visited_sites_->AddObserver(this); |
| 53 most_visited_sites_->Refresh(); |
| 53 } | 54 } |
| 54 | 55 |
| 55 void NTPTilesInternalsMessageHandler::HandleUpdate( | 56 void NTPTilesInternalsMessageHandler::HandleUpdate( |
| 56 const base::ListValue* args) { | 57 const base::ListValue* args) { |
| 57 const base::DictionaryValue* dict = nullptr; | 58 const base::DictionaryValue* dict = nullptr; |
| 58 DCHECK_EQ(1u, args->GetSize()); | 59 DCHECK_EQ(1u, args->GetSize()); |
| 59 args->GetDictionary(0, &dict); | 60 args->GetDictionary(0, &dict); |
| 60 DCHECK(dict); | 61 DCHECK(dict); |
| 61 | 62 |
| 62 PrefService* prefs = client_->GetPrefs(); | 63 PrefService* prefs = client_->GetPrefs(); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 85 prefs->ClearPref(ntp_tiles::prefs::kPopularSitesOverrideVersion); | 86 prefs->ClearPref(ntp_tiles::prefs::kPopularSitesOverrideVersion); |
| 86 } else { | 87 } else { |
| 87 prefs->SetString(ntp_tiles::prefs::kPopularSitesOverrideVersion, version); | 88 prefs->SetString(ntp_tiles::prefs::kPopularSitesOverrideVersion, version); |
| 88 } | 89 } |
| 89 } | 90 } |
| 90 | 91 |
| 91 // Recreate to pick up new values. | 92 // Recreate to pick up new values. |
| 92 // TODO(sfiera): refresh MostVisitedSites without re-creating it, as soon as | 93 // TODO(sfiera): refresh MostVisitedSites without re-creating it, as soon as |
| 93 // that will pick up changes to the Popular Sites overrides. | 94 // that will pick up changes to the Popular Sites overrides. |
| 94 most_visited_sites_ = client_->MakeMostVisitedSites(); | 95 most_visited_sites_ = client_->MakeMostVisitedSites(); |
| 95 most_visited_sites_->SetMostVisitedURLsObserver(this, site_count_); | 96 most_visited_sites_->AddObserver(this); |
| 97 most_visited_sites_->Refresh(); |
| 96 SendSourceInfo(); | 98 SendSourceInfo(); |
| 97 } | 99 } |
| 98 | 100 |
| 99 void NTPTilesInternalsMessageHandler::SendSourceInfo() { | 101 void NTPTilesInternalsMessageHandler::SendSourceInfo() { |
| 100 PrefService* prefs = client_->GetPrefs(); | 102 PrefService* prefs = client_->GetPrefs(); |
| 101 base::DictionaryValue value; | 103 base::DictionaryValue value; |
| 102 | 104 |
| 103 value.SetBoolean("topSites", | 105 value.SetBoolean("topSites", |
| 104 client_->DoesSourceExist(NTPTileSource::TOP_SITES)); | 106 client_->DoesSourceExist(NTPTileSource::TOP_SITES)); |
| 105 value.SetBoolean( | 107 value.SetBoolean( |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 | 153 |
| 152 void NTPTilesInternalsMessageHandler::OnMostVisitedURLsAvailable( | 154 void NTPTilesInternalsMessageHandler::OnMostVisitedURLsAvailable( |
| 153 const NTPTilesVector& tiles) { | 155 const NTPTilesVector& tiles) { |
| 154 SendTiles(tiles); | 156 SendTiles(tiles); |
| 155 } | 157 } |
| 156 | 158 |
| 157 void NTPTilesInternalsMessageHandler::OnIconMadeAvailable( | 159 void NTPTilesInternalsMessageHandler::OnIconMadeAvailable( |
| 158 const GURL& site_url) {} | 160 const GURL& site_url) {} |
| 159 | 161 |
| 160 } // namespace ntp_tiles | 162 } // namespace ntp_tiles |
| OLD | NEW |