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

Side by Side Diff: chrome/browser/ui/webui/ntp_tiles_internals_ui.cc

Issue 2584483002: Fix ntp-tiles-internals crash in incognito mode (Closed)
Patch Set: rebase 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
« no previous file with comments | « no previous file | components/ntp_tiles/webui/ntp_tiles_internals_message_handler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/browser/ui/webui/ntp_tiles_internals_ui.h" 5 #include "chrome/browser/ui/webui/ntp_tiles_internals_ui.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "chrome/browser/favicon/favicon_service_factory.h" 9 #include "chrome/browser/favicon/favicon_service_factory.h"
10 #include "chrome/browser/history/top_sites_factory.h" 10 #include "chrome/browser/history/top_sites_factory.h"
(...skipping 24 matching lines...) Expand all
35 : public content::WebUIMessageHandler, 35 : public content::WebUIMessageHandler,
36 public ntp_tiles::NTPTilesInternalsMessageHandlerClient { 36 public ntp_tiles::NTPTilesInternalsMessageHandlerClient {
37 public: 37 public:
38 ChromeNTPTilesInternalsMessageHandlerClient() {} 38 ChromeNTPTilesInternalsMessageHandlerClient() {}
39 39
40 private: 40 private:
41 // content::WebUIMessageHandler: 41 // content::WebUIMessageHandler:
42 void RegisterMessages() override; 42 void RegisterMessages() override;
43 43
44 // ntp_tiles::NTPTilesInternalsMessageHandlerClient 44 // ntp_tiles::NTPTilesInternalsMessageHandlerClient
45 bool SupportsNTPTiles() override;
45 bool DoesSourceExist(ntp_tiles::NTPTileSource source) override; 46 bool DoesSourceExist(ntp_tiles::NTPTileSource source) override;
46 std::unique_ptr<ntp_tiles::MostVisitedSites> MakeMostVisitedSites() override; 47 std::unique_ptr<ntp_tiles::MostVisitedSites> MakeMostVisitedSites() override;
47 std::unique_ptr<ntp_tiles::PopularSites> MakePopularSites() override; 48 std::unique_ptr<ntp_tiles::PopularSites> MakePopularSites() override;
48 PrefService* GetPrefs() override; 49 PrefService* GetPrefs() override;
49 void RegisterMessageCallback( 50 void RegisterMessageCallback(
50 const std::string& message, 51 const std::string& message,
51 const base::Callback<void(const base::ListValue*)>& callback) override; 52 const base::Callback<void(const base::ListValue*)>& callback) override;
52 void CallJavascriptFunctionVector( 53 void CallJavascriptFunctionVector(
53 const std::string& name, 54 const std::string& name,
54 const std::vector<const base::Value*>& values) override; 55 const std::vector<const base::Value*>& values) override;
55 56
56 ntp_tiles::NTPTilesInternalsMessageHandler handler_; 57 ntp_tiles::NTPTilesInternalsMessageHandler handler_;
57 58
58 DISALLOW_COPY_AND_ASSIGN(ChromeNTPTilesInternalsMessageHandlerClient); 59 DISALLOW_COPY_AND_ASSIGN(ChromeNTPTilesInternalsMessageHandlerClient);
59 }; 60 };
60 61
61 void ChromeNTPTilesInternalsMessageHandlerClient::RegisterMessages() { 62 void ChromeNTPTilesInternalsMessageHandlerClient::RegisterMessages() {
62 handler_.RegisterMessages(this); 63 handler_.RegisterMessages(this);
63 } 64 }
64 65
66 bool ChromeNTPTilesInternalsMessageHandlerClient::SupportsNTPTiles() {
67 Profile* profile = Profile::FromWebUI(web_ui());
68 return !(profile->IsGuestSession() || profile->IsOffTheRecord());
69 }
70
65 bool ChromeNTPTilesInternalsMessageHandlerClient::DoesSourceExist( 71 bool ChromeNTPTilesInternalsMessageHandlerClient::DoesSourceExist(
66 ntp_tiles::NTPTileSource source) { 72 ntp_tiles::NTPTileSource source) {
67 switch (source) { 73 switch (source) {
68 case ntp_tiles::NTPTileSource::TOP_SITES: 74 case ntp_tiles::NTPTileSource::TOP_SITES:
69 case ntp_tiles::NTPTileSource::SUGGESTIONS_SERVICE: 75 case ntp_tiles::NTPTileSource::SUGGESTIONS_SERVICE:
70 case ntp_tiles::NTPTileSource::WHITELIST: 76 case ntp_tiles::NTPTileSource::WHITELIST:
71 return true; 77 return true;
72 case ntp_tiles::NTPTileSource::POPULAR: 78 case ntp_tiles::NTPTileSource::POPULAR:
73 #if defined(OS_ANDROID) 79 #if defined(OS_ANDROID)
74 return true; 80 return true;
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 132
127 NTPTilesInternalsUI::NTPTilesInternalsUI(content::WebUI* web_ui) 133 NTPTilesInternalsUI::NTPTilesInternalsUI(content::WebUI* web_ui)
128 : WebUIController(web_ui) { 134 : WebUIController(web_ui) {
129 content::WebUIDataSource::Add(Profile::FromWebUI(web_ui), 135 content::WebUIDataSource::Add(Profile::FromWebUI(web_ui),
130 CreateNTPTilesInternalsHTMLSource()); 136 CreateNTPTilesInternalsHTMLSource());
131 web_ui->AddMessageHandler( 137 web_ui->AddMessageHandler(
132 base::MakeUnique<ChromeNTPTilesInternalsMessageHandlerClient>()); 138 base::MakeUnique<ChromeNTPTilesInternalsMessageHandlerClient>());
133 } 139 }
134 140
135 NTPTilesInternalsUI::~NTPTilesInternalsUI() {} 141 NTPTilesInternalsUI::~NTPTilesInternalsUI() {}
OLDNEW
« no previous file with comments | « no previous file | components/ntp_tiles/webui/ntp_tiles_internals_message_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698