diff --git a/patch/patch.cfg b/patch/patch.cfg index acacd83ed..457cf7baf 100644 --- a/patch/patch.cfg +++ b/patch/patch.cfg @@ -138,6 +138,12 @@ patches = [ 'name': 'ui_gl_81sdk', 'path': '../ui/gl/', }, + { + # Fix crash when calling LoadURL/Reload from OnRenderProcessTerminated. + # https://code.google.com/p/chromiumembedded/issues/detail?id=1429 + 'name': 'render_process_host_1429', + 'path': '../content/browser/renderer_host/', + }, { # Disable scollbar bounce and overlay on OS X. # http://code.google.com/p/chromiumembedded/issues/detail?id=364 diff --git a/patch/patches/render_process_host_1429.patch b/patch/patches/render_process_host_1429.patch new file mode 100644 index 000000000..da58f6788 --- /dev/null +++ b/patch/patches/render_process_host_1429.patch @@ -0,0 +1,24 @@ +diff --git render_process_host_impl.cc render_process_host_impl.cc +index ef9570f..4dd5eb4 100644 +--- render_process_host_impl.cc ++++ render_process_host_impl.cc +@@ -1927,6 +1927,9 @@ void RenderProcessHostImpl::ProcessDied(bool already_dead) { + message_port_message_filter_ = NULL; + RemoveUserData(kSessionStorageHolderKey); + ++ mojo_application_host_.reset(new MojoApplicationHost); ++ mojo_activation_required_ = false; ++ + IDMap::iterator iter(&listeners_); + while (!iter.IsAtEnd()) { + iter.GetCurrentValue()->OnMessageReceived( +@@ -1936,9 +1939,6 @@ void RenderProcessHostImpl::ProcessDied(bool already_dead) { + iter.Advance(); + } + +- mojo_application_host_.reset(new MojoApplicationHost); +- mojo_activation_required_ = false; +- + // It's possible that one of the calls out to the observers might have caused + // this object to be no longer needed. + if (delayed_cleanup_needed_)