| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_EXTENSIONS_API_PROCESSES_PROCESSES_API_H__ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_API_PROCESSES_PROCESSES_API_H__ |
| 6 #define CHROME_BROWSER_EXTENSIONS_API_PROCESSES_PROCESSES_API_H__ | 6 #define CHROME_BROWSER_EXTENSIONS_API_PROCESSES_PROCESSES_API_H__ |
| 7 | 7 |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 }; | 132 }; |
| 133 | 133 |
| 134 // This extension function returns the Process object for the renderer process | 134 // This extension function returns the Process object for the renderer process |
| 135 // currently in use by the specified Tab. | 135 // currently in use by the specified Tab. |
| 136 class GetProcessIdForTabFunction : public ChromeAsyncExtensionFunction { | 136 class GetProcessIdForTabFunction : public ChromeAsyncExtensionFunction { |
| 137 public: | 137 public: |
| 138 GetProcessIdForTabFunction(); | 138 GetProcessIdForTabFunction(); |
| 139 | 139 |
| 140 private: | 140 private: |
| 141 virtual ~GetProcessIdForTabFunction() {} | 141 virtual ~GetProcessIdForTabFunction() {} |
| 142 virtual bool RunImpl() OVERRIDE; | 142 virtual bool RunAsync() OVERRIDE; |
| 143 | 143 |
| 144 void GetProcessIdForTab(); | 144 void GetProcessIdForTab(); |
| 145 | 145 |
| 146 // Storage for the tab ID parameter. | 146 // Storage for the tab ID parameter. |
| 147 int tab_id_; | 147 int tab_id_; |
| 148 | 148 |
| 149 DECLARE_EXTENSION_FUNCTION("processes.getProcessIdForTab", | 149 DECLARE_EXTENSION_FUNCTION("processes.getProcessIdForTab", |
| 150 PROCESSES_GETPROCESSIDFORTAB) | 150 PROCESSES_GETPROCESSIDFORTAB) |
| 151 }; | 151 }; |
| 152 | 152 |
| 153 // Extension function that allows terminating Chrome subprocesses, by supplying | 153 // Extension function that allows terminating Chrome subprocesses, by supplying |
| 154 // the unique ID for the process coming from the ChildProcess ID pool. | 154 // the unique ID for the process coming from the ChildProcess ID pool. |
| 155 // Using unique IDs instead of OS process IDs allows two advantages: | 155 // Using unique IDs instead of OS process IDs allows two advantages: |
| 156 // * guaranteed uniqueness, since OS process IDs can be reused | 156 // * guaranteed uniqueness, since OS process IDs can be reused |
| 157 // * guards against killing non-Chrome processes | 157 // * guards against killing non-Chrome processes |
| 158 class TerminateFunction : public ChromeAsyncExtensionFunction { | 158 class TerminateFunction : public ChromeAsyncExtensionFunction { |
| 159 public: | 159 public: |
| 160 TerminateFunction(); | 160 TerminateFunction(); |
| 161 | 161 |
| 162 private: | 162 private: |
| 163 virtual ~TerminateFunction() {} | 163 virtual ~TerminateFunction() {} |
| 164 virtual bool RunImpl() OVERRIDE; | 164 virtual bool RunAsync() OVERRIDE; |
| 165 | |
| 166 | 165 |
| 167 void TerminateProcess(); | 166 void TerminateProcess(); |
| 168 | 167 |
| 169 // Storage for the process ID parameter. | 168 // Storage for the process ID parameter. |
| 170 int process_id_; | 169 int process_id_; |
| 171 | 170 |
| 172 DECLARE_EXTENSION_FUNCTION("processes.terminate", | 171 DECLARE_EXTENSION_FUNCTION("processes.terminate", |
| 173 PROCESSES_TERMINATE) | 172 PROCESSES_TERMINATE) |
| 174 }; | 173 }; |
| 175 | 174 |
| 176 // Extension function which returns a set of Process objects, containing the | 175 // Extension function which returns a set of Process objects, containing the |
| 177 // details corresponding to the process IDs supplied as input. | 176 // details corresponding to the process IDs supplied as input. |
| 178 class GetProcessInfoFunction : public ChromeAsyncExtensionFunction { | 177 class GetProcessInfoFunction : public ChromeAsyncExtensionFunction { |
| 179 public: | 178 public: |
| 180 GetProcessInfoFunction(); | 179 GetProcessInfoFunction(); |
| 181 | 180 |
| 182 private: | 181 private: |
| 183 virtual ~GetProcessInfoFunction(); | 182 virtual ~GetProcessInfoFunction(); |
| 184 virtual bool RunImpl() OVERRIDE; | 183 virtual bool RunAsync() OVERRIDE; |
| 185 | 184 |
| 186 void GatherProcessInfo(); | 185 void GatherProcessInfo(); |
| 187 | 186 |
| 188 // Member variables to store the function parameters | 187 // Member variables to store the function parameters |
| 189 std::vector<int> process_ids_; | 188 std::vector<int> process_ids_; |
| 190 #if defined(ENABLE_TASK_MANAGER) | 189 #if defined(ENABLE_TASK_MANAGER) |
| 191 bool memory_; | 190 bool memory_; |
| 192 #endif | 191 #endif |
| 193 | 192 |
| 194 DECLARE_EXTENSION_FUNCTION("processes.getProcessInfo", | 193 DECLARE_EXTENSION_FUNCTION("processes.getProcessInfo", |
| 195 PROCESSES_GETPROCESSINFO) | 194 PROCESSES_GETPROCESSINFO) |
| 196 }; | 195 }; |
| 197 | 196 |
| 198 } // namespace extensions | 197 } // namespace extensions |
| 199 | 198 |
| 200 #endif // CHROME_BROWSER_EXTENSIONS_API_PROCESSES_PROCESSES_API_H__ | 199 #endif // CHROME_BROWSER_EXTENSIONS_API_PROCESSES_PROCESSES_API_H__ |
| OLD | NEW |