summaryrefslogtreecommitdiffstats
path: root/WebCore/history/BackForwardList.cpp
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2008-10-21 07:00:00 -0700
committerThe Android Open Source Project <initial-contribution@android.com>2008-10-21 07:00:00 -0700
commit9364f22aed35e1a1e9d07c121510f80be3ab0502 (patch)
treed49911209b132da58d838efa852daf28d516df21 /WebCore/history/BackForwardList.cpp
parent87eb0cb35bad8784770ebc807e6c982432e47107 (diff)
downloadexternal_webkit-9364f22aed35e1a1e9d07c121510f80be3ab0502.zip
external_webkit-9364f22aed35e1a1e9d07c121510f80be3ab0502.tar.gz
external_webkit-9364f22aed35e1a1e9d07c121510f80be3ab0502.tar.bz2
Initial Contribution
Diffstat (limited to 'WebCore/history/BackForwardList.cpp')
-rw-r--r--WebCore/history/BackForwardList.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/WebCore/history/BackForwardList.cpp b/WebCore/history/BackForwardList.cpp
index f912239..3bd7a06 100644
--- a/WebCore/history/BackForwardList.cpp
+++ b/WebCore/history/BackForwardList.cpp
@@ -29,6 +29,12 @@
#include "HistoryItem.h"
#include "Logging.h"
#include "PageCache.h"
+#ifdef ANDROID_HISTORY_CLIENT
+#include "Frame.h"
+#include "FrameLoader.h"
+#include "FrameLoaderClient.h"
+#include "Page.h"
+#endif
using namespace std;
@@ -76,25 +82,45 @@ void BackForwardList::addItem(PassRefPtr<HistoryItem> prpItem)
m_entryHash.remove(item);
pageCache()->remove(item.get());
m_current--;
+#ifdef ANDROID_HISTORY_CLIENT
+ m_page->mainFrame()->loader()->client()->dispatchDidRemoveHistoryItem(item.get(), 0);
+#endif
}
m_entries.append(prpItem);
m_entryHash.add(m_entries.last());
m_current++;
+#ifdef ANDROID_HISTORY_CLIENT
+ m_page->mainFrame()->loader()->client()->dispatchDidAddHistoryItem(currentItem());
+#endif
}
void BackForwardList::goBack()
{
ASSERT(m_current > 0);
+#ifdef ANDROID_HISTORY_CLIENT
+ if (m_current > 0) {
+ m_current--;
+ m_page->mainFrame()->loader()->client()->dispatchDidChangeHistoryIndex(this);
+ }
+#else
if (m_current > 0)
m_current--;
+#endif
}
void BackForwardList::goForward()
{
ASSERT(m_current < m_entries.size() - 1);
+#ifdef ANDROID_HISTORY_CLIENT
+ if (m_current < m_entries.size() - 1) {
+ m_current++;
+ m_page->mainFrame()->loader()->client()->dispatchDidChangeHistoryIndex(this);
+ }
+#else
if (m_current < m_entries.size() - 1)
m_current++;
+#endif
}
void BackForwardList::goToItem(HistoryItem* item)
@@ -106,8 +132,15 @@ void BackForwardList::goToItem(HistoryItem* item)
for (; index < m_entries.size(); ++index)
if (m_entries[index] == item)
break;
+#ifdef ANDROID_HISTORY_CLIENT
+ if (index < m_entries.size()) {
+ m_current = index;
+ m_page->mainFrame()->loader()->client()->dispatchDidChangeHistoryIndex(this);
+ }
+#else
if (index < m_entries.size())
m_current = index;
+#endif
}
HistoryItem* BackForwardList::backItem()
@@ -173,8 +206,15 @@ void BackForwardList::setCapacity(int size)
if (!size)
m_current = NoCurrentItemIndex;
+#ifdef ANDROID_HISTORY_CLIENT
+ else if (m_current > m_entries.size() - 1) {
+ m_current = m_entries.size() - 1;
+ m_page->mainFrame()->loader()->client()->dispatchDidChangeHistoryIndex(this);
+ }
+#else
else if (m_current > m_entries.size() - 1)
m_current = m_entries.size() - 1;
+#endif
m_capacity = size;
}