summaryrefslogtreecommitdiffstats
path: root/chrome/browser/navigation_controller_base.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/navigation_controller_base.cc')
-rw-r--r--chrome/browser/navigation_controller_base.cc25
1 files changed, 7 insertions, 18 deletions
diff --git a/chrome/browser/navigation_controller_base.cc b/chrome/browser/navigation_controller_base.cc
index 76371a5..f34876d 100644
--- a/chrome/browser/navigation_controller_base.cc
+++ b/chrome/browser/navigation_controller_base.cc
@@ -33,8 +33,6 @@
#include "base/logging.h"
#include "chrome/browser/navigation_entry.h"
-#include "chrome/common/notification_service.h"
-#include "chrome/common/notification_types.h"
#include "webkit/glue/webkit_glue.h"
// The maximum number of entries that a navigation controller can store.
@@ -211,12 +209,6 @@ void NavigationControllerBase::LoadEntry(NavigationEntry* entry) {
// TODO(pkasting): http://b/1113085 Should this use DiscardPendingEntry()?
DiscardPendingEntryInternal();
pending_entry_ = entry;
- // TODO(brettw) the reinterpret cast can be removed once we combine the
- // NavigationController and the NavigationControllerBase.
- NotificationService::current()->Notify(
- NOTIFY_NAV_ENTRY_PENDING,
- Source<NavigationController>(reinterpret_cast<NavigationController*>(this)),
- NotificationService::NoDetails());
NavigateToPendingEntry(false);
}
@@ -249,7 +241,6 @@ void NavigationControllerBase::DidNavigateToEntry(NavigationEntry* entry) {
// active WebContents, because we have just navigated to it.
if (entry->GetPageID() > GetMaxPageID()) {
InsertEntry(entry);
- NotifyNavigationEntryCommitted();
return;
}
@@ -305,7 +296,7 @@ void NavigationControllerBase::DidNavigateToEntry(NavigationEntry* entry) {
delete entry;
- NotifyNavigationEntryCommitted();
+ NotifyNavigationStateChanged();
}
void NavigationControllerBase::DiscardPendingEntry() {
@@ -344,15 +335,12 @@ void NavigationControllerBase::InsertEntry(NavigationEntry* entry) {
// Prune any entries which are in front of the current entry.
if (current_size > 0) {
- bool pruned = false;
while (last_committed_entry_index_ < (current_size - 1)) {
- pruned = true;
delete entries_[current_size - 1];
entries_.pop_back();
current_size--;
}
- if (pruned) // Only notify if we did prune something.
- NotifyPrunedEntries();
+ NotifyPrunedEntries();
}
if (entries_.size() >= max_entry_count_)
@@ -360,6 +348,8 @@ void NavigationControllerBase::InsertEntry(NavigationEntry* entry) {
entries_.push_back(entry);
last_committed_entry_index_ = static_cast<int>(entries_.size()) - 1;
+
+ NotifyNavigationStateChanged();
}
void NavigationControllerBase::RemoveLastEntry() {
@@ -378,11 +368,10 @@ void NavigationControllerBase::RemoveLastEntry() {
NotifyPrunedEntries();
}
+ NotifyNavigationStateChanged();
}
void NavigationControllerBase::RemoveEntryAtIndex(int index) {
- // TODO(brettw) this is only called to remove the first one when we've got
- // too many entries. It should probably be more specific for this case.
if (index >= static_cast<int>(entries_.size()) ||
index == pending_entry_index_ || index == last_committed_entry_index_) {
NOTREACHED();
@@ -399,8 +388,8 @@ void NavigationControllerBase::RemoveEntryAtIndex(int index) {
last_committed_entry_index_ = -1;
}
- // TODO(brettw) bug 1324021: we probably need some notification here so the
- // session service can stay in sync.
+ NotifyPrunedEntries();
+ NotifyNavigationStateChanged();
}
void NavigationControllerBase::ResetInternal() {