示例#1
0
void PageClientImpl::processDidCrash()
{
    // Check if loading was ongoing, when web process crashed.
    double loadProgress = ewk_view_load_progress_get(m_viewWidget);
    if (loadProgress >= 0 && loadProgress < 1)
        ewk_view_load_progress_changed(m_viewWidget, 1);

    ewk_view_webprocess_crashed(m_viewWidget);
}
示例#2
0
void PageClientBase::processDidCrash()
{
    // Check if loading was ongoing, when web process crashed.
    double loadProgress = ewk_view_load_progress_get(m_viewImpl->view());
    if (loadProgress >= 0 && loadProgress < 1) {
        loadProgress = 1;
        m_viewImpl->smartCallback<LoadProgress>().call(&loadProgress);
    }

    bool handled = false;
    m_viewImpl->smartCallback<WebProcessCrashed>().call(&handled);

    if (!handled) {
        CString url = m_viewImpl->page()->urlAtProcessExit().utf8();
        WARN("WARNING: The web process experienced a crash on '%s'.\n", url.data());

        // Display an error page
        ewk_view_html_string_load(m_viewImpl->view(), "The web process has crashed.", 0, url.data());
    }
}