| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/cocoa/history_menu_bridge.h" | 5 #include "chrome/browser/ui/cocoa/history_menu_bridge.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
| 9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
| 10 #include "base/strings/sys_string_conversions.h" | 10 #include "base/strings/sys_string_conversions.h" |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 } | 108 } |
| 109 } | 109 } |
| 110 | 110 |
| 111 // Note that all requests sent to either the history service or the favicon | 111 // Note that all requests sent to either the history service or the favicon |
| 112 // service will be automatically cancelled by their respective Consumers, so | 112 // service will be automatically cancelled by their respective Consumers, so |
| 113 // task cancellation is not done manually here in the dtor. | 113 // task cancellation is not done manually here in the dtor. |
| 114 HistoryMenuBridge::~HistoryMenuBridge() { | 114 HistoryMenuBridge::~HistoryMenuBridge() { |
| 115 // Unregister ourselves as observers and notifications. | 115 // Unregister ourselves as observers and notifications. |
| 116 DCHECK(profile_); | 116 DCHECK(profile_); |
| 117 if (history_service_) { | 117 if (history_service_) { |
| 118 registrar_.Remove(this, chrome::NOTIFICATION_HISTORY_URLS_MODIFIED, | |
| 119 content::Source<Profile>(profile_)); | |
| 120 registrar_.Remove(this, chrome::NOTIFICATION_HISTORY_URLS_DELETED, | 118 registrar_.Remove(this, chrome::NOTIFICATION_HISTORY_URLS_DELETED, |
| 121 content::Source<Profile>(profile_)); | 119 content::Source<Profile>(profile_)); |
| 122 history_service_->RemoveObserver(this); | 120 history_service_->RemoveObserver(this); |
| 123 } else { | 121 } else { |
| 124 registrar_.Remove(this, chrome::NOTIFICATION_HISTORY_LOADED, | 122 registrar_.Remove(this, chrome::NOTIFICATION_HISTORY_LOADED, |
| 125 content::Source<Profile>(profile_)); | 123 content::Source<Profile>(profile_)); |
| 126 } | 124 } |
| 127 | 125 |
| 128 if (tab_restore_service_) | 126 if (tab_restore_service_) |
| 129 tab_restore_service_->RemoveObserver(this); | 127 tab_restore_service_->RemoveObserver(this); |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 273 } | 271 } |
| 274 | 272 |
| 275 void HistoryMenuBridge::OnURLVisited(HistoryService* history_service, | 273 void HistoryMenuBridge::OnURLVisited(HistoryService* history_service, |
| 276 ui::PageTransition transition, | 274 ui::PageTransition transition, |
| 277 const history::URLRow& row, | 275 const history::URLRow& row, |
| 278 const history::RedirectList& redirects, | 276 const history::RedirectList& redirects, |
| 279 base::Time visit_time) { | 277 base::Time visit_time) { |
| 280 OnHistoryChanged(); | 278 OnHistoryChanged(); |
| 281 } | 279 } |
| 282 | 280 |
| 281 void HistoryMenuBridge::OnURLsModified(HistoryService* history_service, |
| 282 const history::URLRows& changed_urls) { |
| 283 OnHistoryChanged(); |
| 284 } |
| 285 |
| 283 HistoryMenuBridge::HistoryItem* HistoryMenuBridge::HistoryItemForMenuItem( | 286 HistoryMenuBridge::HistoryItem* HistoryMenuBridge::HistoryItemForMenuItem( |
| 284 NSMenuItem* item) { | 287 NSMenuItem* item) { |
| 285 std::map<NSMenuItem*, HistoryItem*>::iterator it = menu_item_map_.find(item); | 288 std::map<NSMenuItem*, HistoryItem*>::iterator it = menu_item_map_.find(item); |
| 286 if (it != menu_item_map_.end()) { | 289 if (it != menu_item_map_.end()) { |
| 287 return it->second; | 290 return it->second; |
| 288 } | 291 } |
| 289 return NULL; | 292 return NULL; |
| 290 } | 293 } |
| 291 | 294 |
| 292 HistoryService* HistoryMenuBridge::service() { | 295 HistoryService* HistoryMenuBridge::service() { |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 360 [item->menu_item setToolTip:tooltip]; | 363 [item->menu_item setToolTip:tooltip]; |
| 361 | 364 |
| 362 [menu insertItem:item->menu_item.get() atIndex:index]; | 365 [menu insertItem:item->menu_item.get() atIndex:index]; |
| 363 menu_item_map_.insert(std::make_pair(item->menu_item.get(), item)); | 366 menu_item_map_.insert(std::make_pair(item->menu_item.get(), item)); |
| 364 | 367 |
| 365 return item->menu_item.get(); | 368 return item->menu_item.get(); |
| 366 } | 369 } |
| 367 | 370 |
| 368 void HistoryMenuBridge::Init() { | 371 void HistoryMenuBridge::Init() { |
| 369 DCHECK(history_service_); | 372 DCHECK(history_service_); |
| 370 registrar_.Add(this, chrome::NOTIFICATION_HISTORY_URLS_MODIFIED, | |
| 371 content::Source<Profile>(profile_)); | |
| 372 registrar_.Add(this, chrome::NOTIFICATION_HISTORY_URLS_DELETED, | 373 registrar_.Add(this, chrome::NOTIFICATION_HISTORY_URLS_DELETED, |
| 373 content::Source<Profile>(profile_)); | 374 content::Source<Profile>(profile_)); |
| 374 history_service_->AddObserver(this); | 375 history_service_->AddObserver(this); |
| 375 } | 376 } |
| 376 | 377 |
| 377 void HistoryMenuBridge::CreateMenu() { | 378 void HistoryMenuBridge::CreateMenu() { |
| 378 // If we're currently running CreateMenu(), wait until it finishes. | 379 // If we're currently running CreateMenu(), wait until it finishes. |
| 379 if (create_in_progress_) | 380 if (create_in_progress_) |
| 380 return; | 381 return; |
| 381 create_in_progress_ = true; | 382 create_in_progress_ = true; |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 477 } | 478 } |
| 478 | 479 |
| 479 void HistoryMenuBridge::CancelFaviconRequest(HistoryItem* item) { | 480 void HistoryMenuBridge::CancelFaviconRequest(HistoryItem* item) { |
| 480 DCHECK(item); | 481 DCHECK(item); |
| 481 if (item->icon_requested) { | 482 if (item->icon_requested) { |
| 482 cancelable_task_tracker_.TryCancel(item->icon_task_id); | 483 cancelable_task_tracker_.TryCancel(item->icon_task_id); |
| 483 item->icon_requested = false; | 484 item->icon_requested = false; |
| 484 item->icon_task_id = base::CancelableTaskTracker::kBadTaskId; | 485 item->icon_task_id = base::CancelableTaskTracker::kBadTaskId; |
| 485 } | 486 } |
| 486 } | 487 } |
| OLD | NEW |