diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2008-10-21 07:00:00 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2008-10-21 07:00:00 -0700 |
commit | 9364f22aed35e1a1e9d07c121510f80be3ab0502 (patch) | |
tree | d49911209b132da58d838efa852daf28d516df21 /WebCore/history/BackForwardList.cpp | |
parent | 87eb0cb35bad8784770ebc807e6c982432e47107 (diff) | |
download | external_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.cpp | 40 |
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; } |