15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#ifndef ANDROID_WEBVIEW_BROWSER_AW_BROWSER_MAIN_PARTS_H_
65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#define ANDROID_WEBVIEW_BROWSER_AW_BROWSER_MAIN_PARTS_H_
75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
8c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "base/compiler_specific.h"
9c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "base/memory/scoped_ptr.h"
10c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "content/public/browser/browser_main_parts.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace base {
135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class MessageLoop;
145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace android_webview {
175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AwBrowserContext;
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AwBrowserMainParts : public content::BrowserMainParts {
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  explicit AwBrowserMainParts(AwBrowserContext* browser_context);
235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual ~AwBrowserMainParts();
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Overriding methods from content::BrowserMainParts.
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void PreEarlyInitialization() OVERRIDE;
275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual int PreCreateThreads() OVERRIDE;
285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual void PreMainMessageLoopRun() OVERRIDE;
295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual bool MainMessageLoopRun(int* result_code) OVERRIDE;
305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) private:
325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  // Android specific UI MessageLoop.
335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  scoped_ptr<base::MessageLoop> main_message_loop_;
345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  AwBrowserContext* browser_context_;  // weak
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(AwBrowserMainParts);
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
40eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}  // namespace android_webview
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  // ANDROID_WEBVIEW_BROWSER_AW_BROWSER_MAIN_PARTS_H_
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)