[email protected] | 612d3bf | 2013-05-22 10:10:46 | [diff] [blame] | 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_MAC_H_ | ||||
6 | #define CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_MAC_H_ | ||||
7 | |||||
dcheng | 4af4858 | 2016-04-19 00:29:35 | [diff] [blame] | 8 | #include <memory> |
9 | |||||
Christopher Cameron | 4d18d1a | 2019-08-27 18:01:53 | [diff] [blame] | 10 | #include "chrome/browser/apps/app_shim/app_shim_listener.h" |
[email protected] | 612d3bf | 2013-05-22 10:10:46 | [diff] [blame] | 11 | #include "chrome/browser/browser_process_platform_part_base.h" |
Charlie Harrison | 325846b | 2021-07-14 13:57:41 | [diff] [blame] | 12 | #include "chrome/browser/mac/key_window_notifier.h" |
[email protected] | 612d3bf | 2013-05-22 10:10:46 | [diff] [blame] | 13 | |
Christopher Cameron | 7b6e435 | 2020-03-17 16:59:40 | [diff] [blame] | 14 | namespace apps { |
15 | class AppShimManager; | ||||
16 | } // namespace apps | ||||
17 | |||||
James Hollyer | 63eb7e0f | 2021-02-24 03:02:40 | [diff] [blame] | 18 | namespace device { |
James Hollyer | 066512f | 2021-04-16 23:56:07 | [diff] [blame] | 19 | class GeolocationManager; |
James Hollyer | 63eb7e0f | 2021-02-24 03:02:40 | [diff] [blame] | 20 | } // namespace device |
21 | |||||
[email protected] | 612d3bf | 2013-05-22 10:10:46 | [diff] [blame] | 22 | class BrowserProcessPlatformPart : public BrowserProcessPlatformPartBase { |
23 | public: | ||||
24 | BrowserProcessPlatformPart(); | ||||
Peter Boström | 53c6c595 | 2021-09-17 09:41:26 | [diff] [blame] | 25 | |
26 | BrowserProcessPlatformPart(const BrowserProcessPlatformPart&) = delete; | ||||
27 | BrowserProcessPlatformPart& operator=(const BrowserProcessPlatformPart&) = | ||||
28 | delete; | ||||
29 | |||||
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 30 | ~BrowserProcessPlatformPart() override; |
[email protected] | 612d3bf | 2013-05-22 10:10:46 | [diff] [blame] | 31 | |
32 | // Overridden from BrowserProcessPlatformPartBase: | ||||
Christopher Cameron | 3257ebf | 2020-10-19 19:55:52 | [diff] [blame] | 33 | void BeginStartTearDown() override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 34 | void StartTearDown() override; |
Avi Drissman | f19bb47 | 2018-11-29 19:51:28 | [diff] [blame] | 35 | void AttemptExit(bool try_to_quit_application) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 36 | void PreMainMessageLoopRun() override; |
[email protected] | 90a4b9d | 2013-07-31 12:14:40 | [diff] [blame] | 37 | |
Christopher Cameron | 4d18d1a | 2019-08-27 18:01:53 | [diff] [blame] | 38 | AppShimListener* app_shim_listener(); |
Christopher Cameron | 7b6e435 | 2020-03-17 16:59:40 | [diff] [blame] | 39 | apps::AppShimManager* app_shim_manager(); |
James Hollyer | 066512f | 2021-04-16 23:56:07 | [diff] [blame] | 40 | device::GeolocationManager* geolocation_manager(); |
James Hollyer | d8c9d05b | 2020-08-20 08:18:28 | [diff] [blame] | 41 | |
Charlie Harrison | 325846b | 2021-07-14 13:57:41 | [diff] [blame] | 42 | KeyWindowNotifier& key_window_notifier() { return key_window_notifier_; } |
43 | |||||
James Hollyer | 82b022e | 2021-03-29 22:10:22 | [diff] [blame] | 44 | void SetGeolocationManagerForTesting( |
James Hollyer | 066512f | 2021-04-16 23:56:07 | [diff] [blame] | 45 | std::unique_ptr<device::GeolocationManager> fake_geolocation_manager); |
James Hollyer | 82b022e | 2021-03-29 22:10:22 | [diff] [blame] | 46 | |
James Hollyer | d8c9d05b | 2020-08-20 08:18:28 | [diff] [blame] | 47 | protected: |
James Hollyer | 066512f | 2021-04-16 23:56:07 | [diff] [blame] | 48 | std::unique_ptr<device::GeolocationManager> geolocation_manager_; |
[email protected] | 612d3bf | 2013-05-22 10:10:46 | [diff] [blame] | 49 | |
50 | private: | ||||
Christopher Cameron | 7b6e435 | 2020-03-17 16:59:40 | [diff] [blame] | 51 | std::unique_ptr<apps::AppShimManager> app_shim_manager_; |
52 | |||||
[email protected] | 90a4b9d | 2013-07-31 12:14:40 | [diff] [blame] | 53 | // Hosts the IPC channel factory that App Shims connect to on Mac. |
Christopher Cameron | 4d18d1a | 2019-08-27 18:01:53 | [diff] [blame] | 54 | scoped_refptr<AppShimListener> app_shim_listener_; |
[email protected] | 90a4b9d | 2013-07-31 12:14:40 | [diff] [blame] | 55 | |
Charlie Harrison | 325846b | 2021-07-14 13:57:41 | [diff] [blame] | 56 | KeyWindowNotifier key_window_notifier_; |
[email protected] | 612d3bf | 2013-05-22 10:10:46 | [diff] [blame] | 57 | }; |
58 | |||||
59 | #endif // CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_MAC_H_ |