/** * webkit_web_data_source_get_request: * @data_source: a #WebKitWebDataSource * * Returns a #WebKitNetworkRequest that was used to create this * #WebKitWebDataSource. The #WebKitNetworkRequest returned by this method is * the request that was "committed", and hence, different from the request you * get from the webkit_web_data_source_get_initial_request method. * * Return value: (transfer none): the #WebKitNetworkRequest that * created the @data_source or %NULL if the @data_source is not * attached to the frame or the frame hasn't been loaded. * * Since: 1.1.14 */ WebKitNetworkRequest* webkit_web_data_source_get_request(WebKitWebDataSource* webDataSource) { g_return_val_if_fail(WEBKIT_IS_WEB_DATA_SOURCE(webDataSource), NULL); WebKitWebDataSourcePrivate* priv = webDataSource->priv; FrameLoader* frameLoader = priv->loader->frameLoader(); if (!frameLoader || !frameLoader->frameHasLoaded()) return NULL; ResourceRequest request = priv->loader->request(); if (priv->networkRequest) g_object_unref(priv->networkRequest); priv->networkRequest = webkit_network_request_new_with_core_request(request); return priv->networkRequest; }
PassRefPtr<HistoryItem> HistoryController::createItemTree(Frame* targetFrame, bool clipAtTarget) { RefPtr<HistoryItem> bfItem = createItem(); if (!m_frameLoadComplete) { saveScrollPositionAndViewStateToItem(m_previousItem.get()); saveTextWrapWidth(m_previousItem.get()); } if (!clipAtTarget || m_frame != targetFrame) { // save frame state for items that aren't loading (khtml doesn't save those) saveDocumentState(); // clipAtTarget is false for navigations within the same document, so // we should copy the documentSequenceNumber over to the newly create // item. Non-target items are just clones, and they should therefore // preserve the same itemSequenceNumber. if (m_previousItem) { if (m_frame != targetFrame) bfItem->setItemSequenceNumber(m_previousItem->itemSequenceNumber()); bfItem->setDocumentSequenceNumber(m_previousItem->documentSequenceNumber()); } for (Frame* child = m_frame->tree()->firstChild(); child; child = child->tree()->nextSibling()) { FrameLoader* childLoader = child->loader(); bool hasChildLoaded = childLoader->frameHasLoaded(); // If the child is a frame corresponding to an <object> element that never loaded, // we don't want to create a history item, because that causes fallback content // to be ignored on reload. if (!(!hasChildLoaded && childLoader->isHostedByObjectElement())) bfItem->addChildItem(childLoader->history()->createItemTree(targetFrame, clipAtTarget)); } } // FIXME: Eliminate the isTargetItem flag in favor of itemSequenceNumber. if (m_frame == targetFrame) bfItem->setIsTargetItem(true); return bfItem; }
PassRefPtr<HistoryItem> HistoryController::createItemTree(Frame* targetFrame, bool clipAtTarget) { RefPtr<HistoryItem> bfItem = createItem(m_frame->tree()->parent() ? true : false); if (m_previousItem) saveScrollPositionAndViewStateToItem(m_previousItem.get()); if (!(clipAtTarget && m_frame == targetFrame)) { // save frame state for items that aren't loading (khtml doesn't save those) saveDocumentState(); for (Frame* child = m_frame->tree()->firstChild(); child; child = child->tree()->nextSibling()) { FrameLoader* childLoader = child->loader(); bool hasChildLoaded = childLoader->frameHasLoaded(); // If the child is a frame corresponding to an <object> element that never loaded, // we don't want to create a history item, because that causes fallback content // to be ignored on reload. if (!(!hasChildLoaded && childLoader->isHostedByObjectElement())) bfItem->addChildItem(childLoader->history()->createItemTree(targetFrame, clipAtTarget)); } } if (m_frame == targetFrame) bfItem->setIsTargetItem(true); return bfItem; }