Home | History | Annotate | Download | only in views_content_client
      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 UI_VIEWS_CONTENT_CLIENT_VIEWS_CONTENT_CLIENT_MAIN_PARTS_H_
      6 #define UI_VIEWS_CONTENT_CLIENT_VIEWS_CONTENT_CLIENT_MAIN_PARTS_H_
      7 
      8 #include "base/macros.h"
      9 #include "base/memory/scoped_ptr.h"
     10 #include "content/public/browser/browser_main_parts.h"
     11 
     12 namespace content {
     13 class ShellBrowserContext;
     14 struct MainFunctionParams;
     15 }
     16 
     17 namespace views {
     18 class ViewsDelegate;
     19 }
     20 
     21 namespace ui {
     22 
     23 class ViewsContentClient;
     24 
     25 class ViewsContentClientMainParts : public content::BrowserMainParts {
     26  public:
     27   // Platform-specific create function.
     28   static ViewsContentClientMainParts* Create(
     29       const content::MainFunctionParams& content_params,
     30       ViewsContentClient* views_content_client);
     31 
     32   virtual ~ViewsContentClientMainParts();
     33 
     34   // content::BrowserMainParts:
     35   virtual void PreMainMessageLoopRun() OVERRIDE;
     36   virtual bool MainMessageLoopRun(int* result_code) OVERRIDE;
     37   virtual void PostMainMessageLoopRun() OVERRIDE;
     38 
     39   content::ShellBrowserContext* browser_context() {
     40     return browser_context_.get();
     41   }
     42 
     43   ViewsContentClient* views_content_client() {
     44     return views_content_client_;
     45   }
     46 
     47  protected:
     48   ViewsContentClientMainParts(
     49       const content::MainFunctionParams& content_params,
     50       ViewsContentClient* views_content_client);
     51 
     52  private:
     53   scoped_ptr<content::ShellBrowserContext> browser_context_;
     54 
     55   scoped_ptr<views::ViewsDelegate> views_delegate_;
     56 
     57   ViewsContentClient* views_content_client_;
     58 
     59   DISALLOW_COPY_AND_ASSIGN(ViewsContentClientMainParts);
     60 };
     61 
     62 }  // namespace ui
     63 
     64 #endif  // UI_VIEWS_CONTENT_CLIENT_VIEWS_CONTENT_CLIENT_MAIN_PARTS_H_
     65