Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: chrome/renderer/render_thread.cc

Issue 501016: Merge 34534 - Mac: make it even less likely that the renderer+Breakpad leaks ... (Closed) Base URL: svn://svn.chromium.org/chrome/branches/249/src/
Patch Set: Created 11 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/chrome.gyp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/render_thread.h" 5 #include "chrome/renderer/render_thread.h"
6 6
7 #include <v8.h> 7 #include <v8.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <map> 10 #include <map>
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 #include "webkit/extensions/v8/benchmarking_extension.h" 70 #include "webkit/extensions/v8/benchmarking_extension.h"
71 #include "webkit/extensions/v8/gears_extension.h" 71 #include "webkit/extensions/v8/gears_extension.h"
72 #include "webkit/extensions/v8/interval_extension.h" 72 #include "webkit/extensions/v8/interval_extension.h"
73 #include "webkit/extensions/v8/playback_extension.h" 73 #include "webkit/extensions/v8/playback_extension.h"
74 74
75 #if defined(OS_WIN) 75 #if defined(OS_WIN)
76 #include <windows.h> 76 #include <windows.h>
77 #include <objbase.h> 77 #include <objbase.h>
78 #endif 78 #endif
79 79
80 #if defined(OS_MACOSX)
81 #include "chrome/app/breakpad_mac.h"
82 #endif
83
80 using WebKit::WebCache; 84 using WebKit::WebCache;
81 using WebKit::WebCrossOriginPreflightResultCache; 85 using WebKit::WebCrossOriginPreflightResultCache;
82 using WebKit::WebFontCache; 86 using WebKit::WebFontCache;
83 using WebKit::WebRuntimeFeatures; 87 using WebKit::WebRuntimeFeatures;
84 using WebKit::WebSecurityPolicy; 88 using WebKit::WebSecurityPolicy;
85 using WebKit::WebScriptController; 89 using WebKit::WebScriptController;
86 using WebKit::WebString; 90 using WebKit::WebString;
87 using WebKit::WebStorageEventDispatcher; 91 using WebKit::WebStorageEventDispatcher;
88 using WebKit::WebView; 92 using WebKit::WebView;
89 93
(...skipping 14 matching lines...) Expand all
104 // from the IPC channel) are routed to the main message loop but never 108 // from the IPC channel) are routed to the main message loop but never
105 // processed (because that message loop is stuck in V8). 109 // processed (because that message loop is stuck in V8).
106 // 110 //
107 // One could make the browser SIGKILL the renderers, but that leaves open a 111 // One could make the browser SIGKILL the renderers, but that leaves open a
108 // large window where a browser failure (or a user, manually terminating 112 // large window where a browser failure (or a user, manually terminating
109 // the browser because "it's stuck") will leave behind a process eating all 113 // the browser because "it's stuck") will leave behind a process eating all
110 // the CPU. 114 // the CPU.
111 // 115 //
112 // So, we install a filter on the channel so that we can process this event 116 // So, we install a filter on the channel so that we can process this event
113 // here and kill the process. 117 // here and kill the process.
118
119 #if defined(OS_MACOSX)
120 // TODO(viettrungluu): crbug.com/28547: The following is needed, as a
121 // stopgap, to avoid leaking due to not releasing Breakpad properly.
122 // TODO(viettrungluu): Investigate why this is being called.
123 if (IsCrashReporterEnabled()) {
124 LOG(INFO) << "Cleaning up Breakpad.";
125 DestructCrashReporter();
126 } else {
127 LOG(INFO) << "Breakpad not enabled; no clean-up needed.";
128 }
129 #endif // OS_MACOSX
130
114 _exit(0); 131 _exit(0);
115 } 132 }
116 }; 133 };
117 #endif 134 #endif
118 } // namespace 135 } // namespace
119 136
120 // When we run plugins in process, we actually run them on the render thread, 137 // When we run plugins in process, we actually run them on the render thread,
121 // which means that we need to make the render thread pump UI events. 138 // which means that we need to make the render thread pump UI events.
122 RenderThread::RenderThread() { 139 RenderThread::RenderThread() {
123 Init(); 140 Init();
(...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after
626 void RenderThread::OnPurgePluginListCache(bool reload_pages) { 643 void RenderThread::OnPurgePluginListCache(bool reload_pages) {
627 EnsureWebKitInitialized(); 644 EnsureWebKitInitialized();
628 // The call below will cause a GetPlugins call with refresh=true, but at this 645 // The call below will cause a GetPlugins call with refresh=true, but at this
629 // point we already know that the browser has refreshed its list, so disable 646 // point we already know that the browser has refreshed its list, so disable
630 // refresh temporarily to prevent each renderer process causing the list to be 647 // refresh temporarily to prevent each renderer process causing the list to be
631 // regenerated. 648 // regenerated.
632 plugin_refresh_allowed_ = false; 649 plugin_refresh_allowed_ = false;
633 WebKit::resetPluginCache(reload_pages); 650 WebKit::resetPluginCache(reload_pages);
634 plugin_refresh_allowed_ = true; 651 plugin_refresh_allowed_ = true;
635 } 652 }
OLDNEW
« no previous file with comments | « chrome/chrome.gyp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698