//////////////////////////////////////////////////////////////////// // // // Implementation: CefLifeSpanHandler::OnBeforePopup // // http://magpcss.org/ceforum/apidocs3/projects/(default)/CefLifeSpanHandler.html#OnBeforePopup(CefRefPtr%3CCefBrowser%3E,CefRefPtr%3CCefFrame%3E,constCefString&,constCefString&,constCefPopupFeatures&,CefWindowInfo&,CefRefPtr%3CCefClient%3E&,CefBrowserSettings&,bool*) // // // //////////////////////////////////////////////////////////////////// bool CWebView::OnBeforePopup ( CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, const CefString& target_url, const CefString& target_frame_name, CefLifeSpanHandler::WindowOpenDisposition target_disposition, bool user_gesture, const CefPopupFeatures& popupFeatures, CefWindowInfo& windowInfo, CefRefPtr<CefClient>& client, CefBrowserSettings& settings, bool* no_javascript_access ) { // ATTENTION: This method is called on the IO thread // Trigger the popup/new tab event SString strTagetURL, strOpenerURL; ConvertURL ( target_url, strTagetURL ); ConvertURL ( frame->GetURL (), strOpenerURL ); // Queue event to run on the main thread auto func = std::bind ( &CWebBrowserEventsInterface::Events_OnPopup, m_pEventsInterface, strTagetURL, strOpenerURL ); g_pCore->GetWebCore ()->AddEventToEventQueue ( func, this, "OnBeforePopup" ); // Block popups generally return true; }
//////////////////////////////////////////////////////////////////// // // // Implementation: CefLoadHandler::OnLoadError // // http://magpcss.org/ceforum/apidocs3/projects/(default)/CefLoadHandler.html#OnLoadError(CefRefPtr%3CCefBrowser%3E,CefRefPtr%3CCefFrame%3E,ErrorCode,constCefString&,constCefString&) // // // //////////////////////////////////////////////////////////////////// void CWebView::OnLoadError ( CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, CefLoadHandler::ErrorCode errorCode, const CefString& errorText, const CefString& failedURL ) { SString strURL; ConvertURL ( failedURL, strURL ); // Queue event to run on the main thread auto func = std::bind ( &CWebBrowserEventsInterface::Events_OnLoadingFailed, m_pEventsInterface, strURL, errorCode, SString ( errorText ) ); g_pCore->GetWebCore ()->AddEventToEventQueue ( func, this, "OnLoadError" ); }
//////////////////////////////////////////////////////////////////// // // // Implementation: CefLoadHandler::OnLoadStart // // http://magpcss.org/ceforum/apidocs3/projects/(default)/CefLoadHandler.html#OnLoadStart(CefRefPtr%3CCefBrowser%3E,CefRefPtr%3CCefFrame%3E) // // // //////////////////////////////////////////////////////////////////// void CWebView::OnLoadStart ( CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame ) { SString strURL; ConvertURL ( frame->GetURL (), strURL ); if ( strURL == "blank" ) return; // Queue event to run on the main thread auto func = std::bind ( &CWebBrowserEventsInterface::Events_OnLoadingStart, m_pEventsInterface, strURL, frame->IsMain () ); g_pCore->GetWebCore ()->AddEventToEventQueue ( func, this, "OnLoadStart" ); }
//////////////////////////////////////////////////////////////////// // // // Implementation: CefLoadHandler::OnLoadEnd // // http://magpcss.org/ceforum/apidocs3/projects/(default)/CefLoadHandler.html#OnLoadEnd(CefRefPtr%3CCefBrowser%3E,CefRefPtr%3CCefFrame%3E,int) // // // //////////////////////////////////////////////////////////////////// void CWebView::OnLoadEnd ( CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, int httpStatusCode ) { if ( frame->IsMain () ) { SString strURL; ConvertURL ( frame->GetURL (), strURL ); // Queue event to run on the main thread auto func = std::bind ( &CWebBrowserEventsInterface::Events_OnDocumentReady, m_pEventsInterface, strURL ); g_pCore->GetWebCore ()->AddEventToEventQueue ( func, this, "OnLoadEnd" ); } }