Looking in
source of 3239 branch:
- Code: Select all
void CefBrowserImpl::OnLoadingStateChange(bool isLoading) {
CefRefPtr<CefApp> app = CefContentClient::Get()->application();
if (app.get()) {
CefRefPtr<CefRenderProcessHandler> handler = app->GetRenderProcessHandler();
if (handler.get()) {
CefRefPtr<CefLoadHandler> load_handler = handler->GetLoadHandler();
if (load_handler.get()) {
WebView* web_view = render_view()->GetWebView();
const bool canGoBack = webkit_glue::CanGoBack(web_view);
const bool canGoForward = webkit_glue::CanGoForward(web_view);
load_handler->OnLoadingStateChange(this, isLoading, canGoBack,
canGoForward);
}
}
}
}
Looking from source it should be invoked in renderer. (Browser is invoked from libcef/browser/browser_host_impl.cc in CefBrowserHostImpl::LoadingStateChanged).
CefRenderProcessHandler implements GetLoadHandler and returns a CefLoadHandler (either the this or a delegate) which in turn implements OnLoadingStateChange.
CefBrowserImpl::OnLoadingStateChange (from libcef/renderer/browser_impl.cpp) is invoked from CefBrowserImpl::DidStartLoading/DidStopLoading.
The only way to not be invoked would be that CefBrowserImpl::DidStartLoading is not invoked, which I found hard to believe.