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

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

Issue 2476883002: Remove obsolete methods from IPC::Channel and related classes. (Closed)
Patch Set: Created 4 years, 1 month 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 #include <algorithm> 10 #include <algorithm>
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 #if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) 369 #if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX)
370 // This static member variable holds the zygote communication information for 370 // This static member variable holds the zygote communication information for
371 // the renderer. 371 // the renderer.
372 ZygoteHandle g_render_zygote; 372 ZygoteHandle g_render_zygote;
373 #endif // defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) 373 #endif // defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX)
374 374
375 // NOTE: changes to this class need to be reviewed by the security team. 375 // NOTE: changes to this class need to be reviewed by the security team.
376 class RendererSandboxedProcessLauncherDelegate 376 class RendererSandboxedProcessLauncherDelegate
377 : public SandboxedProcessLauncherDelegate { 377 : public SandboxedProcessLauncherDelegate {
378 public: 378 public:
379 explicit RendererSandboxedProcessLauncherDelegate(IPC::ChannelProxy* channel) 379 RendererSandboxedProcessLauncherDelegate() {}
380 #if defined(OS_POSIX)
381 : ipc_fd_(channel->TakeClientFileDescriptor())
382 #endif // OS_POSIX
383 {
384 }
385 380
386 ~RendererSandboxedProcessLauncherDelegate() override {} 381 ~RendererSandboxedProcessLauncherDelegate() override {}
387 382
388 #if defined(OS_WIN) 383 #if defined(OS_WIN)
389 bool PreSpawnTarget(sandbox::TargetPolicy* policy) override { 384 bool PreSpawnTarget(sandbox::TargetPolicy* policy) override {
390 AddBaseHandleClosePolicy(policy); 385 AddBaseHandleClosePolicy(policy);
391 386
392 const base::string16& sid = 387 const base::string16& sid =
393 GetContentClient()->browser()->GetAppContainerSidForSandboxType( 388 GetContentClient()->browser()->GetAppContainerSidForSandboxType(
394 GetSandboxType()); 389 GetSandboxType());
395 if (!sid.empty()) 390 if (!sid.empty())
396 AddAppContainerPolicy(policy, sid.c_str()); 391 AddAppContainerPolicy(policy, sid.c_str());
397 392
398 return GetContentClient()->browser()->PreSpawnRenderer(policy); 393 return GetContentClient()->browser()->PreSpawnRenderer(policy);
399 } 394 }
400 395
401 #elif defined(OS_POSIX) 396 #elif defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
402 #if !defined(OS_MACOSX) && !defined(OS_ANDROID)
403 ZygoteHandle* GetZygote() override { 397 ZygoteHandle* GetZygote() override {
404 const base::CommandLine& browser_command_line = 398 const base::CommandLine& browser_command_line =
405 *base::CommandLine::ForCurrentProcess(); 399 *base::CommandLine::ForCurrentProcess();
406 base::CommandLine::StringType renderer_prefix = 400 base::CommandLine::StringType renderer_prefix =
407 browser_command_line.GetSwitchValueNative(switches::kRendererCmdPrefix); 401 browser_command_line.GetSwitchValueNative(switches::kRendererCmdPrefix);
408 if (!renderer_prefix.empty()) 402 if (!renderer_prefix.empty())
409 return nullptr; 403 return nullptr;
410 return GetGenericZygote(); 404 return GetGenericZygote();
411 } 405 }
412 #endif // !defined(OS_MACOSX) && !defined(OS_ANDROID)
413 base::ScopedFD TakeIpcFd() override { return std::move(ipc_fd_); }
414 #endif // OS_WIN 406 #endif // OS_WIN
415 407
416 SandboxType GetSandboxType() override { return SANDBOX_TYPE_RENDERER; } 408 SandboxType GetSandboxType() override { return SANDBOX_TYPE_RENDERER; }
417
418 private:
419 #if defined(OS_POSIX)
420 base::ScopedFD ipc_fd_;
421 #endif // OS_POSIX
422 }; 409 };
423 410
424 const char kSessionStorageHolderKey[] = "kSessionStorageHolderKey"; 411 const char kSessionStorageHolderKey[] = "kSessionStorageHolderKey";
425 412
426 class SessionStorageHolder : public base::SupportsUserData::Data { 413 class SessionStorageHolder : public base::SupportsUserData::Data {
427 public: 414 public:
428 SessionStorageHolder() 415 SessionStorageHolder()
429 : session_storage_namespaces_awaiting_close_( 416 : session_storage_namespaces_awaiting_close_(
430 new std::map<int, SessionStorageNamespaceMap>) { 417 new std::map<int, SessionStorageNamespaceMap>) {
431 } 418 }
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
886 // first so the process type argument will appear first. 873 // first so the process type argument will appear first.
887 base::CommandLine* cmd_line = new base::CommandLine(renderer_path); 874 base::CommandLine* cmd_line = new base::CommandLine(renderer_path);
888 if (!renderer_prefix.empty()) 875 if (!renderer_prefix.empty())
889 cmd_line->PrependWrapper(renderer_prefix); 876 cmd_line->PrependWrapper(renderer_prefix);
890 AppendRendererCommandLine(cmd_line); 877 AppendRendererCommandLine(cmd_line);
891 878
892 // Spawn the child process asynchronously to avoid blocking the UI thread. 879 // Spawn the child process asynchronously to avoid blocking the UI thread.
893 // As long as there's no renderer prefix, we can use the zygote process 880 // As long as there's no renderer prefix, we can use the zygote process
894 // at this stage. 881 // at this stage.
895 child_process_launcher_.reset(new ChildProcessLauncher( 882 child_process_launcher_.reset(new ChildProcessLauncher(
896 new RendererSandboxedProcessLauncherDelegate(channel_.get()), cmd_line, 883 new RendererSandboxedProcessLauncherDelegate(), cmd_line, GetID(), this,
897 GetID(), this, child_token_, 884 child_token_, base::Bind(&RenderProcessHostImpl::OnMojoError, id_)));
898 base::Bind(&RenderProcessHostImpl::OnMojoError, id_)));
899 channel_->Pause(); 885 channel_->Pause();
900 886
901 fast_shutdown_started_ = false; 887 fast_shutdown_started_ = false;
902 } 888 }
903 889
904 if (!gpu_observer_registered_) { 890 if (!gpu_observer_registered_) {
905 gpu_observer_registered_ = true; 891 gpu_observer_registered_ = true;
906 ui::GpuSwitchingManager::GetInstance()->AddObserver(this); 892 ui::GpuSwitchingManager::GetInstance()->AddObserver(this);
907 } 893 }
908 894
(...skipping 2069 matching lines...) Expand 10 before | Expand all | Expand 10 after
2978 LOG(ERROR) << "Terminating render process for bad Mojo message: " << error; 2964 LOG(ERROR) << "Terminating render process for bad Mojo message: " << error;
2979 2965
2980 // The ReceivedBadMessage call below will trigger a DumpWithoutCrashing. Alias 2966 // The ReceivedBadMessage call below will trigger a DumpWithoutCrashing. Alias
2981 // enough information here so that we can determine what the bad message was. 2967 // enough information here so that we can determine what the bad message was.
2982 base::debug::Alias(&error); 2968 base::debug::Alias(&error);
2983 bad_message::ReceivedBadMessage(render_process_id, 2969 bad_message::ReceivedBadMessage(render_process_id,
2984 bad_message::RPH_MOJO_PROCESS_ERROR); 2970 bad_message::RPH_MOJO_PROCESS_ERROR);
2985 } 2971 }
2986 2972
2987 } // namespace content 2973 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698