text: // 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 file.
  
  #ifndef ANDROID_WEBVIEW_BROWSER_AW_BROWSER_MAIN_PARTS_H_
  #define ANDROID_WEBVIEW_BROWSER_AW_BROWSER_MAIN_PARTS_H_
  
  #include <memory>
  
  #include "base/compiler_specific.h"
  #include "base/macros.h"
  #include "content/public/browser/browser_main_parts.h"
  
  namespace base {
  class MessageLoop;
  }
  
  namespace android_webview {
  
  class AwBrowserContext;
  
  class AwBrowserMainParts : public content::BrowserMainParts {
   public:
    explicit AwBrowserMainParts(AwBrowserContext* browser_context);
    ~AwBrowserMainParts() override;
  
    // Overriding methods from content::BrowserMainParts.
    void PreEarlyInitialization() override;
    int PreCreateThreads() override;
    void PreMainMessageLoopRun() override;
    bool MainMessageLoopRun(int* result_code) override;
  
   private:
    // Android specific UI MessageLoop.
    std::unique_ptr<base::MessageLoop> main_message_loop_;
  
    AwBrowserContext* browser_context_;  // weak
  
    DISALLOW_COPY_AND_ASSIGN(AwBrowserMainParts);
  };
  
  }  // namespace android_webview
  
  #endif  // ANDROID_WEBVIEW_BROWSER_AW_BROWSER_MAIN_PARTS_H_
  