shell_main_delegate.h revision 03b57e008b61dfcb1fbad3aea950ae0e001748b0
1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Copyright 2014 The Chromium Authors. All rights reserved. 2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Use of this source code is governed by a BSD-style license that can be 3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// found in the LICENSE file. 4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef EXTENSIONS_SHELL_APP_SHELL_MAIN_DELEGATE_H_ 6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define EXTENSIONS_SHELL_APP_SHELL_MAIN_DELEGATE_H_ 7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include "base/compiler_specific.h" 9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include "base/memory/scoped_ptr.h" 10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include "content/public/app/content_main_delegate.h" 11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvernamespace content { 13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverclass BrowserContext; 14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverclass ContentBrowserClient; 15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverclass ContentClient; 16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverclass ContentRendererClient; 17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvernamespace extensions { 20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverclass ShellBrowserMainDelegate; 21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverclass ShellMainDelegate : public content::ContentMainDelegate { 23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver public: 24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver ShellMainDelegate(); 25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver virtual ~ShellMainDelegate(); 26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver // ContentMainDelegate implementation: 28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver virtual bool BasicStartupComplete(int* exit_code) OVERRIDE; 29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver virtual void PreSandboxStartup() OVERRIDE; 30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver virtual content::ContentBrowserClient* CreateContentBrowserClient() OVERRIDE; 31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver virtual content::ContentRendererClient* CreateContentRendererClient() 32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver OVERRIDE; 33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver virtual void ZygoteStarting( 34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver ScopedVector<content::ZygoteForkDelegate>* delegates) OVERRIDE; 35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver protected: 37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver // The created object is owned by this object. 38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver virtual content::ContentClient* CreateContentClient(); 39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver virtual content::ContentBrowserClient* CreateShellContentBrowserClient(); 40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver virtual content::ContentRendererClient* CreateShellContentRendererClient(); 41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver // Initializes the resource bundle and resources.pak. 43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver virtual void InitializeResourceBundle(); 44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver private: 46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver // |process_type| is zygote, renderer, utility, etc. Returns true if the 47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver // process needs data from resources.pak. 48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver static bool ProcessNeedsResourceBundle(const std::string& process_type); 49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver scoped_ptr<content::ContentClient> content_client_; 51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver scoped_ptr<content::ContentBrowserClient> browser_client_; 52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver scoped_ptr<content::ContentRendererClient> renderer_client_; 53324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 54324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver DISALLOW_COPY_AND_ASSIGN(ShellMainDelegate); 55324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}; 56324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 57324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} // namespace extensions 58324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 59324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif // EXTENSIONS_SHELL_APP_SHELL_MAIN_DELEGATE_H_ 60324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver