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_SHELL_SHELL_RENDER_PROCESS_OBSERVER_H_ 6 #define CONTENT_SHELL_SHELL_RENDER_PROCESS_OBSERVER_H_ 7 8 #include "base/basictypes.h" 9 #include "base/compiler_specific.h" 10 #include "base/files/file_path.h" 11 #include "base/memory/scoped_ptr.h" 12 #include "content/public/renderer/render_process_observer.h" 13 #include "ipc/ipc_platform_file.h" 14 15 namespace blink { 16 class WebFrame; 17 } 18 19 namespace content { 20 21 class RenderView; 22 class WebKitTestRunner; 23 class WebTestDelegate; 24 class WebTestInterfaces; 25 26 class ShellRenderProcessObserver : public RenderProcessObserver { 27 public: 28 static ShellRenderProcessObserver* GetInstance(); 29 30 ShellRenderProcessObserver(); 31 virtual ~ShellRenderProcessObserver(); 32 33 void SetTestDelegate(WebTestDelegate* delegate); 34 void SetMainWindow(RenderView* view); 35 36 // RenderProcessObserver implementation. 37 virtual void WebKitInitialized() OVERRIDE; 38 virtual void OnRenderProcessShutdown() OVERRIDE; 39 virtual bool OnControlMessageReceived(const IPC::Message& message) OVERRIDE; 40 41 WebTestDelegate* test_delegate() const { 42 return test_delegate_; 43 } 44 WebTestInterfaces* test_interfaces() const { 45 return test_interfaces_.get(); 46 } 47 WebKitTestRunner* main_test_runner() const { return main_test_runner_; } 48 const base::FilePath& webkit_source_dir() const { return webkit_source_dir_; } 49 50 private: 51 // Message handlers. 52 void OnResetAll(); 53 void OnSetWebKitSourceDir(const base::FilePath& webkit_source_dir); 54 55 WebKitTestRunner* main_test_runner_; 56 WebTestDelegate* test_delegate_; 57 scoped_ptr<WebTestInterfaces> test_interfaces_; 58 59 base::FilePath webkit_source_dir_; 60 61 DISALLOW_COPY_AND_ASSIGN(ShellRenderProcessObserver); 62 }; 63 64 } // namespace content 65 66 #endif // CONTENT_SHELL_SHELL_RENDER_PROCESS_OBSERVER_H_ 67