diff options
author | tbarzic@chromium.org <tbarzic@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-25 01:19:34 +0000 |
---|---|---|
committer | tbarzic@chromium.org <tbarzic@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-25 01:19:34 +0000 |
commit | 921c31cb9c0dc0c83cc072c302ecec5338f57c94 (patch) | |
tree | f4c0ff0e66b6e8138b9902ca98a471049030f0a8 /chrome/browser/extensions/api/terminal/terminal_private_api.h | |
parent | 26aa78079d15a2b553294d02432faf8a544be204 (diff) | |
download | chromium_src-921c31cb9c0dc0c83cc072c302ecec5338f57c94.zip chromium_src-921c31cb9c0dc0c83cc072c302ecec5338f57c94.tar.gz chromium_src-921c31cb9c0dc0c83cc072c302ecec5338f57c94.tar.bz2 |
Setup permissions for terminalPrivateApi.
Access to terminalPrivateApi will be allowed to component and hterm extensions only. Hterm extension is not component extension, so restricting access to component extensions only won't work. (Hterm already has access to webSocketPrivate API, and extension ID are copied from there)
Also, add "exit" to allowed process output event types (this event will be dispatched
when we detect a observed process has died).
BUG=chromium-os:23273
TEST=ExtensionTerminalPrivateApiTest.*
Review URL: https://chromiumcodereview.appspot.com/9150051
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118967 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/api/terminal/terminal_private_api.h')
-rw-r--r-- | chrome/browser/extensions/api/terminal/terminal_private_api.h | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/chrome/browser/extensions/api/terminal/terminal_private_api.h b/chrome/browser/extensions/api/terminal/terminal_private_api.h index f28fde1..771e94b 100644 --- a/chrome/browser/extensions/api/terminal/terminal_private_api.h +++ b/chrome/browser/extensions/api/terminal/terminal_private_api.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 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. @@ -10,13 +10,27 @@ #include "chrome/browser/extensions/extension_function.h" +// Base class for all terminalPrivate function classes. Main purpose is to run +// permission check before calling actual function implementation. +class TerminalPrivateFunction : public AsyncExtensionFunction { + public: + TerminalPrivateFunction(); + virtual ~TerminalPrivateFunction(); + + virtual bool RunImpl() OVERRIDE; + + // Override with actual extension function implementation. + virtual bool RunTerminalFunction() = 0; + +}; + // Opens new terminal process. Returns the new process id. -class OpenTerminalProcessFunction : public AsyncExtensionFunction { +class OpenTerminalProcessFunction : public TerminalPrivateFunction { public: OpenTerminalProcessFunction(); virtual ~OpenTerminalProcessFunction(); - virtual bool RunImpl() OVERRIDE; + virtual bool RunTerminalFunction() OVERRIDE; private: void OpenOnFileThread(); @@ -28,9 +42,9 @@ class OpenTerminalProcessFunction : public AsyncExtensionFunction { }; // Send input to the terminal process specified by the pid sent as an argument. -class SendInputToTerminalProcessFunction : public AsyncExtensionFunction { +class SendInputToTerminalProcessFunction : public TerminalPrivateFunction { public: - virtual bool RunImpl() OVERRIDE; + virtual bool RunTerminalFunction() OVERRIDE; private: void SendInputOnFileThread(pid_t pid, const std::string& input); @@ -40,9 +54,9 @@ class SendInputToTerminalProcessFunction : public AsyncExtensionFunction { }; // Closes terminal process with given pid. -class CloseTerminalProcessFunction : public AsyncExtensionFunction { +class CloseTerminalProcessFunction : public TerminalPrivateFunction { public: - virtual bool RunImpl() OVERRIDE; + virtual bool RunTerminalFunction() OVERRIDE; private: void CloseOnFileThread(pid_t pid); |