Merge lp:~abreu-alexandre/oxide/fix-unloads-crash into lp:~oxide-developers/oxide/oxide.trunk

Proposed by Alexandre Abreu on 2015-05-15
Status: Superseded
Proposed branch: lp:~abreu-alexandre/oxide/fix-unloads-crash
Merge into: lp:~oxide-developers/oxide/oxide.trunk
Diff against target: 158 lines (+72/-1) (has conflicts)
6 files modified
CHROMIUM_VERSION (+4/-0)
patches/enable-accelerated-canvas-on-arale.patch (+4/-0)
qt/VERSION (+4/-0)
shared/browser/oxide_browser_process_main.cc (+6/-0)
shared/browser/oxide_web_contents_unloader.cc (+36/-1)
shared/browser/oxide_web_view.cc (+18/-0)
Text conflict in CHROMIUM_VERSION
Text conflict in patches/enable-accelerated-canvas-on-arale.patch
Text conflict in qt/VERSION
Text conflict in shared/browser/oxide_web_contents_unloader.cc
Text conflict in shared/browser/oxide_web_view.cc
To merge this branch: bzr merge lp:~abreu-alexandre/oxide/fix-unloads-crash
Reviewer Review Type Date Requested Status
Chris Coulson 2015-05-15 Pending
Review via email: mp+259191@code.launchpad.net

This proposal has been superseded by a proposal from 2015-05-15.

Commit message

Fix premature web contents ptr release

Description of the change

Fix premature web contents ptr release

To post a comment you must log in.

Unmerged revisions

1061. By Alexandre Abreu on 2015-05-15

Fix early web contents ptr release

1060. By Alexandre Abreu on 2015-05-13

Fix race in web contents unloads that can be triggered when the renderer dies as the contents unload has started

1059. By Chris Coulson on 2015-05-08

Bump Chromium rev to 43.0.2357.52

1058. By Chris Coulson on 2015-04-30

Automatically bump qt revision to 1.7.8

1057. By Olivier Tilloy on 2015-04-30

Fix a crash when a JS dialog is dismissed twice (by calling accept() and then reject() on it).

1056. By Olivier Tilloy on 2015-04-30

Fix a crash when a popup menu is dismissed twice (by calling accept() and then cancel() on it).

1055. By Chris Coulson on 2015-04-30

Bump Chromium rev to 43.0.2357.45

1054. By Chris Coulson on 2015-04-29

Automatically bump qt revision to 1.7.7

1053. By Chris Coulson on 2015-04-29

Don't crash when the frame tree is torn down during a process swap

1052. By Chris Coulson on 2015-04-29

