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

Unified Diff: content/browser/renderer_host/sandbox_ipc_linux.h

Issue 240563002: Extract SandboxIPCProcess into its own file. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Update DEPS. Created 6 years, 8 months 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
Index: content/browser/renderer_host/sandbox_ipc_linux.h
diff --git a/content/browser/renderer_host/sandbox_ipc_linux.h b/content/browser/renderer_host/sandbox_ipc_linux.h
new file mode 100644
index 0000000000000000000000000000000000000000..2ebefc2e84df33dc0edd3dea542da6f3842f9fb1
--- /dev/null
+++ b/content/browser/renderer_host/sandbox_ipc_linux.h
@@ -0,0 +1,97 @@
+// Copyright 2014 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.
+
+// http://code.google.com/p/chromium/wiki/LinuxSandboxIPC
+
+#ifndef CONTENT_BROWSER_RENDERER_HOST_SANDBOX_IPC_H_
+#define CONTENT_BROWSER_RENDERER_HOST_SANDBOX_IPC_H_
+
+#include <vector>
+
+#include "base/memory/scoped_ptr.h"
+#include "base/pickle.h"
+#include "content/child/blink_platform_impl.h"
+#include "skia/ext/skia_utils_base.h"
+
+namespace content {
+
+class SandboxIPCProcess {
+ public:
+ // lifeline_fd: this is the read end of a pipe which the browser process
+ // holds the other end of. If the browser process dies, its descriptors are
+ // closed and we will noticed an EOF on the pipe. That's our signal to exit.
+ // browser_socket: the browser's end of the sandbox IPC socketpair. From the
+ // point of view of the renderer, it's talking to the browser but this
+ // object actually services the requests.
+ // sandbox_cmd: the path of the sandbox executable.
+ SandboxIPCProcess(int lifeline_fd,
+ int browser_socket,
+ std::string sandbox_cmd);
+ ~SandboxIPCProcess();
+
+ void Run();
+
+ private:
+ void EnsureWebKitInitialized();
+
+ int FindOrAddPath(const SkString& path);
+
+ void HandleRequestFromRenderer(int fd);
+
+ void HandleFontMatchRequest(int fd,
+ const Pickle& pickle,
+ PickleIterator iter,
+ std::vector<int>& fds);
+
+ void HandleFontOpenRequest(int fd,
+ const Pickle& pickle,
+ PickleIterator iter,
+ std::vector<int>& fds);
+
+ void HandleGetFontFamilyForChar(int fd,
+ const Pickle& pickle,
+ PickleIterator iter,
+ std::vector<int>& fds);
+
+ void HandleGetStyleForStrike(int fd,
+ const Pickle& pickle,
+ PickleIterator iter,
+ std::vector<int>& fds);
+
+ void HandleLocaltime(int fd,
+ const Pickle& pickle,
+ PickleIterator iter,
+ std::vector<int>& fds);
+
+ void HandleGetChildWithInode(int fd,
+ const Pickle& pickle,
+ PickleIterator iter,
+ std::vector<int>& fds);
+
+ void HandleMakeSharedMemorySegment(int fd,
+ const Pickle& pickle,
+ PickleIterator iter,
+ std::vector<int>& fds);
+
+ void HandleMatchWithFallback(int fd,
+ const Pickle& pickle,
+ PickleIterator iter,
+ std::vector<int>& fds);
+
+ void SendRendererReply(const std::vector<int>& fds,
+ const Pickle& reply,
+ int reply_fd);
+
+ const int lifeline_fd_;
+ const int browser_socket_;
+ std::vector<std::string> sandbox_cmd_;
+ scoped_ptr<BlinkPlatformImpl> webkit_platform_support_;
+ SkTDArray<SkString*> paths_;
+
+ DISALLOW_COPY_AND_ASSIGN(SandboxIPCProcess);
+};
+
+} // namespace content
+
+#endif // CONTENT_BROWSER_RENDERER_HOST_SANDBOX_IPC_H_
« no previous file with comments | « content/browser/renderer_host/render_sandbox_host_linux.cc ('k') | content/browser/renderer_host/sandbox_ipc_linux.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698