OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "components/crash/content/browser/crash_handler_host_linux.h" | 5 #include "components/crash/content/browser/crash_handler_host_linux.h" |
6 | 6 |
7 #include <errno.h> | 7 #include <errno.h> |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 #include <stdlib.h> | 10 #include <stdlib.h> |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 // lifetime of the IO message loop. Thus, all calls to base::Bind() use | 84 // lifetime of the IO message loop. Thus, all calls to base::Bind() use |
85 // non-refcounted pointers. | 85 // non-refcounted pointers. |
86 | 86 |
87 CrashHandlerHostLinux::CrashHandlerHostLinux(const std::string& process_type, | 87 CrashHandlerHostLinux::CrashHandlerHostLinux(const std::string& process_type, |
88 const base::FilePath& dumps_path, | 88 const base::FilePath& dumps_path, |
89 bool upload) | 89 bool upload) |
90 : process_type_(process_type), | 90 : process_type_(process_type), |
91 dumps_path_(dumps_path), | 91 dumps_path_(dumps_path), |
92 upload_(upload), | 92 upload_(upload), |
93 shutting_down_(false), | 93 shutting_down_(false), |
94 worker_pool_token_(BrowserThread::GetBlockingPool()->GetSequenceToken()) { | 94 worker_pool_token_(base::SequencedWorkerPool::GetSequenceToken()) { |
95 int fds[2]; | 95 int fds[2]; |
96 // We use SOCK_SEQPACKET rather than SOCK_DGRAM to prevent the process from | 96 // We use SOCK_SEQPACKET rather than SOCK_DGRAM to prevent the process from |
97 // sending datagrams to other sockets on the system. The sandbox may prevent | 97 // sending datagrams to other sockets on the system. The sandbox may prevent |
98 // the process from calling socket() to create new sockets, but it'll still | 98 // the process from calling socket() to create new sockets, but it'll still |
99 // inherit some sockets. With PF_UNIX+SOCK_DGRAM, it can call sendmsg to send | 99 // inherit some sockets. With PF_UNIX+SOCK_DGRAM, it can call sendmsg to send |
100 // a datagram to any (abstract) socket on the same system. With | 100 // a datagram to any (abstract) socket on the same system. With |
101 // SOCK_SEQPACKET, this is prevented. | 101 // SOCK_SEQPACKET, this is prevented. |
102 CHECK_EQ(0, socketpair(AF_UNIX, SOCK_SEQPACKET, 0, fds)); | 102 CHECK_EQ(0, socketpair(AF_UNIX, SOCK_SEQPACKET, 0, fds)); |
103 static const int on = 1; | 103 static const int on = 1; |
104 | 104 |
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
431 // no-ops. | 431 // no-ops. |
432 shutting_down_ = true; | 432 shutting_down_ = true; |
433 uploader_thread_->Stop(); | 433 uploader_thread_->Stop(); |
434 } | 434 } |
435 | 435 |
436 bool CrashHandlerHostLinux::IsShuttingDown() const { | 436 bool CrashHandlerHostLinux::IsShuttingDown() const { |
437 return shutting_down_; | 437 return shutting_down_; |
438 } | 438 } |
439 | 439 |
440 } // namespace breakpad | 440 } // namespace breakpad |
OLD | NEW |