diff --git qtwebengine/src/core/renderer/user_resource_controller.cpp qtwebengine/src/core/renderer/user_resource_controller.cpp index b172c762b3..050497ed60 100644 --- qtwebengine/src/core/renderer/user_resource_controller.cpp +++ qtwebengine/src/core/renderer/user_resource_controller.cpp @@ -129,6 +129,8 @@ void UserResourceController::RenderViewObserverHelper::runScripts(UserScriptData void UserResourceController::runScripts(UserScriptData::InjectionPoint p, blink::WebLocalFrame *frame) { content::RenderView *renderView = content::RenderView::FromWebView(frame->view()); + if(!renderView) return; + const bool isMainFrame = (frame == renderView->GetWebView()->mainFrame()); QList scriptsToRun = m_viewUserScriptMap.value(globalScriptsIndex).toList(); @@ -192,7 +194,9 @@ void UserResourceController::RenderViewObserverHelper::FrameDetached(blink::WebF void UserResourceController::RenderViewObserverHelper::OnDestruct() { - UserResourceController::instance()->renderViewDestroyed(render_view()); + content::RenderView* view = render_view(); + if(view) + UserResourceController::instance()->renderViewDestroyed(view); } bool UserResourceController::RenderViewObserverHelper::OnMessageReceived(const IPC::Message &message) @@ -209,17 +213,23 @@ bool UserResourceController::RenderViewObserverHelper::OnMessageReceived(const I void UserResourceController::RenderViewObserverHelper::onUserScriptAdded(const UserScriptData &script) { - UserResourceController::instance()->addScriptForView(script, render_view()); + content::RenderView* view = render_view(); + if(view) + UserResourceController::instance()->addScriptForView(script, view); } void UserResourceController::RenderViewObserverHelper::onUserScriptRemoved(const UserScriptData &script) { - UserResourceController::instance()->removeScriptForView(script, render_view()); + content::RenderView* view = render_view(); + if(view) + UserResourceController::instance()->removeScriptForView(script, view); } void UserResourceController::RenderViewObserverHelper::onScriptsCleared() { - UserResourceController::instance()->clearScriptsForView(render_view()); + content::RenderView* view = render_view(); + if(view) + UserResourceController::instance()->clearScriptsForView(view); } UserResourceController *UserResourceController::instance()