Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(93)

Side by Side Diff: mandoline/ui/aura/aura_init.cc

Issue 1402213002: Moves mandoline/ui/aura to ui/views/mus (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: disable presubmit Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « mandoline/ui/aura/aura_init.h ('k') | mandoline/ui/aura/input_method_mandoline.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2015 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 #include "mandoline/ui/aura/aura_init.h"
6
7 #include "base/i18n/icu_util.h"
8 #include "base/lazy_instance.h"
9 #include "base/path_service.h"
10 #include "components/mus/public/cpp/view.h"
11 #include "components/resource_provider/public/cpp/resource_loader.h"
12 #include "mojo/converters/geometry/geometry_type_converters.h"
13 #include "ui/aura/env.h"
14 #include "ui/base/ime/input_method_initializer.h"
15 #include "ui/base/resource/resource_bundle.h"
16 #include "ui/base/ui_base_paths.h"
17
18 #if defined(OS_LINUX) && !defined(OS_ANDROID)
19 #include "components/font_service/public/cpp/font_loader.h"
20 #endif
21
22 namespace mandoline {
23
24 namespace {
25
26 std::set<std::string> GetResourcePaths(const std::string& resource_file) {
27 std::set<std::string> paths;
28 paths.insert(resource_file);
29 return paths;
30 }
31
32 } // namespace
33
34 // TODO(sky): the 1.f should be view->viewport_metrics().device_scale_factor,
35 // but that causes clipping problems. No doubt we're not scaling a size
36 // correctly.
37 AuraInit::AuraInit(mus::View* view,
38 mojo::Shell* shell,
39 const std::string& resource_file)
40 : ui_init_(view->viewport_metrics().size_in_pixels.To<gfx::Size>(), 1.f),
41 resource_file_(resource_file) {
42 aura::Env::CreateInstance(false);
43
44 InitializeResources(shell);
45
46 ui::InitializeInputMethodForTesting();
47 }
48
49 AuraInit::~AuraInit() {
50 #if defined(OS_LINUX) && !defined(OS_ANDROID)
51 if (font_loader_.get()) {
52 SkFontConfigInterface::SetGlobal(nullptr);
53 // FontLoader is ref counted. We need to explicitly shutdown the background
54 // thread, otherwise the background thread may be shutdown after the app is
55 // torn down, when we're in a bad state.
56 font_loader_->Shutdown();
57 }
58 #endif
59 }
60
61 void AuraInit::InitializeResources(mojo::Shell* shell) {
62 if (ui::ResourceBundle::HasSharedInstance())
63 return;
64 resource_provider::ResourceLoader resource_loader(
65 shell, GetResourcePaths(resource_file_));
66 if (!resource_loader.BlockUntilLoaded())
67 return;
68 CHECK(resource_loader.loaded());
69 base::i18n::InitializeICUWithFileDescriptor(
70 resource_loader.GetICUFile().TakePlatformFile(),
71 base::MemoryMappedFile::Region::kWholeFile);
72 ui::RegisterPathProvider();
73 base::File pak_file = resource_loader.ReleaseFile(resource_file_);
74 base::File pak_file_2 = pak_file.Duplicate();
75 ui::ResourceBundle::InitSharedInstanceWithPakFileRegion(
76 pak_file.Pass(), base::MemoryMappedFile::Region::kWholeFile);
77 ui::ResourceBundle::GetSharedInstance().AddDataPackFromFile(
78 pak_file_2.Pass(), ui::SCALE_FACTOR_100P);
79
80 // Initialize the skia font code to go ask fontconfig underneath.
81 #if defined(OS_LINUX) && !defined(OS_ANDROID)
82 font_loader_ = skia::AdoptRef(new font_service::FontLoader(shell));
83 SkFontConfigInterface::SetGlobal(font_loader_.get());
84 #endif
85
86 // There is a bunch of static state in gfx::Font, by running this now,
87 // before any other apps load, we ensure all the state is set up.
88 gfx::Font();
89 }
90
91 } // namespace mandoline
OLDNEW
« no previous file with comments | « mandoline/ui/aura/aura_init.h ('k') | mandoline/ui/aura/input_method_mandoline.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698