Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / browser_process_platform_part_aurawin.h
1 // Copyright (c) 2013 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 CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_AURAWIN_H_
6 #define CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_AURAWIN_H_
7
8 #include "base/compiler_specific.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "chrome/browser/browser_process_platform_part_base.h"
11 #include "content/public/browser/notification_observer.h"
12 #include "content/public/browser/notification_registrar.h"
13
14 class ChromeMetroViewerProcessHost;
15
16 class BrowserProcessPlatformPart : public BrowserProcessPlatformPartBase,
17                                    public content::NotificationObserver {
18  public:
19   BrowserProcessPlatformPart();
20   virtual ~BrowserProcessPlatformPart();
21
22   // Invoked when the ASH metro viewer process on Windows 8 exits.
23   void OnMetroViewerProcessTerminated();
24
25   // Overridden from BrowserProcessPlatformPartBase:
26   virtual void PlatformSpecificCommandLineProcessing(
27       const base::CommandLine& command_line) override;
28
29   // content::NotificationObserver method:
30   virtual void Observe(int type,
31                        const content::NotificationSource& source,
32                        const content::NotificationDetails& details) override;
33
34  private:
35   // Hosts the channel for the Windows 8 metro viewer process which runs in
36   // the ASH environment.
37   scoped_ptr<ChromeMetroViewerProcessHost> metro_viewer_process_host_;
38
39   content::NotificationRegistrar registrar_;
40
41   DISALLOW_COPY_AND_ASSIGN(BrowserProcessPlatformPart);
42 };
43
44 #endif  // CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_AURAWIN_H_