Page* ChromeClientEfl::createWindow(Frame*, const FrameLoadRequest& frameLoadRequest, const WindowFeatures& features) { Evas_Object* newView = ewk_view_window_create(m_view, EINA_TRUE, &features); if (!newView) return 0; if (!frameLoadRequest.isEmpty()) ewk_view_uri_set(newView, frameLoadRequest.resourceRequest().url().string().utf8().data()); return ewk_view_core_page_get(newView); }
void FrameLoaderClientEfl::didTransferChildFrameToNewDocument(Page*) { ASSERT(m_frame); Frame* currentFrame = EWKPrivate::coreFrame(m_frame); Evas_Object* currentView = ewk_frame_view_get(m_frame); Frame* parentFrame = currentFrame->tree()->parent(); FrameLoaderClientEfl* client = static_cast<FrameLoaderClientEfl*>(parentFrame->loader()->client()); Evas_Object* clientFrame = client ? client->webFrame() : 0; Evas_Object* clientView = ewk_frame_view_get(clientFrame); if (currentView != clientView) { ewk_frame_view_set(m_frame, clientView); m_view = clientView; } ASSERT(ewk_view_core_page_get(ewk_frame_view_get(m_frame)) == currentFrame->page()); }