aw_browser_main_parts.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt// Copyright (c) 2012 The Chromium Authors. All rights reserved.
28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt// Use of this source code is governed by a BSD-style license that can be
38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt// found in the LICENSE file.
48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt#ifndef ANDROID_WEBVIEW_BROWSER_AW_BROWSER_MAIN_PARTS_H_
6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt#define ANDROID_WEBVIEW_BROWSER_AW_BROWSER_MAIN_PARTS_H_
78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "base/compiler_specific.h"
98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "base/memory/scoped_ptr.h"
108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "content/public/browser/browser_main_parts.h"
118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtnamespace base {
138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtclass MessageLoop;
148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}
158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
16cf32e60fa7e0d33fe1551a6dba8dcbbec47ea50eDmitry Shmidtnamespace android_webview {
178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt// TODO(joth): Remove this method when when http://crbug.com/161864 is closed.
198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtbool UseCompositorDirectDraw();
208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtclass AwBrowserContext;
228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtclass AwDevToolsDelegate;
238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtclass AwBrowserMainParts : public content::BrowserMainParts {
258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt public:
268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt  explicit AwBrowserMainParts(AwBrowserContext* browser_context);
278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt  virtual ~AwBrowserMainParts();
288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt  // Overriding methods from content::BrowserMainParts.
308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt  virtual void PreEarlyInitialization() OVERRIDE;
318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt  virtual int PreCreateThreads() OVERRIDE;
328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt  virtual void PreMainMessageLoopRun() OVERRIDE;
338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt  virtual bool MainMessageLoopRun(int* result_code) OVERRIDE;
348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt  virtual void PostMainMessageLoopRun() OVERRIDE;
358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt private:
378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt  // Android specific UI MessageLoop.
388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt  scoped_ptr<base::MessageLoop> main_message_loop_;
398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt  AwBrowserContext* browser_context_;  // weak
4104949598a23f501be6eec21697465fd46a28840aDmitry Shmidt  AwDevToolsDelegate* devtools_delegate_;
428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt  DISALLOW_COPY_AND_ASSIGN(AwBrowserMainParts);
448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt};
458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
468d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}  // namespace android_webview
478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif  // ANDROID_WEBVIEW_BROWSER_AW_BROWSER_MAIN_PARTS_H_
498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt