1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef CHROMECAST_SHELL_BROWSER_CAST_BROWSER_MAIN_PARTS_H_ 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define CHROMECAST_SHELL_BROWSER_CAST_BROWSER_MAIN_PARTS_H_ 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/macros.h" 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/memory/ref_counted.h" 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/memory/scoped_ptr.h" 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "content/public/browser/browser_main_parts.h" 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "content/public/common/main_function_params.h" 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace chromecast { 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace shell { 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass CastBrowserProcess; 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass URLRequestContextFactory; 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass CastBrowserMainParts : public content::BrowserMainParts { 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public: 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch CastBrowserMainParts( 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const content::MainFunctionParams& parameters, 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch URLRequestContextFactory* url_request_context_factory); 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual ~CastBrowserMainParts(); 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // content::BrowserMainParts implementation: 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void PreMainMessageLoopStart() OVERRIDE; 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void PostMainMessageLoopStart() OVERRIDE; 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual int PreCreateThreads() OVERRIDE; 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void PreMainMessageLoopRun() OVERRIDE; 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual bool MainMessageLoopRun(int* result_code) OVERRIDE; 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void PostMainMessageLoopRun() OVERRIDE; 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private: 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<CastBrowserProcess> cast_browser_process_; 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const content::MainFunctionParams parameters_; // For running browser tests. 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch URLRequestContextFactory* const url_request_context_factory_; 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DISALLOW_COPY_AND_ASSIGN(CastBrowserMainParts); 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace shell 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace chromecast 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif // CHROMECAST_SHELL_BROWSER_CAST_BROWSER_MAIN_PARTS_H_ 46