// 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-CHROMIUM file. #ifndef BRIGHTRAY_COMMON_MAIN_DELEGATE_H_ #define BRIGHTRAY_COMMON_MAIN_DELEGATE_H_ #include #include #include "base/macros.h" #include "content/public/app/content_main_delegate.h" namespace base { class FilePath; } namespace ui { class ResourceBundle; } namespace brightray { class BrowserClient; class ContentClient; void InitializeResourceBundle(const std::string& locale); void LoadCommonResources(); class MainDelegate : public content::ContentMainDelegate { public: MainDelegate(); ~MainDelegate(); protected: // Subclasses can override this to provide their own ContentClient // implementation. virtual std::unique_ptr CreateContentClient(); // Subclasses can override this to provide their own BrowserClient // implementation. virtual std::unique_ptr CreateBrowserClient(); #if defined(OS_MACOSX) // Subclasses can override this to custom the paths of child process and // framework bundle. virtual void OverrideChildProcessPath(); virtual void OverrideFrameworkBundlePath(); #endif bool BasicStartupComplete(int* exit_code) override; void PreSandboxStartup() override; private: content::ContentBrowserClient* CreateContentBrowserClient() override; std::unique_ptr content_client_; std::unique_ptr browser_client_; DISALLOW_COPY_AND_ASSIGN(MainDelegate); }; } // namespace brightray #endif // BRIGHTRAY_COMMON_MAIN_DELEGATE_H_