Home | History | Annotate | Download | only in common
      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
      3 // found in the LICENSE file.
      4 
      5 #ifndef CONTENT_PUBLIC_COMMON_CHILD_PROCESS_HOST_DELEGATE_H_
      6 #define CONTENT_PUBLIC_COMMON_CHILD_PROCESS_HOST_DELEGATE_H_
      7 
      8 #include <string>
      9 
     10 #include "content/common/content_export.h"
     11 #include "ipc/ipc_listener.h"
     12 
     13 namespace content {
     14 
     15 // Interface that all users of ChildProcessHost need to provide.
     16 class ChildProcessHostDelegate : public IPC::Listener {
     17  public:
     18   virtual ~ChildProcessHostDelegate() {}
     19 
     20   // Delegates return true if it's ok to shut down the child process (which is
     21   // the default return value). The exception is if the host is in the middle of
     22   // sending a request to the process, in which case the other side might think
     23   // it's ok to shutdown, when really it's not.
     24   CONTENT_EXPORT virtual bool CanShutdown();
     25 
     26   // Called when the child process unexpected closes the IPC channel. Delegates
     27   // would normally delete the object in this case.
     28   virtual void OnChildDisconnected() {}
     29 };
     30 
     31 };  // namespace content
     32 
     33 #endif  // CONTENT_PUBLIC_COMMON_CHILD_PROCESS_HOST_DELEGATE_H_
     34