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

Side by Side Diff: content/renderer/renderer_webkitplatformsupport_impl.cc

Issue 8590028: Use new getFontFamilyForCharacters() API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « content/ppapi_plugin/ppapi_webkitplatformsupport_impl.cc ('k') | 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 (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/renderer/renderer_webkitplatformsupport_impl.h" 5 #include "content/renderer/renderer_webkitplatformsupport_impl.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/file_path.h" 8 #include "base/file_path.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/platform_file.h" 10 #include "base/platform_file.h"
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 #include "content/common/mac/font_loader.h" 55 #include "content/common/mac/font_loader.h"
56 #include "third_party/WebKit/Source/WebKit/chromium/public/mac/WebSandboxSupport .h" 56 #include "third_party/WebKit/Source/WebKit/chromium/public/mac/WebSandboxSupport .h"
57 #endif 57 #endif
58 58
59 #if defined(OS_POSIX) && !defined(OS_MACOSX) 59 #if defined(OS_POSIX) && !defined(OS_MACOSX)
60 #include <string> 60 #include <string>
61 #include <map> 61 #include <map>
62 62
63 #include "base/synchronization/lock.h" 63 #include "base/synchronization/lock.h"
64 #include "content/common/child_process_sandbox_support_impl_linux.h" 64 #include "content/common/child_process_sandbox_support_impl_linux.h"
65 #include "third_party/WebKit/Source/WebKit/chromium/public/linux/WebFontFamily.h "
65 #include "third_party/WebKit/Source/WebKit/chromium/public/linux/WebSandboxSuppo rt.h" 66 #include "third_party/WebKit/Source/WebKit/chromium/public/linux/WebSandboxSuppo rt.h"
66 #endif 67 #endif
67 68
68 #if defined(OS_POSIX) 69 #if defined(OS_POSIX)
69 #include "base/file_descriptor_posix.h" 70 #include "base/file_descriptor_posix.h"
70 #endif 71 #endif
71 72
72 using WebKit::WebAudioDevice; 73 using WebKit::WebAudioDevice;
73 using WebKit::WebBlobRegistry; 74 using WebKit::WebBlobRegistry;
74 using WebKit::WebFileSystem; 75 using WebKit::WebFileSystem;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 virtual ~SandboxSupport() {} 114 virtual ~SandboxSupport() {}
114 115
115 #if defined(OS_WIN) 116 #if defined(OS_WIN)
116 virtual bool ensureFontLoaded(HFONT); 117 virtual bool ensureFontLoaded(HFONT);
117 #elif defined(OS_MACOSX) 118 #elif defined(OS_MACOSX)
118 virtual bool loadFont( 119 virtual bool loadFont(
119 NSFont* src_font, 120 NSFont* src_font,
120 CGFontRef* container, 121 CGFontRef* container,
121 uint32* font_id); 122 uint32* font_id);
122 #elif defined(OS_POSIX) 123 #elif defined(OS_POSIX)
123 virtual WebKit::WebString getFontFamilyForCharacters( 124 virtual void getFontFamilyForCharacters(
124 const WebKit::WebUChar* characters, 125 const WebKit::WebUChar* characters,
125 size_t numCharacters, 126 size_t numCharacters,
126 const char* preferred_locale); 127 const char* preferred_locale,
128 WebKit::WebFontFamily* family);
127 virtual void getRenderStyleForStrike( 129 virtual void getRenderStyleForStrike(
128 const char* family, int sizeAndStyle, WebKit::WebFontRenderStyle* out); 130 const char* family, int sizeAndStyle, WebKit::WebFontRenderStyle* out);
129 131
130 private: 132 private:
131 // WebKit likes to ask us for the correct font family to use for a set of 133 // WebKit likes to ask us for the correct font family to use for a set of
132 // unicode code points. It needs this information frequently so we cache it 134 // unicode code points. It needs this information frequently so we cache it
133 // here. The key in this map is an array of 16-bit UTF16 values from WebKit. 135 // here. The key in this map is an array of 16-bit UTF16 values from WebKit.
134 // The value is a string containing the correct font family. 136 // The value is a string containing the correct font family.
135 base::Lock unicode_font_families_mutex_; 137 base::Lock unicode_font_families_mutex_;
136 std::map<string16, std::string> unicode_font_families_; 138 std::map<string16, WebKit::WebFontFamily> unicode_font_families_;
137 #endif 139 #endif
138 }; 140 };
139 141
140 //------------------------------------------------------------------------------ 142 //------------------------------------------------------------------------------
141 143
142 RendererWebKitPlatformSupportImpl::RendererWebKitPlatformSupportImpl() 144 RendererWebKitPlatformSupportImpl::RendererWebKitPlatformSupportImpl()
143 : clipboard_(new webkit_glue::WebClipboardImpl), 145 : clipboard_(new webkit_glue::WebClipboardImpl),
144 mime_registry_(new RendererWebKitPlatformSupportImpl::MimeRegistry), 146 mime_registry_(new RendererWebKitPlatformSupportImpl::MimeRegistry),
145 sandbox_support_(new RendererWebKitPlatformSupportImpl::SandboxSupport), 147 sandbox_support_(new RendererWebKitPlatformSupportImpl::SandboxSupport),
146 sudden_termination_disables_(0), 148 sudden_termination_disables_(0),
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 475
474 // TODO(jeremy): Need to call back into WebKit to make sure that the font 476 // TODO(jeremy): Need to call back into WebKit to make sure that the font
475 // isn't already activated, based on the font id. If it's already 477 // isn't already activated, based on the font id. If it's already
476 // activated, don't reactivate it here - crbug.com/72727 . 478 // activated, don't reactivate it here - crbug.com/72727 .
477 479
478 return FontLoader::CGFontRefFromBuffer(font_data, font_data_size, out); 480 return FontLoader::CGFontRefFromBuffer(font_data, font_data_size, out);
479 } 481 }
480 482
481 #elif defined(OS_POSIX) 483 #elif defined(OS_POSIX)
482 484
483 WebString 485 void
484 RendererWebKitPlatformSupportImpl::SandboxSupport::getFontFamilyForCharacters( 486 RendererWebKitPlatformSupportImpl::SandboxSupport::getFontFamilyForCharacters(
485 const WebKit::WebUChar* characters, 487 const WebKit::WebUChar* characters,
486 size_t num_characters, 488 size_t num_characters,
487 const char* preferred_locale) { 489 const char* preferred_locale,
490 WebKit::WebFontFamily* family) {
488 base::AutoLock lock(unicode_font_families_mutex_); 491 base::AutoLock lock(unicode_font_families_mutex_);
489 const string16 key(characters, num_characters); 492 const string16 key(characters, num_characters);
490 const std::map<string16, std::string>::const_iterator iter = 493 const std::map<string16, WebKit::WebFontFamily>::const_iterator iter =
491 unicode_font_families_.find(key); 494 unicode_font_families_.find(key);
492 if (iter != unicode_font_families_.end()) 495 if (iter != unicode_font_families_.end()) {
493 return WebString::fromUTF8(iter->second); 496 family->name = iter->second.name;
497 family->isBold = iter->second.isBold;
498 family->isItalic = iter->second.isItalic;
499 return;
500 }
494 501
495 const std::string family_name = content::GetFontFamilyForCharacters( 502 content::GetFontFamilyForCharacters(
496 characters, 503 characters,
497 num_characters, 504 num_characters,
498 preferred_locale); 505 preferred_locale,
499 unicode_font_families_.insert(make_pair(key, family_name)); 506 family);
500 return WebString::fromUTF8(family_name); 507 unicode_font_families_.insert(make_pair(key, *family));
501 } 508 }
502 509
503 void 510 void
504 RendererWebKitPlatformSupportImpl::SandboxSupport::getRenderStyleForStrike( 511 RendererWebKitPlatformSupportImpl::SandboxSupport::getRenderStyleForStrike(
505 const char* family, int sizeAndStyle, WebKit::WebFontRenderStyle* out) { 512 const char* family, int sizeAndStyle, WebKit::WebFontRenderStyle* out) {
506 content::GetRenderStyleForStrike(family, sizeAndStyle, out); 513 content::GetRenderStyleForStrike(family, sizeAndStyle, out);
507 } 514 }
508 515
509 #endif 516 #endif
510 517
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 blob_registry_.reset(new WebBlobRegistryImpl(ChildThread::current())); 614 blob_registry_.reset(new WebBlobRegistryImpl(ChildThread::current()));
608 } 615 }
609 return blob_registry_.get(); 616 return blob_registry_.get();
610 } 617 }
611 618
612 WebKit::WebString RendererWebKitPlatformSupportImpl::userAgent( 619 WebKit::WebString RendererWebKitPlatformSupportImpl::userAgent(
613 const WebKit::WebURL& url) { 620 const WebKit::WebURL& url) {
614 return WebKitPlatformSupportImpl::userAgent(url); 621 return WebKitPlatformSupportImpl::userAgent(url);
615 } 622 }
616 623
OLDNEW
« no previous file with comments | « content/ppapi_plugin/ppapi_webkitplatformsupport_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698