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

Unified Diff: chrome/browser/browser_child_process_host.h

Issue 6538100: Move core pieces of chrome\browser. I've only gone up to "g", will do the re... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: take out extra stuff from content_browser.gypi Created 9 years, 10 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
« no previous file with comments | « no previous file | chrome/browser/browser_child_process_host.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/browser_child_process_host.h
===================================================================
--- chrome/browser/browser_child_process_host.h (revision 75626)
+++ chrome/browser/browser_child_process_host.h (working copy)
@@ -6,138 +6,7 @@
#define CHROME_BROWSER_BROWSER_CHILD_PROCESS_HOST_H_
#pragma once
-#include <list>
+// TODO(jam): remove this file when all files have been converted.
+#include "content/browser/browser_child_process_host.h"
-#include "chrome/browser/child_process_launcher.h"
-#include "chrome/browser/renderer_host/resource_message_filter.h"
-#include "chrome/common/child_process_host.h"
-#include "chrome/common/child_process_info.h"
-
-class ResourceDispatcherHost;
-
-// Plugins/workers and other child processes that live on the IO thread should
-// derive from this class.
-//
-// [Browser]RenderProcessHost is the main exception that doesn't derive from
-// this class. That project lives on the UI thread.
-class BrowserChildProcessHost : public ChildProcessHost,
- public ChildProcessInfo,
- public ChildProcessLauncher::Client {
- public:
- virtual ~BrowserChildProcessHost();
-
- // Prepares command_line for crash reporting as appropriate. On Linux and
- // Mac, a command-line flag to enable crash reporting in the child process
- // will be appended if needed, because the child process may not have access
- // to the data that determines the status of crash reporting in the
- // currently-executing process. This function is a no-op on Windows.
- static void SetCrashReporterCommandLine(CommandLine* command_line);
-
- // Terminates all child processes and deletes each ChildProcessHost instance.
- static void TerminateAll();
-
- // The Iterator class allows iteration through either all child processes, or
- // ones of a specific type, depending on which constructor is used. Note that
- // this should be done from the IO thread and that the iterator should not be
- // kept around as it may be invalidated on subsequent event processing in the
- // event loop.
- class Iterator {
- public:
- Iterator();
- explicit Iterator(ChildProcessInfo::ProcessType type);
- BrowserChildProcessHost* operator->() { return *iterator_; }
- BrowserChildProcessHost* operator*() { return *iterator_; }
- BrowserChildProcessHost* operator++();
- bool Done();
-
- private:
- bool all_;
- ChildProcessInfo::ProcessType type_;
- std::list<BrowserChildProcessHost*>::iterator iterator_;
- };
-
- protected:
- // |resource_dispatcher_host| may be NULL to indicate none is needed for
- // this process type.
- // |url_request_context_getter| allows derived classes to override the
- // net::URLRequestContext.
- BrowserChildProcessHost(
- ChildProcessInfo::ProcessType type,
- ResourceDispatcherHost* resource_dispatcher_host,
- ResourceMessageFilter::URLRequestContextOverride*
- url_request_context_override);
-
- // A convenient constructor for those classes that want to use the default
- // net::URLRequestContext.
- BrowserChildProcessHost(
- ChildProcessInfo::ProcessType type,
- ResourceDispatcherHost* resource_dispatcher_host);
-
- // Derived classes call this to launch the child process asynchronously.
- void Launch(
-#if defined(OS_WIN)
- const FilePath& exposed_dir,
-#elif defined(OS_POSIX)
- bool use_zygote,
- const base::environment_vector& environ,
-#endif
- CommandLine* cmd_line);
-
- // Returns the handle of the child process. This can be called only after
- // OnProcessLaunched is called or it will be invalid and may crash.
- base::ProcessHandle GetChildProcessHandle() const;
-
- // ChildProcessLauncher::Client implementation.
- virtual void OnProcessLaunched() {}
-
- // Derived classes can override this to know if the process crashed.
- // |exit_code| is the status returned when the process crashed (for
- // posix, as returned from waitpid(), for Windows, as returned from
- // GetExitCodeProcess()).
- virtual void OnProcessCrashed(int exit_code) {}
-
- // Derived classes can override this to know if the process was
- // killed. |exit_code| is the status returned when the process
- // was killed (for posix, as returned from waitpid(), for Windows,
- // as returned from GetExitCodeProcess()).
- virtual void OnProcessWasKilled(int exit_code) {}
-
- // Returns the termination status of a child. |exit_code| is the
- // status returned when the process exited (for posix, as returned
- // from waitpid(), for Windows, as returned from
- // GetExitCodeProcess()). |exit_code| may be NULL.
- virtual base::TerminationStatus GetChildTerminationStatus(int* exit_code);
-
- // Overrides from ChildProcessHost
- virtual void OnChildDied();
- virtual void ShutdownStarted();
- virtual void Notify(NotificationType type);
- // Extends the base class implementation and removes this host from
- // the host list. Calls ChildProcessHost::ForceShutdown
- virtual void ForceShutdown();
-
- ResourceDispatcherHost* resource_dispatcher_host() {
- return resource_dispatcher_host_;
- }
-
- private:
- void Initialize(ResourceMessageFilter::URLRequestContextOverride*
- url_request_context_override);
-
- // By using an internal class as the ChildProcessLauncher::Client, we can
- // intercept OnProcessLaunched and do our own processing before
- // calling the subclass' implementation.
- class ClientHook : public ChildProcessLauncher::Client {
- public:
- explicit ClientHook(BrowserChildProcessHost* host);
- virtual void OnProcessLaunched();
- private:
- BrowserChildProcessHost* host_;
- };
- ClientHook client_;
- // May be NULL if this current process has no resource dispatcher host.
- ResourceDispatcherHost* resource_dispatcher_host_;
- scoped_ptr<ChildProcessLauncher> child_process_;
-};
-
#endif // CHROME_BROWSER_BROWSER_CHILD_PROCESS_HOST_H_
« no previous file with comments | « no previous file | chrome/browser/browser_child_process_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698