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

Side by Side Diff: components/ntp_tiles/webui/ntp_tiles_internals_message_handler.cc

Issue 2619993002: ntp_tiles: Migrate to multi-observer model
Patch Set: Fixed build. Created 3 years, 11 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 unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698