void WebBackForwardListProxy::removeItem(uint64_t itemID) { IDToHistoryItemMap::iterator it = idToHistoryItemMap().find(itemID); if (it == idToHistoryItemMap().end()) return; historyItemToIDMap().remove(it->second); idToHistoryItemMap().remove(it); }
void WebBackForwardListProxy::addItemFromUIProcess(uint64_t itemID, PassRefPtr<WebCore::HistoryItem> prpItem) { RefPtr<HistoryItem> item = prpItem; // This item/itemID pair should not already exist in our maps. ASSERT(!historyItemToIDMap().contains(item.get())); ASSERT(!idToHistoryItemMap().contains(itemID)); historyItemToIDMap().set(item, itemID); idToHistoryItemMap().set(itemID, item); }
void WebBackForwardListProxy::addItem(PassRefPtr<HistoryItem> prpItem) { RefPtr<HistoryItem> item = prpItem; ASSERT(!historyItemToIDMap().contains(item)); if (!m_page) return; uint64_t itemID = generateHistoryItemID(); ASSERT(!idToHistoryItemMap().contains(itemID)); historyItemToIDMap().set(item, itemID); idToHistoryItemMap().set(itemID, item); updateBackForwardItem(itemID, item.get()); m_page->send(Messages::WebPageProxy::BackForwardAddItem(itemID)); }
HistoryItem* WebBackForwardListProxy::itemAtIndex(int itemIndex) { if (!m_page) return 0; uint64_t itemID = 0; if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::BackForwardItemAtIndex(itemIndex), Messages::WebPageProxy::BackForwardItemAtIndex::Reply(itemID), m_page->pageID())) return 0; if (!itemID) return 0; return idToHistoryItemMap().get(itemID).get(); }
static uint64_t getIDForHistoryItem(HistoryItem* item) { uint64_t itemID = 0; std::pair<HistoryItemToIDMap::iterator, bool> result = historyItemToIDMap().add(item, 0); if (result.second) { itemID = generateHistoryItemID(); result.first->second = itemID; idToHistoryItemMap().set(itemID, item); } else itemID = result.first->second; ASSERT(itemID); return itemID; }
HistoryItem* WebBackForwardListProxy::itemForID(uint64_t itemID) { return idToHistoryItemMap().get(itemID).get(); }