Automatically bump qt revision to 1.7.6

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'CHROMIUM_VERSION'
--- CHROMIUM_VERSION 2015-05-05 19:10:05 +0000
+++ CHROMIUM_VERSION 2015-05-15 01:52:36 +0000
@@ -1,1 +1,5 @@
1<<<<<<< TREE
144.0.2391.0244.0.2391.0
3=======
443.0.2357.52
5>>>>>>> MERGE-SOURCE
26
=== modified file 'patches/enable-accelerated-canvas-on-arale.patch'
--- patches/enable-accelerated-canvas-on-arale.patch 2015-05-04 11:31:03 +0000
+++ patches/enable-accelerated-canvas-on-arale.patch 2015-05-15 01:52:36 +0000
@@ -4,7 +4,11 @@
4diff --git a/gpu/config/software_rendering_list_json.cc b/gpu/config/software_rendering_list_json.cc4diff --git a/gpu/config/software_rendering_list_json.cc b/gpu/config/software_rendering_list_json.cc
5--- a/gpu/config/software_rendering_list_json.cc5--- a/gpu/config/software_rendering_list_json.cc
6+++ b/gpu/config/software_rendering_list_json.cc6+++ b/gpu/config/software_rendering_list_json.cc
7<<<<<<< TREE
7@@ -1096,29 +1096,16 @@ LONG_STRING_CONST(8@@ -1096,29 +1096,16 @@ LONG_STRING_CONST(
9=======
10@@ -1182,29 +1182,16 @@ LONG_STRING_CONST(
11>>>>>>> MERGE-SOURCE
8 },12 },
9 "vendor_id": "0x8086",13 "vendor_id": "0x8086",
10 "device_id": ["0x2a02"],14 "device_id": ["0x2a02"],
1115
=== modified file 'qt/VERSION'
--- qt/VERSION 2015-04-07 11:04:04 +0000
+++ qt/VERSION 2015-05-15 01:52:36 +0000
@@ -1,3 +1,7 @@
1MAJOR=11MAJOR=1
2<<<<<<< TREE
2MINOR=83MINOR=8
3PATCH=04PATCH=0
5=======
6MINOR=7
7PATCH=8>>>>>>> MERGE-SOURCE
48
=== modified file 'shared/browser/oxide_browser_process_main.cc'
--- shared/browser/oxide_browser_process_main.cc 2015-05-11 14:47:21 +0000
+++ shared/browser/oxide_browser_process_main.cc 2015-05-15 01:52:36 +0000
@@ -242,6 +242,9 @@
242 // Remove this when we implement a selection API (see bug #1324292)242 // Remove this when we implement a selection API (see bug #1324292)
243 command_line->AppendSwitch(switches::kDisableTouchEditing);243 command_line->AppendSwitch(switches::kDisableTouchEditing);
244244
245 // See https://launchpad.net/bugs/1442413
246 command_line->AppendSwitch("disable-mojo-channel");
247
245 if (gl_impl == gfx::kGLImplementationNone ||248 if (gl_impl == gfx::kGLImplementationNone ||
246 IsEnvironmentOptionEnabled("DISABLE_GPU")) {249 IsEnvironmentOptionEnabled("DISABLE_GPU")) {
247 command_line->AppendSwitch(switches::kDisableGpu);250 command_line->AppendSwitch(switches::kDisableGpu);
@@ -267,6 +270,9 @@
267 if (IsEnvironmentOptionEnabled("NO_SANDBOX")) {270 if (IsEnvironmentOptionEnabled("NO_SANDBOX")) {
268 command_line->AppendSwitch(switches::kNoSandbox);271 command_line->AppendSwitch(switches::kNoSandbox);
269 } else {272 } else {
273 // See https://launchpad.net/bugs/1447311
274 command_line->AppendSwitch(switches::kDisableNamespaceSandbox);
275
270 if (IsEnvironmentOptionEnabled("DISABLE_SETUID_SANDBOX")) {276 if (IsEnvironmentOptionEnabled("DISABLE_SETUID_SANDBOX")) {
271 command_line->AppendSwitch(switches::kDisableSetuidSandbox);277 command_line->AppendSwitch(switches::kDisableSetuidSandbox);
272 }278 }
273279
=== modified file 'shared/browser/oxide_web_contents_unloader.cc'
--- shared/browser/oxide_web_contents_unloader.cc 2015-05-13 21:53:33 +0000
+++ shared/browser/oxide_web_contents_unloader.cc 2015-05-15 01:52:36 +0000
@@ -23,8 +23,35 @@
23#include "base/memory/singleton.h"23#include "base/memory/singleton.h"
24#include "base/message_loop/message_loop.h"24#include "base/message_loop/message_loop.h"
25#include "base/run_loop.h"25#include "base/run_loop.h"
26<<<<<<< TREE
27=======
28#include "base/supports_user_data.h"
29#include "content/public/browser/render_view_host.h"
30>>>>>>> MERGE-SOURCE
26#include "content/public/browser/web_contents.h"31#include "content/public/browser/web_contents.h"
27#include "content/public/browser/web_contents_observer.h"32<<<<<<< TREE
33#include "content/public/browser/web_contents_observer.h"
34=======
35#include "content/public/browser/web_contents_observer.h"
36
37
38class WebContentsUnloaderObserver : public content::WebContentsObserver,
39 public base::SupportsUserData::Data {
40public:
41 explicit WebContentsUnloaderObserver(
42 content::WebContents* contents)
43 : content::WebContentsObserver(contents) {}
44 virtual ~WebContentsUnloaderObserver() {}
45
46 void RenderProcessGone(base::TerminationStatus status) override {
47 web_contents()->GetDelegate()->CloseContents(web_contents());
48 }
49};
50
51namespace {
52const char kWebContentsUnloaderObserverKey[] = "oxide_web_contents_unloader_observer_data";
53}
54>>>>>>> MERGE-SOURCE
2855
29namespace oxide {56namespace oxide {
3057
@@ -80,9 +107,17 @@
80 return;107 return;
81 }108 }
82109
110<<<<<<< TREE
83 // To intercept render process crashes111 // To intercept render process crashes
84 new WebContentsUnloaderObserver(contents.get());112 new WebContentsUnloaderObserver(contents.get());
85113
114=======
115 content::WebContents* wc = contents.get();
116 wc->SetUserData(
117 kWebContentsUnloaderObserverKey,
118 new WebContentsUnloaderObserver(wc));
119
120>>>>>>> MERGE-SOURCE
86 // So we can intercept CloseContents121 // So we can intercept CloseContents
87 contents->SetDelegate(this);122 contents->SetDelegate(this);
88123
89124
=== modified file 'shared/browser/oxide_web_view.cc'
--- shared/browser/oxide_web_view.cc 2015-05-14 15:37:57 +0000
+++ shared/browser/oxide_web_view.cc 2015-05-15 01:52:36 +0000
@@ -1050,6 +1050,7 @@
10501050
1051void WebView::FrameDeleted(content::RenderFrameHost* render_frame_host) {1051void WebView::FrameDeleted(content::RenderFrameHost* render_frame_host) {
1052 WebFrame* frame = WebFrame::FromRenderFrameHost(render_frame_host);1052 WebFrame* frame = WebFrame::FromRenderFrameHost(render_frame_host);
1053<<<<<<< TREE
1053 if (!frame) {1054 if (!frame) {
1054 // When a frame is detached, we get notified before any of its children1055 // When a frame is detached, we get notified before any of its children
1055 // are detached. If we hit this case, it means that this is a child of a1056 // are detached. If we hit this case, it means that this is a child of a
@@ -1072,6 +1073,23 @@
1072 frames.pop();1073 frames.pop();
1073 }1074 }
10741075
1076=======
1077 if (!frame) {
1078 // When a frame is detached, we get notified before any of its children
1079 // are detached. If we hit this case, it means that this is a child of a
1080 // frame that's being detached, and we've already deleted the corresponding
1081 // WebFrame
1082 return;
1083 }
1084
1085 // This is a bit of a hack, but we need to process children now - see the
1086 // comment above
1087 for (size_t i = 0; i < frame->GetChildCount(); ++i) {
1088 certificate_error_manager_.FrameDetached(frame->GetChildAt(i));
1089 }
1090
1091 certificate_error_manager_.FrameDetached(frame);
1092>>>>>>> MERGE-SOURCE
1075 WebFrame::Destroy(frame);1093 WebFrame::Destroy(frame);
1076}1094}
10771095
10781096
=== modified file 'shared/shared.gyp'

Subscribers

People subscribed via source and target branches