| Index: chrome/browser/dom_ui/new_tab_ui.cc
|
| ===================================================================
|
| --- chrome/browser/dom_ui/new_tab_ui.cc (revision 19317)
|
| +++ chrome/browser/dom_ui/new_tab_ui.cc (working copy)
|
| @@ -458,9 +458,13 @@
|
| class MostVisitedHandler : public DOMMessageHandler,
|
| public NotificationObserver {
|
| public:
|
| - explicit MostVisitedHandler(DOMUI* dom_ui);
|
| - virtual ~MostVisitedHandler();
|
| + MostVisitedHandler() : url_blacklist_(NULL), pinned_urls_(NULL) { }
|
| + virtual ~MostVisitedHandler() { }
|
|
|
| + // DOMMessageHandler override and implementation.
|
| + virtual DOMMessageHandler* Attach(DOMUI* dom_ui);
|
| + virtual void RegisterMessages();
|
| +
|
| // Callback for the "getMostVisited" message.
|
| void HandleGetMostVisited(const Value* value);
|
|
|
| @@ -533,33 +537,11 @@
|
| DISALLOW_COPY_AND_ASSIGN(MostVisitedHandler);
|
| };
|
|
|
| -MostVisitedHandler::MostVisitedHandler(DOMUI* dom_ui)
|
| - : DOMMessageHandler(dom_ui) {
|
| - // Register ourselves as the handler for the "mostvisited" message from
|
| - // Javascript.
|
| - dom_ui_->RegisterMessageCallback("getMostVisited",
|
| - NewCallback(this, &MostVisitedHandler::HandleGetMostVisited));
|
| -
|
| - // Register ourselves for any most-visited item blacklisting.
|
| - dom_ui_->RegisterMessageCallback("blacklistURLFromMostVisited",
|
| - NewCallback(this, &MostVisitedHandler::HandleBlacklistURL));
|
| - dom_ui_->RegisterMessageCallback("removeURLsFromMostVisitedBlacklist",
|
| - NewCallback(this, &MostVisitedHandler::HandleRemoveURLsFromBlacklist));
|
| - dom_ui_->RegisterMessageCallback("clearMostVisitedURLsBlacklist",
|
| - NewCallback(this, &MostVisitedHandler::HandleClearBlacklist));
|
| -
|
| - url_blacklist_ = dom_ui_->GetProfile()->GetPrefs()->
|
| +DOMMessageHandler* MostVisitedHandler::Attach(DOMUI* dom_ui) {
|
| + url_blacklist_ = dom_ui->GetProfile()->GetPrefs()->
|
| GetMutableDictionary(prefs::kNTPMostVisitedURLsBlacklist);
|
| -
|
| - // Register ourself for pinned URL messages.
|
| - dom_ui->RegisterMessageCallback("addPinnedURL",
|
| - NewCallback(this, &MostVisitedHandler::HandleAddPinnedURL));
|
| - dom_ui->RegisterMessageCallback("removePinnedURL",
|
| - NewCallback(this, &MostVisitedHandler::HandleRemovePinnedURL));
|
| -
|
| - pinned_urls_ = dom_ui_->GetProfile()->GetPrefs()->
|
| - GetMutableDictionary(prefs::kNTPMostVisitedPinnedURLs);
|
| -
|
| + pinned_urls_ = dom_ui->GetProfile()->GetPrefs()->
|
| + GetMutableDictionary(prefs::kNTPMostVisitedPinnedURLs);
|
| // Set up our sources for thumbnail and favicon data. Since we may be in
|
| // testing mode with no I/O thread, only add our handler when an I/O thread
|
| // exists. Ownership is passed to the ChromeURLDataManager.
|
| @@ -576,10 +558,30 @@
|
|
|
| // Get notifications when history is cleared.
|
| registrar_.Add(this, NotificationType::HISTORY_URLS_DELETED,
|
| - Source<Profile>(dom_ui_->GetProfile()));
|
| + Source<Profile>(dom_ui->GetProfile()));
|
| +
|
| + return DOMMessageHandler::Attach(dom_ui);
|
| }
|
|
|
| -MostVisitedHandler::~MostVisitedHandler() {
|
| +void MostVisitedHandler::RegisterMessages() {
|
| + // Register ourselves as the handler for the "mostvisited" message from
|
| + // Javascript.
|
| + dom_ui_->RegisterMessageCallback("getMostVisited",
|
| + NewCallback(this, &MostVisitedHandler::HandleGetMostVisited));
|
| +
|
| + // Register ourselves for any most-visited item blacklisting.
|
| + dom_ui_->RegisterMessageCallback("blacklistURLFromMostVisited",
|
| + NewCallback(this, &MostVisitedHandler::HandleBlacklistURL));
|
| + dom_ui_->RegisterMessageCallback("removeURLsFromMostVisitedBlacklist",
|
| + NewCallback(this, &MostVisitedHandler::HandleRemoveURLsFromBlacklist));
|
| + dom_ui_->RegisterMessageCallback("clearMostVisitedURLsBlacklist",
|
| + NewCallback(this, &MostVisitedHandler::HandleClearBlacklist));
|
| +
|
| + // Register ourself for pinned URL messages.
|
| + dom_ui_->RegisterMessageCallback("addPinnedURL",
|
| + NewCallback(this, &MostVisitedHandler::HandleAddPinnedURL));
|
| + dom_ui_->RegisterMessageCallback("removePinnedURL",
|
| + NewCallback(this, &MostVisitedHandler::HandleRemovePinnedURL));
|
| }
|
|
|
| void MostVisitedHandler::HandleGetMostVisited(const Value* value) {
|
| @@ -828,9 +830,12 @@
|
| class TemplateURLHandler : public DOMMessageHandler,
|
| public TemplateURLModelObserver {
|
| public:
|
| - explicit TemplateURLHandler(DOMUI* dom_ui);
|
| + TemplateURLHandler() : DOMMessageHandler(), template_url_model_(NULL) { }
|
| virtual ~TemplateURLHandler();
|
|
|
| + // DOMMessageHandler implementation.
|
| + virtual void RegisterMessages();
|
| +
|
| // Callback for the "getMostSearched" message, sent when the page requests
|
| // the list of available searches.
|
| void HandleGetMostSearched(const Value* content);
|
| @@ -843,27 +848,23 @@
|
| virtual void OnTemplateURLModelChanged();
|
|
|
| private:
|
| - DOMUI* dom_ui_;
|
| TemplateURLModel* template_url_model_; // Owned by profile.
|
|
|
| DISALLOW_COPY_AND_ASSIGN(TemplateURLHandler);
|
| };
|
|
|
| -TemplateURLHandler::TemplateURLHandler(DOMUI* dom_ui)
|
| - : DOMMessageHandler(dom_ui),
|
| - dom_ui_(dom_ui),
|
| - template_url_model_(NULL) {
|
| - dom_ui->RegisterMessageCallback("getMostSearched",
|
| - NewCallback(this, &TemplateURLHandler::HandleGetMostSearched));
|
| - dom_ui->RegisterMessageCallback("doSearch",
|
| - NewCallback(this, &TemplateURLHandler::HandleDoSearch));
|
| -}
|
| -
|
| TemplateURLHandler::~TemplateURLHandler() {
|
| if (template_url_model_)
|
| template_url_model_->RemoveObserver(this);
|
| }
|
|
|
| +void TemplateURLHandler::RegisterMessages() {
|
| + dom_ui_->RegisterMessageCallback("getMostSearched",
|
| + NewCallback(this, &TemplateURLHandler::HandleGetMostSearched));
|
| + dom_ui_->RegisterMessageCallback("doSearch",
|
| + NewCallback(this, &TemplateURLHandler::HandleDoSearch));
|
| +}
|
| +
|
| void TemplateURLHandler::HandleGetMostSearched(const Value* content) {
|
| // The page Javascript has requested the list of keyword searches.
|
| // Start loading them from the template URL backend.
|
| @@ -989,9 +990,12 @@
|
| class RecentlyBookmarkedHandler : public DOMMessageHandler,
|
| public BookmarkModelObserver {
|
| public:
|
| - explicit RecentlyBookmarkedHandler(DOMUI* dom_ui);
|
| - ~RecentlyBookmarkedHandler();
|
| + RecentlyBookmarkedHandler() : model_(NULL) { }
|
| + virtual ~RecentlyBookmarkedHandler();
|
|
|
| + // DOMMessageHandler implementation.
|
| + virtual void RegisterMessages();
|
| +
|
| // Callback which navigates to the bookmarks page.
|
| void HandleShowBookmarkPage(const Value*);
|
|
|
| @@ -1024,27 +1028,23 @@
|
| virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model,
|
| BookmarkNode* node) {}
|
|
|
| - DOMUI* dom_ui_;
|
| // The model we're getting bookmarks from. The model is owned by the Profile.
|
| BookmarkModel* model_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(RecentlyBookmarkedHandler);
|
| };
|
|
|
| -RecentlyBookmarkedHandler::RecentlyBookmarkedHandler(DOMUI* dom_ui)
|
| - : DOMMessageHandler(dom_ui),
|
| - dom_ui_(dom_ui),
|
| - model_(NULL) {
|
| - dom_ui->RegisterMessageCallback("getRecentlyBookmarked",
|
| - NewCallback(this,
|
| - &RecentlyBookmarkedHandler::HandleGetRecentlyBookmarked));
|
| -}
|
| -
|
| RecentlyBookmarkedHandler::~RecentlyBookmarkedHandler() {
|
| if (model_)
|
| model_->RemoveObserver(this);
|
| }
|
|
|
| +void RecentlyBookmarkedHandler::RegisterMessages() {
|
| + dom_ui_->RegisterMessageCallback("getRecentlyBookmarked",
|
| + NewCallback(this,
|
| + &RecentlyBookmarkedHandler::HandleGetRecentlyBookmarked));
|
| +}
|
| +
|
| void RecentlyBookmarkedHandler::HandleGetRecentlyBookmarked(const Value*) {
|
| if (!model_) {
|
| model_ = dom_ui_->GetProfile()->GetBookmarkModel();
|
| @@ -1100,9 +1100,12 @@
|
| class RecentlyClosedTabsHandler : public DOMMessageHandler,
|
| public TabRestoreService::Observer {
|
| public:
|
| - explicit RecentlyClosedTabsHandler(DOMUI* dom_ui);
|
| + RecentlyClosedTabsHandler() : tab_restore_service_(NULL) { }
|
| virtual ~RecentlyClosedTabsHandler();
|
|
|
| + // DOMMessageHandler implementation.
|
| + virtual void RegisterMessages();
|
| +
|
| // Callback for the "reopenTab" message. Rewrites the history of the
|
| // currently displayed tab to be the one in TabRestoreService with a
|
| // history of a session passed in through the content pointer.
|
| @@ -1131,22 +1134,17 @@
|
| bool WindowToValue(const TabRestoreService::Window& window,
|
| DictionaryValue* dictionary);
|
|
|
| - DOMUI* dom_ui_;
|
| -
|
| // TabRestoreService that we are observing.
|
| TabRestoreService* tab_restore_service_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(RecentlyClosedTabsHandler);
|
| };
|
|
|
| -RecentlyClosedTabsHandler::RecentlyClosedTabsHandler(DOMUI* dom_ui)
|
| - : DOMMessageHandler(dom_ui),
|
| - dom_ui_(dom_ui),
|
| - tab_restore_service_(NULL) {
|
| - dom_ui->RegisterMessageCallback("getRecentlyClosedTabs",
|
| +void RecentlyClosedTabsHandler::RegisterMessages() {
|
| + dom_ui_->RegisterMessageCallback("getRecentlyClosedTabs",
|
| NewCallback(this,
|
| &RecentlyClosedTabsHandler::HandleGetRecentlyClosedTabs));
|
| - dom_ui->RegisterMessageCallback("reopenTab",
|
| + dom_ui_->RegisterMessageCallback("reopenTab",
|
| NewCallback(this, &RecentlyClosedTabsHandler::HandleReopenTab));
|
| }
|
|
|
| @@ -1286,21 +1284,22 @@
|
|
|
| class HistoryHandler : public DOMMessageHandler {
|
| public:
|
| - explicit HistoryHandler(DOMUI* dom_ui);
|
| + HistoryHandler() { }
|
| + virtual ~HistoryHandler() { }
|
|
|
| + // DOMMessageHandler implementation.
|
| + virtual void RegisterMessages();
|
| +
|
| // Callback which navigates to the history page and performs a search.
|
| void HandleSearchHistoryPage(const Value* content);
|
|
|
| private:
|
| - DOMUI* dom_ui_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(HistoryHandler);
|
| };
|
|
|
| -HistoryHandler::HistoryHandler(DOMUI* dom_ui)
|
| - : DOMMessageHandler(dom_ui),
|
| - dom_ui_(dom_ui) {
|
| - dom_ui->RegisterMessageCallback("searchHistoryPage",
|
| +void HistoryHandler::RegisterMessages() {
|
| + dom_ui_->RegisterMessageCallback("searchHistoryPage",
|
| NewCallback(this, &HistoryHandler::HandleSearchHistoryPage));
|
| }
|
|
|
| @@ -1336,21 +1335,22 @@
|
| // information (treat it as RecordComputedMetrics)
|
| class MetricsHandler : public DOMMessageHandler {
|
| public:
|
| - explicit MetricsHandler(DOMUI* dom_ui);
|
| -
|
| + MetricsHandler() { }
|
| + virtual ~MetricsHandler() { }
|
| +
|
| + // DOMMessageHandler implementation.
|
| + virtual void RegisterMessages();
|
| +
|
| // Callback which records a user action.
|
| void HandleMetrics(const Value* content);
|
|
|
| private:
|
| - DOMUI* dom_ui_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(MetricsHandler);
|
| };
|
|
|
| -MetricsHandler::MetricsHandler(DOMUI* dom_ui)
|
| - : DOMMessageHandler(dom_ui),
|
| - dom_ui_(dom_ui) {
|
| - dom_ui->RegisterMessageCallback("metrics",
|
| +void MetricsHandler::RegisterMessages() {
|
| + dom_ui_->RegisterMessageCallback("metrics",
|
| NewCallback(this, &MetricsHandler::HandleMetrics));
|
| }
|
|
|
| @@ -1413,22 +1413,23 @@
|
| if (EnableNewNewTabPage()) {
|
| DownloadManager* dlm = GetProfile()->GetDownloadManager();
|
| DownloadsDOMHandler* downloads_handler =
|
| - new DownloadsDOMHandler(this, dlm);
|
| + new DownloadsDOMHandler(dlm);
|
| + downloads_handler->Attach(this);
|
| AddMessageHandler(downloads_handler);
|
| downloads_handler->Init();
|
|
|
| - AddMessageHandler(new ShownSectionsHandler(this));
|
| + AddMessageHandler((new ShownSectionsHandler())->Attach(this));
|
| }
|
|
|
| + AddMessageHandler((new TemplateURLHandler())->Attach(this));
|
| + AddMessageHandler((new MostVisitedHandler())->Attach(this));
|
| + AddMessageHandler((new RecentlyBookmarkedHandler())->Attach(this));
|
| + AddMessageHandler((new RecentlyClosedTabsHandler())->Attach(this));
|
| + AddMessageHandler((new HistoryHandler())->Attach(this));
|
| + AddMessageHandler((new MetricsHandler())->Attach(this));
|
| if (EnableWebResources())
|
| - AddMessageHandler(new TipsHandler(this));
|
| + AddMessageHandler((new TipsHandler())->Attach(this));
|
|
|
| - AddMessageHandler(new TemplateURLHandler(this));
|
| - AddMessageHandler(new MostVisitedHandler(this));
|
| - AddMessageHandler(new RecentlyBookmarkedHandler(this));
|
| - AddMessageHandler(new RecentlyClosedTabsHandler(this));
|
| - AddMessageHandler(new HistoryHandler(this));
|
| - AddMessageHandler(new MetricsHandler(this));
|
| #ifdef CHROME_PERSONALIZATION
|
| if (!Personalization::IsP13NDisabled(GetProfile())) {
|
| AddMessageHandler(Personalization::CreateNewTabPageHandler(this));
|
|
|