Home | History | Annotate | Download | only in browser
      1 // Copyright 2014 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 CHROMECAST_SHELL_BROWSER_CAST_BROWSER_MAIN_PARTS_H_
      6 #define CHROMECAST_SHELL_BROWSER_CAST_BROWSER_MAIN_PARTS_H_
      7 
      8 #include "base/macros.h"
      9 #include "base/memory/ref_counted.h"
     10 #include "base/memory/scoped_ptr.h"
     11 #include "content/public/browser/browser_main_parts.h"
     12 #include "content/public/common/main_function_params.h"
     13 
     14 namespace chromecast {
     15 namespace shell {
     16 class CastBrowserProcess;
     17 class URLRequestContextFactory;
     18 
     19 class CastBrowserMainParts : public content::BrowserMainParts {
     20  public:
     21   CastBrowserMainParts(
     22       const content::MainFunctionParams& parameters,
     23       URLRequestContextFactory* url_request_context_factory);
     24   virtual ~CastBrowserMainParts();
     25 
     26   // content::BrowserMainParts implementation:
     27   virtual void PreMainMessageLoopStart() OVERRIDE;
     28   virtual void PostMainMessageLoopStart() OVERRIDE;
     29   virtual int PreCreateThreads() OVERRIDE;
     30   virtual void PreMainMessageLoopRun() OVERRIDE;
     31   virtual bool MainMessageLoopRun(int* result_code) OVERRIDE;
     32   virtual void PostMainMessageLoopRun() OVERRIDE;
     33 
     34  private:
     35   scoped_ptr<CastBrowserProcess> cast_browser_process_;
     36   const content::MainFunctionParams parameters_;  // For running browser tests.
     37   URLRequestContextFactory* const url_request_context_factory_;
     38 
     39   DISALLOW_COPY_AND_ASSIGN(CastBrowserMainParts);
     40 };
     41 
     42 }  // namespace shell
     43 }  // namespace chromecast
     44 
     45 #endif  // CHROMECAST_SHELL_BROWSER_CAST_BROWSER_MAIN_PARTS_H_
     46