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

Unified Diff: ipc/attachment_broker_privileged.h

Issue 2473993003: Delete IPC::ChannelPosix, IPC::ChannelWin and IPC::AttachmentBroker. (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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ipc/attachment_broker_messages.h ('k') | ipc/attachment_broker_privileged.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_
« no previous file with comments | « ipc/attachment_broker_messages.h ('k') | ipc/attachment_broker_privileged.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698