blob: 28650a8ced1497ce8d99e9e282701d15cb375e17 [file] [log] [blame]
[email protected]612d3bf2013-05-22 10:10:461// 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
dcheng4af48582016-04-19 00:29:358#include <memory>
9
[email protected]612d3bf2013-05-22 10:10:4610#include "base/compiler_specific.h"
avie4d7b6f2015-12-26 00:59:1811#include "base/macros.h"
Christopher Cameron4d18d1a2019-08-27 18:01:5312#include "chrome/browser/apps/app_shim/app_shim_listener.h"
[email protected]612d3bf2013-05-22 10:10:4613#include "chrome/browser/browser_process_platform_part_base.h"
[email protected]612d3bf2013-05-22 10:10:4614
Christopher Cameron7b6e4352020-03-17 16:59:4015namespace apps {
16class AppShimManager;
17} // namespace apps
18
James Hollyer63eb7e0f2021-02-24 03:02:4019namespace device {
20class GeolocationSystemPermissionManager;
21} // namespace device
22
[email protected]612d3bf2013-05-22 10:10:4623class BrowserProcessPlatformPart : public BrowserProcessPlatformPartBase {
24 public:
25 BrowserProcessPlatformPart();
Daniel Chenga542fca2014-10-21 09:51:2926 ~BrowserProcessPlatformPart() override;
[email protected]612d3bf2013-05-22 10:10:4627
28 // Overridden from BrowserProcessPlatformPartBase:
Christopher Cameron3257ebf2020-10-19 19:55:5229 void BeginStartTearDown() override;
Daniel Chenga542fca2014-10-21 09:51:2930 void StartTearDown() override;
Avi Drissmanf19bb472018-11-29 19:51:2831 void AttemptExit(bool try_to_quit_application) override;
Daniel Chenga542fca2014-10-21 09:51:2932 void PreMainMessageLoopRun() override;
[email protected]90a4b9d2013-07-31 12:14:4033
Christopher Cameron4d18d1a2019-08-27 18:01:5334 AppShimListener* app_shim_listener();
Christopher Cameron7b6e4352020-03-17 16:59:4035 apps::AppShimManager* app_shim_manager();
James Hollyer63eb7e0f2021-02-24 03:02:4036 device::GeolocationSystemPermissionManager* location_permission_manager();
James Hollyerd8c9d05b2020-08-20 08:18:2837
James Hollyer82b022e2021-03-29 22:10:2238 void SetGeolocationManagerForTesting(
39 std::unique_ptr<device::GeolocationSystemPermissionManager>
40 fake_location_manager);
41
James Hollyerd8c9d05b2020-08-20 08:18:2842 protected:
James Hollyer63eb7e0f2021-02-24 03:02:4043 std::unique_ptr<device::GeolocationSystemPermissionManager>
James Hollyerd8c9d05b2020-08-20 08:18:2844 location_permission_manager_;
[email protected]612d3bf2013-05-22 10:10:4645
46 private:
Christopher Cameron7b6e4352020-03-17 16:59:4047 std::unique_ptr<apps::AppShimManager> app_shim_manager_;
48
[email protected]90a4b9d2013-07-31 12:14:4049 // Hosts the IPC channel factory that App Shims connect to on Mac.
Christopher Cameron4d18d1a2019-08-27 18:01:5350 scoped_refptr<AppShimListener> app_shim_listener_;
[email protected]90a4b9d2013-07-31 12:14:4051
[email protected]612d3bf2013-05-22 10:10:4652 DISALLOW_COPY_AND_ASSIGN(BrowserProcessPlatformPart);
53};
54
55#endif // CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_MAC_H_