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

Side by Side Diff: content/child/dwrite_font_proxy/dwrite_font_proxy_init_win.cc

Issue 2196493003: Pass in the right sender to font proxy init (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 4 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 | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/child/dwrite_font_proxy/dwrite_font_proxy_init_win.h" 5 #include "content/child/dwrite_font_proxy/dwrite_font_proxy_init_win.h"
6 6
7 #include <dwrite.h> 7 #include <dwrite.h>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 reinterpret_cast<IUnknown**>(factory)))); 62 reinterpret_cast<IUnknown**>(factory))));
63 } 63 }
64 64
65 } // namespace 65 } // namespace
66 66
67 void InitializeDWriteFontProxy() { 67 void InitializeDWriteFontProxy() {
68 mswr::ComPtr<IDWriteFactory> factory; 68 mswr::ComPtr<IDWriteFactory> factory;
69 69
70 CreateDirectWriteFactory(&factory); 70 CreateDirectWriteFactory(&factory);
71 71
72 if (!g_font_collection) {
73 mswr::MakeAndInitialize<DWriteFontCollectionProxy>(
74 &g_font_collection, factory.Get(), g_sender_override);
75 }
76
77 mswr::ComPtr<IDWriteFontFallback> font_fallback;
78 mswr::ComPtr<IDWriteFactory2> factory2;
79 IPC::Sender* sender = g_sender_override; 72 IPC::Sender* sender = g_sender_override;
80 73
81 // Hack for crbug.com/631254: set the sender if we can get one, so that when 74 // Hack for crbug.com/631254: set the sender if we can get one, so that when
82 // Flash calls into the font proxy from a different thread we will have a 75 // Flash calls into the font proxy from a different thread we will have a
83 // sender available. 76 // sender available.
84 if (!sender && ChildThreadImpl::current()) 77 if (!sender && ChildThreadImpl::current())
85 sender = ChildThreadImpl::current()->thread_safe_sender(); 78 sender = ChildThreadImpl::current()->thread_safe_sender();
86 79
80 if (!g_font_collection) {
81 mswr::MakeAndInitialize<DWriteFontCollectionProxy>(
82 &g_font_collection, factory.Get(), sender);
83 }
84
85 mswr::ComPtr<IDWriteFontFallback> font_fallback;
86 mswr::ComPtr<IDWriteFactory2> factory2;
87
87 if (SUCCEEDED(factory.As(&factory2)) && factory2.Get()) { 88 if (SUCCEEDED(factory.As(&factory2)) && factory2.Get()) {
88 mswr::MakeAndInitialize<FontFallback>( 89 mswr::MakeAndInitialize<FontFallback>(
89 &font_fallback, g_font_collection.Get(), sender); 90 &font_fallback, g_font_collection.Get(), sender);
90 } 91 }
91 92
92 sk_sp<SkFontMgr> skia_font_manager(SkFontMgr_New_DirectWrite( 93 sk_sp<SkFontMgr> skia_font_manager(SkFontMgr_New_DirectWrite(
93 factory.Get(), g_font_collection.Get(), font_fallback.Get())); 94 factory.Get(), g_font_collection.Get(), font_fallback.Get()));
94 blink::WebFontRendering::setSkiaFontManager(skia_font_manager.get()); 95 blink::WebFontRendering::setSkiaFontManager(skia_font_manager.get());
95 96
96 // Add an extra ref for SetDefaultSkiaFactory, which keeps a ref but doesn't 97 // Add an extra ref for SetDefaultSkiaFactory, which keeps a ref but doesn't
(...skipping 17 matching lines...) Expand all
114 void UninitializeDWriteFontProxy() { 115 void UninitializeDWriteFontProxy() {
115 if (g_font_collection) 116 if (g_font_collection)
116 g_font_collection->Unregister(); 117 g_font_collection->Unregister();
117 } 118 }
118 119
119 void SetDWriteFontProxySenderForTesting(IPC::Sender* sender) { 120 void SetDWriteFontProxySenderForTesting(IPC::Sender* sender) {
120 g_sender_override = sender; 121 g_sender_override = sender;
121 } 122 }
122 123
123 } // namespace content 124 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698