blob: 466971e48d9094dec96c34499c21f0568d2f3d2b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
// 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.
#include "chrome/browser/chrome_browser_main_linux.h"
#include <fontconfig/fontconfig.h>
#include "build/build_config.h"
#include "chrome/browser/browser_process.h"
#include "chrome/grit/chromium_strings.h"
#include "components/crash/content/app/breakpad_linux.h"
#include "components/metrics/metrics_service.h"
#include "device/bluetooth/dbus/bluez_dbus_manager.h"
#include "device/bluetooth/dbus/dbus_thread_manager_linux.h"
#include "media/audio/audio_manager.h"
#include "ui/base/l10n/l10n_util.h"
#if !defined(OS_CHROMEOS)
#include "base/linux_util.h"
#include "chrome/browser/sxs_linux.h"
#include "content/public/browser/browser_thread.h"
#endif
ChromeBrowserMainPartsLinux::ChromeBrowserMainPartsLinux(
const content::MainFunctionParams& parameters)
: ChromeBrowserMainPartsPosix(parameters) {
}
ChromeBrowserMainPartsLinux::~ChromeBrowserMainPartsLinux() {
}
void ChromeBrowserMainPartsLinux::ToolkitInitialized() {
// Explicitly initialize Fontconfig early on to prevent races later due to
// implicit initialization in response to threads' first calls to Fontconfig:
// http://crbug.com/404311
FcInit();
ChromeBrowserMainPartsPosix::ToolkitInitialized();
}
void ChromeBrowserMainPartsLinux::PreProfileInit() {
#if !defined(OS_CHROMEOS)
// Needs to be called after we have chrome::DIR_USER_DATA and
// g_browser_process. This happens in PreCreateThreads.
// base::GetLinuxDistro() will initialize its value if needed.
content::BrowserThread::PostBlockingPoolTask(
FROM_HERE,
base::Bind(base::IgnoreResult(&base::GetLinuxDistro)));
content::BrowserThread::PostBlockingPoolTask(
FROM_HERE,
base::Bind(&sxs_linux::AddChannelMarkToUserDataDir));
#endif
media::AudioManager::SetGlobalAppName(
l10n_util::GetStringUTF8(IDS_SHORT_PRODUCT_NAME));
ChromeBrowserMainPartsPosix::PreProfileInit();
}
void ChromeBrowserMainPartsLinux::PostProfileInit() {
ChromeBrowserMainPartsPosix::PostProfileInit();
g_browser_process->metrics_service()->RecordBreakpadRegistration(
breakpad::IsCrashReporterEnabled());
}
void ChromeBrowserMainPartsLinux::PostMainMessageLoopStart() {
#if !defined(OS_CHROMEOS)
bluez::DBusThreadManagerLinux::Initialize();
bluez::BluezDBusManager::Initialize(
bluez::DBusThreadManagerLinux::Get()->GetSystemBus(), false);
#endif
ChromeBrowserMainPartsPosix::PostMainMessageLoopStart();
}
void ChromeBrowserMainPartsLinux::PostDestroyThreads() {
#if !defined(OS_CHROMEOS)
bluez::BluezDBusManager::Shutdown();
bluez::DBusThreadManagerLinux::Shutdown();
#endif
ChromeBrowserMainPartsPosix::PostDestroyThreads();
}
|