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 TypedAPIObject<APIObject::TypeBackForwardList> {
public:
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() const { return m_currentIndex; }
int backListCount() const;
int forwardListCount() const;
PassRefPtr<ImmutableArray> backListAsImmutableArrayWithLimit(unsigned limit) const;
PassRefPtr<ImmutableArray> forwardListAsImmutableArrayWithLimit(unsigned limit) const;
#if USE(CF)
CFDictionaryRef createCFDictionaryRepresentation(WebPageProxy::WebPageProxySessionStateFilterCallback, void* context) const;
bool restoreFromCFDictionaryRepresentation(CFDictionaryRef);
bool restoreFromV0CFDictionaryRepresentation(CFDictionaryRef);
bool restoreFromV1CFDictionaryRepresentation(CFDictionaryRef);
#endif
private:
explicit WebBackForwardList(WebPageProxy*);
WebPageProxy* m_page;
BackForwardListItemVector m_entries;
bool m_hasCurrentIndex;
unsigned m_currentIndex;
unsigned m_capacity;
};
}
#endif // WebBackForwardList_h