Index: ipc/attachment_broker_privileged.h |
diff --git a/ipc/attachment_broker_privileged.h b/ipc/attachment_broker_privileged.h |
deleted file mode 100644 |
index 630574f8df1392a280f9492fa2ccfefe404ccb91..0000000000000000000000000000000000000000 |
--- a/ipc/attachment_broker_privileged.h |
+++ /dev/null |
@@ -1,131 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef IPC_ATTACHMENT_BROKER_PRIVILEGED_H_ |
-#define IPC_ATTACHMENT_BROKER_PRIVILEGED_H_ |
- |
-#include <utility> |
-#include <vector> |
- |
-#include "base/macros.h" |
-#include "base/memory/ref_counted.h" |
-#include "base/single_thread_task_runner.h" |
-#include "build/build_config.h" |
-#include "ipc/attachment_broker.h" |
-#include "ipc/ipc_export.h" |
- |
-#if defined(OS_MACOSX) && !defined(OS_IOS) |
-namespace base { |
-class PortProvider; |
-} // namespace base |
-#endif // defined(OS_MACOSX) && !defined(OS_IOS) |
- |
-namespace IPC { |
- |
-class Endpoint; |
-class Sender; |
- |
-// This abstract subclass of AttachmentBroker is intended for use in a |
-// privileged process . When unprivileged processes want to send attachments, |
-// the attachments get routed through the privileged process, and more |
-// specifically, an instance of this class. |
-class IPC_EXPORT AttachmentBrokerPrivileged : public IPC::AttachmentBroker { |
- public: |
- AttachmentBrokerPrivileged(); |
- ~AttachmentBrokerPrivileged() override; |
- |
- // If there is no global attachment broker, makes a new |
- // AttachmentBrokerPrivileged and sets it as the global attachment broker. |
- // This method is thread safe. |
-#if defined(OS_MACOSX) && !defined(OS_IOS) |
- static void CreateBrokerIfNeeded(base::PortProvider* provider); |
-#else |
- static void CreateBrokerIfNeeded(); |
-#endif // defined(OS_MACOSX) && !defined(OS_IOS) |
- |
- // Similar to CreateBrokerIfNeeded(), but useful for single process unit tests |
- // that don't need real attachment brokering, and don't want to deal with |
- // setting up a fake PortProvider. |
- static void CreateBrokerForSingleProcessTests(); |
- |
- // AttachmentBroker overrides. |
- void RegisterCommunicationChannel( |
- Endpoint* endpoint, |
- scoped_refptr<base::SingleThreadTaskRunner> runner) override; |
- void DeregisterCommunicationChannel(Endpoint* endpoint) override; |
- bool IsPrivilegedBroker() override; |
- |
- protected: |
- using EndpointRunnerPair = |
- std::pair<Endpoint*, scoped_refptr<base::SingleThreadTaskRunner>>; |
- |
- // Returns the sender whose peer's process id is |id|. |
- // Returns nullptr if no sender is found. |
- // The lock returned by get_lock() must already be acquired before calling |
- // this method. The return value is only guaranteed to be valid while the lock |
- // is held. |
- EndpointRunnerPair GetSenderWithProcessId(base::ProcessId id); |
- |
- // Sends a message to the endpoint, dispatching onto another thread if |
- // necessary. |
- void SendMessageToEndpoint(EndpointRunnerPair pair, Message* message); |
- |
- // Errors that can be reported by subclasses. |
- // These match tools/metrics/histograms/histograms.xml. |
- // This enum is append-only. |
- enum UMAError { |
- // The brokerable attachment had a valid destination. This is the success |
- // case. |
- DESTINATION_FOUND = 0, |
- // The brokerable attachment had a destination, but the broker did not have |
- // a channel of communication with that process. |
- DESTINATION_NOT_FOUND = 1, |
- // The brokerable attachment did not have a destination process. |
- NO_DESTINATION = 2, |
- // Error making an intermediate Mach port. |
- ERROR_MAKE_INTERMEDIATE = 3, |
- // Error parsing DuplicateMachPort message. |
- ERROR_PARSE_DUPLICATE_MACH_PORT_MESSAGE = 4, |
- // Couldn't get a task port for the process with a given pid. |
- ERROR_TASK_FOR_PID = 5, |
- // Couldn't make a port with receive rights in the destination process. |
- ERROR_MAKE_RECEIVE_PORT = 6, |
- // Couldn't change the attributes of a Mach port. |
- ERROR_SET_ATTRIBUTES = 7, |
- // Couldn't extract a right from the destination. |
- ERROR_EXTRACT_DEST_RIGHT = 8, |
- // Couldn't send a Mach port in a call to mach_msg(). |
- ERROR_SEND_MACH_PORT = 9, |
- // Couldn't decrease the ref count on a Mach port. |
- ERROR_DECREASE_REF = 10, |
- // Couldn't extract a right from the source. |
- ERROR_EXTRACT_SOURCE_RIGHT = 11, |
- // The broker did not have a channel of communication with the source |
- // process. |
- ERROR_SOURCE_NOT_FOUND = 12, |
- // The broker could not open the source or destination process with extra |
- // privileges. |
- ERROR_COULD_NOT_OPEN_SOURCE_OR_DEST = 13, |
- // The broker was asked to transfer a HANDLE with invalid permissions. |
- ERROR_INVALID_PERMISSIONS = 14, |
- // The broker was not immediately able to send an attachment. |
- DELAYED = 15, |
- // The broker successfully sent a delayed attachment. |
- DELAYED_SEND = 16, |
- ERROR_MAX |
- }; |
- |
- // Emits an UMA metric. |
- void LogError(UMAError error); |
- |
- private: |
- // A vector of Endpoints, and the SingleThreadTaskRunner that should be used |
- // to invoke Send() on each Endpoint. |
- std::vector<EndpointRunnerPair> endpoints_; |
- DISALLOW_COPY_AND_ASSIGN(AttachmentBrokerPrivileged); |
-}; |
- |
-} // namespace IPC |
- |
-#endif // IPC_ATTACHMENT_BROKER_PRIVILEGED_H_ |