be44a2c5b7
* chore: bump chromium in DEPS to 120.0.6049.0 * chore: update patches * chore: bump chromium in DEPS to 120.0.6050.0 * chore: update patches * 4910494: Reland "[autopip] Show autopip UI for video pip" https://chromium-review.googlesource.com/c/chromium/src/+/4910494 * 4812338: Move partition_alloc into a "partition_alloc" dir. https://chromium-review.googlesource.com/c/chromium/src/+/4812338 * [Extensions Cleanup] Remove mojom ViewType::kExtensionDialog https://chromium-review.googlesource.com/c/chromium/src/+/4909897 * 4894923: Force enable raw_ptrs pointer arithmetic check. https://chromium-review.googlesource.com/c/chromium/src/+/4894923 * gin: Prevent wrappables from being constructed from author code. https://chromium-review.googlesource.com/c/chromium/src/+/4905829 * chore: update patches * chore: bump chromium in DEPS to 120.0.6052.0 * chore: bump chromium in DEPS to 120.0.6054.0 * chore: bump chromium in DEPS to 120.0.6056.0 * chore: fix patches * 4918545: Reland "[autopip] Add permissions embargo" https://chromium-review.googlesource.com/c/chromium/src/+/4918545 * 4881761: UI bindings for visual logging with structured metrics. https://chromium-review.googlesource.com/c/chromium/src/+/4881761 * chore: bump chromium in DEPS to 120.0.6058.0 * chore: update patches * chore: bump chromium in DEPS to 120.0.6060.0 * chore: bump chromium in DEPS to 120.0.6061.0 * chore: bump chromium in DEPS to 120.0.6062.0 * chore: gen libc++ filenames * chore: update patches * 4911894: Move //c/b/ui/views/eye_dropper to //components https://chromium-review.googlesource.com/c/chromium/src/+/4911894 * chore: bump chromium in DEPS to 120.0.6064.0 * chore: bump chromium in DEPS to 120.0.6066.0 * chore: bump chromium in DEPS to 120.0.6068.0 * chore: bump chromium in DEPS to 120.0.6070.0 * chore: remove temp_prevent_unused_function_error.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4931270 * chore: add TransferDragSecurityInfo() Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4928028 * mark TransferDragSecurityInfo() as NOTREACHED A follow-up to previous commit. I think this is commit is correct (i.e. that this function shouldn't get called) but am not positive, so I'm including it in a standalone commit in case we need to revert. * chore: update signature of OnPrivateNetworkAccessPermissionRequired() Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4919478 Our impl is a no-op, so updating the signature is the only change. * chore: rebuild patches * chore: bump chromium in DEPS to 120.0.6072.0 * chore: update patches * chore: sync ParseMatchPattern() param order with upstream change Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4944243 * chore: update fix_crash_loading_non-standard_schemes_in_iframes.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4939602 * chore: rebuild patches * chore: bump chromium in DEPS to 120.0.6073.0 * chore: update patches * chore: bump chromium in DEPS to 120.0.6074.0 * chore: update disable_color_correct_rendering.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4908053 no manual changes; patch applied with fuzz 1 * chore: update fix_handle_no_top_level_aura_window_in_webcontentsimpl.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4936315 minor manual sync to upstream code shear * chore: rebuild patches * chore: update ClearHttpAuthCache arguments Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4937937 adding ClearDataFilterPtr arg. Upstream added this arg, which is already present in other NetworkContext methods. Our code uses `nullptr` there. * chore: bump chromium in DEPS to 120.0.6076.0 * chore: update mas_disable_remote_accessibility.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4865412 minor manual sync to upstream code shear * chore: update disable_color_correct_rendering.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4942936 minor manual sync to upstream code shear * fix: move x11_util.h include to top of source file This is a short-term fix to unblock the roll. I will follow up a better fix in a standalone PR. * chore: rebuild patches * chore: bump chromium in DEPS to 120.0.6077.0 * chore: update patches * chore: bump chromium in DEPS to 120.0.6078.0 * chore: update patches * refactor: add BrowserProcessImpl::os_crypt_async() Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4455776 This is one to keep an eye on. This commit copies the upstream impl, which appears to be an interim step with more upstream code changes still forthcoming. Xref: https://bugs.chromium.org/p/chromium/issues/detail?id=1373092 * fixup! refactor: add BrowserProcessImpl::os_crypt_async() chore: make 'gn check' happy * chore: remove ensure_messageports_get_gced_when_not_referenced.patch Xref: ensure_messageports_get_gced_when_not_referenced.patch no longer needed because upstreamed * chore: remove webrtc/pipewire_capturer_make_restore_tokens_re-usable_more_than_one_time.patch Xref: https://webrtc-review.googlesource.com/c/src/+/322621 no longer needed because upstreamed * chore: add //components/compose:buildflags dep Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4912601 needed by browser/ui/browser_dialogs.h * chore: update filenames.libcxx.gni node ./script/gen-libc++-filenames.js * test: fix UI.InspectorView -> UI.InspectorView.instance() --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com> Co-authored-by: clavin <clavin@electronjs.org> Co-authored-by: Charles Kerr <charles@charleskerr.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
148 lines
6 KiB
C++
148 lines
6 KiB
C++
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// This interface is for managing the global services of the application. Each
|
|
// service is lazily created when requested the first time. The service getters
|
|
// will return nullptr if the service is not available, so callers must check
|
|
// for this condition.
|
|
|
|
#ifndef ELECTRON_SHELL_BROWSER_BROWSER_PROCESS_IMPL_H_
|
|
#define ELECTRON_SHELL_BROWSER_BROWSER_PROCESS_IMPL_H_
|
|
|
|
#include <memory>
|
|
#include <string>
|
|
|
|
#include "base/command_line.h"
|
|
#include "chrome/browser/browser_process.h"
|
|
#include "components/embedder_support/origin_trials/origin_trials_settings_storage.h"
|
|
#include "components/prefs/pref_service.h"
|
|
#include "components/prefs/value_map_pref_store.h"
|
|
#include "printing/buildflags/buildflags.h"
|
|
#include "services/network/public/cpp/network_quality_tracker.h"
|
|
#include "services/network/public/cpp/shared_url_loader_factory.h"
|
|
#include "shell/browser/net/system_network_context_manager.h"
|
|
|
|
#if BUILDFLAG(IS_LINUX)
|
|
#include "components/os_crypt/sync/key_storage_util_linux.h"
|
|
#endif
|
|
|
|
namespace printing {
|
|
class PrintJobManager;
|
|
}
|
|
|
|
// Empty definition for std::unique_ptr, rather than a forward declaration
|
|
class BackgroundModeManager {};
|
|
|
|
// NOT THREAD SAFE, call only from the main thread.
|
|
// These functions shouldn't return nullptr unless otherwise noted.
|
|
class BrowserProcessImpl : public BrowserProcess {
|
|
public:
|
|
BrowserProcessImpl();
|
|
~BrowserProcessImpl() override;
|
|
|
|
// disable copy
|
|
BrowserProcessImpl(const BrowserProcessImpl&) = delete;
|
|
BrowserProcessImpl& operator=(const BrowserProcessImpl&) = delete;
|
|
|
|
static void ApplyProxyModeFromCommandLine(ValueMapPrefStore* pref_store);
|
|
|
|
BuildState* GetBuildState() override;
|
|
void PostEarlyInitialization();
|
|
void PreCreateThreads();
|
|
void PreMainMessageLoopRun();
|
|
void PostDestroyThreads() {}
|
|
void PostMainMessageLoopRun();
|
|
|
|
void SetSystemLocale(const std::string& locale);
|
|
const std::string& GetSystemLocale() const;
|
|
|
|
#if BUILDFLAG(IS_LINUX)
|
|
void SetLinuxStorageBackend(os_crypt::SelectedLinuxBackend selected_backend);
|
|
const std::string& GetLinuxStorageBackend() const;
|
|
#endif
|
|
|
|
void EndSession() override {}
|
|
void FlushLocalStateAndReply(base::OnceClosure reply) override {}
|
|
bool IsShuttingDown() override;
|
|
|
|
metrics_services_manager::MetricsServicesManager* GetMetricsServicesManager()
|
|
override;
|
|
metrics::MetricsService* metrics_service() override;
|
|
ProfileManager* profile_manager() override;
|
|
PrefService* local_state() override;
|
|
scoped_refptr<network::SharedURLLoaderFactory> shared_url_loader_factory()
|
|
override;
|
|
variations::VariationsService* variations_service() override;
|
|
BrowserProcessPlatformPart* platform_part() override;
|
|
extensions::EventRouterForwarder* extension_event_router_forwarder() override;
|
|
NotificationUIManager* notification_ui_manager() override;
|
|
NotificationPlatformBridge* notification_platform_bridge() override;
|
|
SystemNetworkContextManager* system_network_context_manager() override;
|
|
network::NetworkQualityTracker* network_quality_tracker() override;
|
|
embedder_support::OriginTrialsSettingsStorage*
|
|
GetOriginTrialsSettingsStorage() override;
|
|
policy::ChromeBrowserPolicyConnector* browser_policy_connector() override;
|
|
policy::PolicyService* policy_service() override;
|
|
IconManager* icon_manager() override;
|
|
GpuModeManager* gpu_mode_manager() override;
|
|
printing::PrintPreviewDialogController* print_preview_dialog_controller()
|
|
override;
|
|
printing::BackgroundPrintingManager* background_printing_manager() override;
|
|
IntranetRedirectDetector* intranet_redirect_detector() override;
|
|
DownloadStatusUpdater* download_status_updater() override;
|
|
DownloadRequestLimiter* download_request_limiter() override;
|
|
BackgroundModeManager* background_mode_manager() override;
|
|
StatusTray* status_tray() override;
|
|
safe_browsing::SafeBrowsingService* safe_browsing_service() override;
|
|
subresource_filter::RulesetService* subresource_filter_ruleset_service()
|
|
override;
|
|
component_updater::ComponentUpdateService* component_updater() override;
|
|
MediaFileSystemRegistry* media_file_system_registry() override;
|
|
WebRtcLogUploader* webrtc_log_uploader() override;
|
|
network_time::NetworkTimeTracker* network_time_tracker() override;
|
|
gcm::GCMDriver* gcm_driver() override;
|
|
resource_coordinator::ResourceCoordinatorParts* resource_coordinator_parts()
|
|
override;
|
|
resource_coordinator::TabManager* GetTabManager() override;
|
|
SerialPolicyAllowedPorts* serial_policy_allowed_ports() override;
|
|
HidSystemTrayIcon* hid_system_tray_icon() override;
|
|
UsbSystemTrayIcon* usb_system_tray_icon() override;
|
|
os_crypt_async::OSCryptAsync* os_crypt_async() override;
|
|
void CreateDevToolsProtocolHandler() override {}
|
|
void CreateDevToolsAutoOpener() override {}
|
|
void set_background_mode_manager_for_test(
|
|
std::unique_ptr<BackgroundModeManager> manager) override {}
|
|
#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX))
|
|
void StartAutoupdateTimer() override {}
|
|
#endif
|
|
void SetApplicationLocale(const std::string& locale) override;
|
|
const std::string& GetApplicationLocale() override;
|
|
printing::PrintJobManager* print_job_manager() override;
|
|
StartupData* startup_data() override;
|
|
|
|
private:
|
|
void CreateNetworkQualityObserver();
|
|
void CreateOSCryptAsync();
|
|
network::NetworkQualityTracker* GetNetworkQualityTracker();
|
|
|
|
#if BUILDFLAG(ENABLE_PRINTING)
|
|
std::unique_ptr<printing::PrintJobManager> print_job_manager_;
|
|
#endif
|
|
std::unique_ptr<PrefService> local_state_;
|
|
std::string locale_;
|
|
std::string system_locale_;
|
|
#if BUILDFLAG(IS_LINUX)
|
|
std::string selected_linux_storage_backend_;
|
|
#endif
|
|
embedder_support::OriginTrialsSettingsStorage origin_trials_settings_storage_;
|
|
|
|
std::unique_ptr<network::NetworkQualityTracker> network_quality_tracker_;
|
|
std::unique_ptr<
|
|
network::NetworkQualityTracker::RTTAndThroughputEstimatesObserver>
|
|
network_quality_observer_;
|
|
|
|
std::unique_ptr<os_crypt_async::OSCryptAsync> os_crypt_async_;
|
|
};
|
|
|
|
#endif // ELECTRON_SHELL_BROWSER_BROWSER_PROCESS_IMPL_H_
|