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

Side by Side Diff: content/browser/renderer_host/render_process_host_impl.cc

Issue 9980016: Delete background tab IOSurfaces on Mac. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comments and piman feedback Created 8 years, 8 months 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // Represents the browser side of the browser <--> renderer communication 5 // Represents the browser side of the browser <--> renderer communication
6 // channel. There will be one RenderProcessHost per renderer process. 6 // channel. There will be one RenderProcessHost per renderer process.
7 7
8 #include "content/browser/renderer_host/render_process_host_impl.h" 8 #include "content/browser/renderer_host/render_process_host_impl.h"
9 9
10 #if defined(OS_WIN) 10 #if defined(OS_WIN)
11 #include <objbase.h> // For CoInitialize/CoUninitialize. 11 #include <objbase.h> // For CoInitialize/CoUninitialize.
12 #endif 12 #endif
13 13
14 #include <algorithm> 14 #include <algorithm>
15 #include <limits> 15 #include <limits>
16 #include <vector> 16 #include <vector>
17 17
18 #if defined(OS_POSIX) 18 #if defined(OS_POSIX)
19 #include <utility> // for pair<> 19 #include <utility> // for pair<>
20 #endif 20 #endif
21 21
22 #include "base/base_switches.h" 22 #include "base/base_switches.h"
23 #include "base/bind.h" 23 #include "base/bind.h"
24 #include "base/bind_helpers.h" 24 #include "base/bind_helpers.h"
25 #include "base/callback.h" 25 #include "base/callback.h"
26 #include "base/command_line.h" 26 #include "base/command_line.h"
27 #include "base/debug/trace_event.h"
27 #include "base/lazy_instance.h" 28 #include "base/lazy_instance.h"
28 #include "base/logging.h" 29 #include "base/logging.h"
29 #include "base/metrics/field_trial.h" 30 #include "base/metrics/field_trial.h"
30 #include "base/metrics/histogram.h" 31 #include "base/metrics/histogram.h"
31 #include "base/path_service.h" 32 #include "base/path_service.h"
32 #include "base/platform_file.h" 33 #include "base/platform_file.h"
33 #include "base/process_util.h" 34 #include "base/process_util.h"
34 #include "base/rand_util.h" 35 #include "base/rand_util.h"
35 #include "base/stl_util.h" 36 #include "base/stl_util.h"
36 #include "base/string_util.h" 37 #include "base/string_util.h"
(...skipping 879 matching lines...) Expand 10 before | Expand all | Expand 10 after
916 // Dispatch incoming messages to the appropriate RenderView/WidgetHost. 917 // Dispatch incoming messages to the appropriate RenderView/WidgetHost.
917 RenderWidgetHost* rwh = render_widget_hosts_.Lookup(msg.routing_id()); 918 RenderWidgetHost* rwh = render_widget_hosts_.Lookup(msg.routing_id());
918 if (!rwh) { 919 if (!rwh) {
919 if (msg.is_sync()) { 920 if (msg.is_sync()) {
920 // The listener has gone away, so we must respond or else the caller will 921 // The listener has gone away, so we must respond or else the caller will
921 // hang waiting for a reply. 922 // hang waiting for a reply.
922 IPC::Message* reply = IPC::SyncMessage::GenerateReply(&msg); 923 IPC::Message* reply = IPC::SyncMessage::GenerateReply(&msg);
923 reply->set_reply_error(); 924 reply->set_reply_error();
924 Send(reply); 925 Send(reply);
925 } 926 }
927
928 // If this is a SwapBuffers, we need to ack it if we're not going to handle
929 // it so that the GPU process doesn't get stuck in unscheduled state.
930 bool msg_is_ok = true;
931 IPC_BEGIN_MESSAGE_MAP_EX(RenderProcessHostImpl, msg, msg_is_ok)
932 IPC_MESSAGE_HANDLER(ViewHostMsg_CompositorSurfaceBuffersSwapped,
933 OnCompositorSurfaceBuffersSwappedNoHost)
934 IPC_END_MESSAGE_MAP_EX()
926 return true; 935 return true;
927 } 936 }
928 return RenderWidgetHostImpl::From(rwh)->OnMessageReceived(msg); 937 return RenderWidgetHostImpl::From(rwh)->OnMessageReceived(msg);
929 } 938 }
930 939
931 void RenderProcessHostImpl::OnChannelConnected(int32 peer_pid) { 940 void RenderProcessHostImpl::OnChannelConnected(int32 peer_pid) {
932 #if defined(IPC_MESSAGE_LOG_ENABLED) 941 #if defined(IPC_MESSAGE_LOG_ENABLED)
933 Send(new ChildProcessMsg_SetIPCLoggingEnabled( 942 Send(new ChildProcessMsg_SetIPCLoggingEnabled(
934 IPC::Logging::GetInstance()->Enabled())); 943 IPC::Logging::GetInstance()->Enabled()));
935 #endif 944 #endif
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after
1334 void RenderProcessHostImpl::OnRevealFolderInOS(const FilePath& path) { 1343 void RenderProcessHostImpl::OnRevealFolderInOS(const FilePath& path) {
1335 // Only honor the request if appropriate persmissions are granted. 1344 // Only honor the request if appropriate persmissions are granted.
1336 if (ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile(GetID(), 1345 if (ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile(GetID(),
1337 path)) 1346 path))
1338 content::GetContentClient()->browser()->OpenItem(path); 1347 content::GetContentClient()->browser()->OpenItem(path);
1339 } 1348 }
1340 1349
1341 void RenderProcessHostImpl::OnSavedPageAsMHTML(int job_id, int64 data_size) { 1350 void RenderProcessHostImpl::OnSavedPageAsMHTML(int job_id, int64 data_size) {
1342 MHTMLGenerationManager::GetInstance()->MHTMLGenerated(job_id, data_size); 1351 MHTMLGenerationManager::GetInstance()->MHTMLGenerated(job_id, data_size);
1343 } 1352 }
1353
1354 void RenderProcessHostImpl::OnCompositorSurfaceBuffersSwappedNoHost(
1355 int32 surface_id,
1356 uint64 surface_handle,
1357 int32 route_id,
1358 int32 gpu_process_host_id) {
1359 TRACE_EVENT0("renderer_host",
1360 "RenderWidgetHostImpl::OnCompositorSurfaceBuffersSwappedNoHost");
1361 RenderWidgetHostImpl::AcknowledgeSwapBuffers(route_id,
1362 gpu_process_host_id);
1363 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698