| 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_
 | 
| 
 |