WebBackForwardList.h [plain text]
#ifndef WebBackForwardList_h
#define WebBackForwardList_h
#include "APIObject.h"
#include "ImmutableArray.h"
#include "WebBackForwardListItem.h"
#include "WebPageProxy.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
#include <wtf/Vector.h>
#if USE(CF)
#include <CoreFoundation/CFDictionary.h>
#endif
namespace WebKit {
typedef Vector<RefPtr<WebBackForwardListItem> > BackForwardListItemVector;
class WebBackForwardList : public APIObject {
public:
static const Type APIType = TypeBackForwardList;
static PassRefPtr<WebBackForwardList> create(WebPageProxy* page)
{
return adoptRef(new WebBackForwardList(page));
}
void pageClosed();
virtual ~WebBackForwardList();
void addItem(WebBackForwardListItem*);
void goToItem(WebBackForwardListItem*);
void clear();
WebBackForwardListItem* currentItem();
WebBackForwardListItem* backItem();
WebBackForwardListItem* forwardItem();
WebBackForwardListItem* itemAtIndex(int);
const BackForwardListItemVector& entries() const { return m_entries; }
uint32_t currentIndex() { return m_current; }
int backListCount();
int forwardListCount();
PassRefPtr<ImmutableArray> backListAsImmutableArrayWithLimit(unsigned limit);
PassRefPtr<ImmutableArray> forwardListAsImmutableArrayWithLimit(unsigned limit);
#if USE(CF)
CFDictionaryRef createCFDictionaryRepresentation(WebPageProxy::WebPageProxySessionStateFilterCallback, void* context) const;
bool restoreFromCFDictionaryRepresentation(CFDictionaryRef);
#endif
private:
static const unsigned NoCurrentItemIndex = UINT_MAX;
WebBackForwardList(WebPageProxy*);
virtual Type type() const { return APIType; }
WebPageProxy* m_page;
BackForwardListItemVector m_entries;
uint32_t m_current;
uint32_t m_capacity;
bool m_closed;
bool m_enabled;
};
}
#endif // WebBackForwardList_h