void FrameLoaderClientEfl::updateGlobalHistory() { WebCore::Frame* frame = EWKPrivate::coreFrame(m_frame); if (!frame) return; WebCore::DocumentLoader* loader = frame->loader()->documentLoader(); if (!loader) return; const FrameLoader* frameLoader = loader->frameLoader(); const bool isMainFrameRequest = frameLoader && (loader == frameLoader->provisionalDocumentLoader()) && frameLoader->isLoadingMainFrame(); const CString& urlForHistory = loader->urlForHistory().string().utf8(); const CString& title = loader->title().string().utf8(); const CString& firstParty = loader->request().firstPartyForCookies().string().utf8(); const CString& clientRedirectSource = loader->clientRedirectSourceForHistory().utf8(); const CString& originalURL = loader->originalURL().string().utf8(); const CString& httpMethod = loader->request().httpMethod().utf8(); const CString& responseURL = loader->responseURL().string().utf8(); const CString& mimeType = loader->response().mimeType().utf8(); Ewk_Frame_Resource_Request request = { originalURL.data(), firstParty.data(), httpMethod.data(), 0, m_frame, isMainFrameRequest }; Ewk_Frame_Resource_Response response = { responseURL.data(), loader->response().httpStatusCode(), 0, mimeType.data() }; bool hasSubstituteData = loader->substituteData().isValid(); Ewk_View_Navigation_Data data = { urlForHistory.data(), title.data(), &request, &response, hasSubstituteData, clientRedirectSource.data() }; evas_object_smart_callback_call(m_view, "navigate,with,data", &data); }
void FrameLoaderClientEfl::updateGlobalHistoryRedirectLinks() { WebCore::Frame* frame = EWKPrivate::coreFrame(m_frame); if (!frame) return; WebCore::DocumentLoader* loader = frame->loader()->documentLoader(); if (!loader) return; if (!loader->clientRedirectSourceForHistory().isNull()) { const CString& sourceURL = loader->clientRedirectSourceForHistory().utf8(); const CString& destinationURL = loader->clientRedirectDestinationForHistory().utf8(); Ewk_View_Redirection_Data data = { sourceURL.data(), destinationURL.data() }; evas_object_smart_callback_call(m_view, "perform,client,redirect", &data); } if (!loader->serverRedirectSourceForHistory().isNull()) { const CString& sourceURL = loader->serverRedirectSourceForHistory().utf8(); const CString& destinationURL = loader->serverRedirectDestinationForHistory().utf8(); Ewk_View_Redirection_Data data = { sourceURL.data(), destinationURL.data() }; evas_object_smart_callback_call(m_view, "perform,server,redirect", &data); } }