| Index: content/public/browser/utility_process_host.h | 
| =================================================================== | 
| --- content/public/browser/utility_process_host.h	(revision 0) | 
| +++ content/public/browser/utility_process_host.h	(revision 0) | 
| @@ -0,0 +1,66 @@ | 
| +// 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. | 
| + | 
| +#ifndef CONTENT_PUBLIC_BROWSER_UTILITY_PROCESS_HOST_H_ | 
| +#define CONTENT_PUBLIC_BROWSER_UTILITY_PROCESS_HOST_H_ | 
| +#pragma once | 
| + | 
| +#include "base/process_util.h" | 
| +#include "content/common/content_export.h" | 
| +#include "content/public/browser/browser_thread.h" | 
| +#include "ipc/ipc_message.h" | 
| + | 
| +class FilePath; | 
| + | 
| +namespace content { | 
| + | 
| +class UtilityProcessHostClient; | 
| + | 
| +// This class acts as the browser-side host to a utility child process.  A | 
| +// utility process is a short-lived process that is created to run a specific | 
| +// task.  This class lives solely on the IO thread. | 
| +// If you need a single method call in the process, use StartFooBar(p). | 
| +// If you need multiple batches of work to be done in the process, use | 
| +// StartBatchMode(), then multiple calls to StartFooBar(p), then finish with | 
| +// EndBatchMode(). | 
| +// | 
| +// Note: If your class keeps a ptr to an object of this type, grab a weak ptr to | 
| +// avoid a use after free since this object is deleted synchronously but the | 
| +// client notification is asynchronous.  See http://crbug.com/108871. | 
| +class UtilityProcessHost : public IPC::Message::Sender, | 
| +                           public base::SupportsWeakPtr<UtilityProcessHost> { | 
| + public: | 
| +  // Used to create a utility process. | 
| +  static CONTENT_EXPORT UtilityProcessHost* Create( | 
| +      UtilityProcessHostClient* client, | 
| +      BrowserThread::ID client_thread_id); | 
| + | 
| +  virtual ~UtilityProcessHost() {} | 
| + | 
| +  // Starts utility process in batch mode. Caller must call EndBatchMode() | 
| +  // to finish the utility process. | 
| +  virtual bool StartBatchMode() = 0; | 
| + | 
| +  // Ends the utility process. Must be called after StartBatchMode(). | 
| +  virtual void EndBatchMode() = 0; | 
| + | 
| +  // Allows a directory to be opened through the sandbox, in case it's needed by | 
| +  // the operation. | 
| +  virtual void SetExposedDir(const FilePath& dir) = 0; | 
| + | 
| +  // Make the process run without a sandbox. | 
| +  virtual void DisableSandbox() = 0; | 
| + | 
| +  // If the sandbox is being used and we are on Linux, launch the process from | 
| +  // the zygote. Can only be used for tasks that do not require FS access. | 
| +  virtual void EnableZygote() = 0; | 
| + | 
| +#if defined(OS_POSIX) | 
| +  virtual void SetEnv(const base::environment_vector& env) = 0; | 
| +#endif | 
| +}; | 
| + | 
| +};  // namespace content | 
| + | 
| +#endif  // CONTENT_PUBLIC_BROWSER_UTILITY_PROCESS_HOST_H_ | 
|  | 
| Property changes on: content\public\browser\utility_process_host.h | 
| ___________________________________________________________________ | 
| Added: svn:eol-style | 
| + LF | 
|  | 
|  |