// Figure out the URL of a page or subframe. Returns |page_type| as the type, // which indicates page or subframe, or ContextNodeType::NONE if the URL could not // be determined for some reason. static WebURL urlFromFrame(Frame* frame) { if (frame) { DocumentLoader* dl = frame->loader()->documentLoader(); if (dl) { WebDataSource* ds = WebDataSourceImpl::fromDocumentLoader(dl); if (ds) return ds->hasUnreachableURL() ? ds->unreachableURL() : ds->request().url(); } } return WebURL(); }
void WebDevToolsAgentImpl::didCommitProvisionalLoad(WebFrameImpl* webframe, bool isNewNavigation) { if (!m_attached) return; WebDataSource* ds = webframe->dataSource(); const WebURLRequest& request = ds->request(); WebURL url = ds->hasUnreachableURL() ? ds->unreachableURL() : request.url(); if (!webframe->parent()) { m_toolsAgentDelegateStub->frameNavigate(WebCore::KURL(url).string()); SetApuAgentEnabledInUtilityContext(m_utilityContext, m_apuAgentEnabled); } }
void WebViewHost::updateURL(WebFrame* frame) { WebDataSource* ds = frame->dataSource(); ASSERT(ds); const WebURLRequest& request = ds->request(); RefPtr<TestNavigationEntry> entry(TestNavigationEntry::create()); // The referrer will be empty on https->http transitions. It // would be nice if we could get the real referrer from somewhere. entry->setPageID(m_pageId); if (ds->hasUnreachableURL()) entry->setURL(ds->unreachableURL()); else entry->setURL(request.url()); const WebHistoryItem& historyItem = frame->currentHistoryItem(); if (!historyItem.isNull()) entry->setContentState(historyItem); navigationController()->didNavigateToEntry(entry.get()); m_lastPageIdUpdated = max(m_lastPageIdUpdated, m_pageId); }