[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 | |||||
[email protected] | 612d3bf | 2013-05-22 10:10:46 | [diff] [blame] | 10 | #include "base/compiler_specific.h" |
avi | e4d7b6f | 2015-12-26 00:59:18 | [diff] [blame] | 11 | #include "base/macros.h" |
Christopher Cameron | 4d18d1a | 2019-08-27 18:01:53 | [diff] [blame] | 12 | #include "chrome/browser/apps/app_shim/app_shim_listener.h" |
[email protected] | 612d3bf | 2013-05-22 10:10:46 | [diff] [blame] | 13 | #include "chrome/browser/browser_process_platform_part_base.h" |
[email protected] | 612d3bf | 2013-05-22 10:10:46 | [diff] [blame] | 14 | |
Christopher Cameron | 7b6e435 | 2020-03-17 16:59:40 | [diff] [blame] | 15 | namespace apps { |
16 | class AppShimManager; | ||||
17 | } // namespace apps | ||||
18 | |||||
James Hollyer | 63eb7e0f | 2021-02-24 03:02:40 | [diff] [blame] | 19 | namespace device { |
20 | class GeolocationSystemPermissionManager; | ||||
21 | } // namespace device | ||||
22 | |||||
[email protected] | 612d3bf | 2013-05-22 10:10:46 | [diff] [blame] | 23 | class BrowserProcessPlatformPart : public BrowserProcessPlatformPartBase { |
24 | public: | ||||
25 | BrowserProcessPlatformPart(); | ||||
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 26 | ~BrowserProcessPlatformPart() override; |
[email protected] | 612d3bf | 2013-05-22 10:10:46 | [diff] [blame] | 27 | |
28 | // Overridden from BrowserProcessPlatformPartBase: | ||||
Christopher Cameron | 3257ebf | 2020-10-19 19:55:52 | [diff] [blame] | 29 | void BeginStartTearDown() override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 30 | void StartTearDown() override; |
Avi Drissman | f19bb47 | 2018-11-29 19:51:28 | [diff] [blame] | 31 | void AttemptExit(bool try_to_quit_application) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 32 | void PreMainMessageLoopRun() override; |
[email protected] | 90a4b9d | 2013-07-31 12:14:40 | [diff] [blame] | 33 | |
Christopher Cameron | 4d18d1a | 2019-08-27 18:01:53 | [diff] [blame] | 34 | AppShimListener* app_shim_listener(); |
Christopher Cameron | 7b6e435 | 2020-03-17 16:59:40 | [diff] [blame] | 35 | apps::AppShimManager* app_shim_manager(); |
James Hollyer | 63eb7e0f | 2021-02-24 03:02:40 | [diff] [blame] | 36 | device::GeolocationSystemPermissionManager* location_permission_manager(); |
James Hollyer | d8c9d05b | 2020-08-20 08:18:28 | [diff] [blame] | 37 | |
James Hollyer | 82b022e | 2021-03-29 22:10:22 | [diff] [blame^] | 38 | void SetGeolocationManagerForTesting( |
39 | std::unique_ptr<device::GeolocationSystemPermissionManager> | ||||
40 | fake_location_manager); | ||||
41 | |||||
James Hollyer | d8c9d05b | 2020-08-20 08:18:28 | [diff] [blame] | 42 | protected: |
James Hollyer | 63eb7e0f | 2021-02-24 03:02:40 | [diff] [blame] | 43 | std::unique_ptr<device::GeolocationSystemPermissionManager> |
James Hollyer | d8c9d05b | 2020-08-20 08:18:28 | [diff] [blame] | 44 | location_permission_manager_; |
[email protected] | 612d3bf | 2013-05-22 10:10:46 | [diff] [blame] | 45 | |
46 | private: | ||||
Christopher Cameron | 7b6e435 | 2020-03-17 16:59:40 | [diff] [blame] | 47 | std::unique_ptr<apps::AppShimManager> app_shim_manager_; |
48 | |||||
[email protected] | 90a4b9d | 2013-07-31 12:14:40 | [diff] [blame] | 49 | // Hosts the IPC channel factory that App Shims connect to on Mac. |
Christopher Cameron | 4d18d1a | 2019-08-27 18:01:53 | [diff] [blame] | 50 | scoped_refptr<AppShimListener> app_shim_listener_; |
[email protected] | 90a4b9d | 2013-07-31 12:14:40 | [diff] [blame] | 51 | |
[email protected] | 612d3bf | 2013-05-22 10:10:46 | [diff] [blame] | 52 | DISALLOW_COPY_AND_ASSIGN(BrowserProcessPlatformPart); |
53 | }; | ||||
54 | |||||
55 | #endif // CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_MAC_H_ |