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

Side by Side Diff: Source/core/page/Settings.cpp

Issue 100653002: Introduce GenericFontFamilySettings. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Added missing PLATFORM_EXPORT Created 7 years 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 | « Source/core/page/Settings.h ('k') | Source/core/testing/InternalSettings.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All rights reserv ed. 2 * Copyright (C) 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All rights reserv ed.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 namespace WebCore { 43 namespace WebCore {
44 44
45 static void setImageLoadingSettings(Page* page) 45 static void setImageLoadingSettings(Page* page)
46 { 46 {
47 for (Frame* frame = page->mainFrame(); frame; frame = frame->tree().traverse Next()) { 47 for (Frame* frame = page->mainFrame(); frame; frame = frame->tree().traverse Next()) {
48 frame->document()->fetcher()->setImagesEnabled(page->settings().areImage sEnabled()); 48 frame->document()->fetcher()->setImagesEnabled(page->settings().areImage sEnabled());
49 frame->document()->fetcher()->setAutoLoadImages(page->settings().loadsIm agesAutomatically()); 49 frame->document()->fetcher()->setAutoLoadImages(page->settings().loadsIm agesAutomatically());
50 } 50 }
51 } 51 }
52 52
53 // Sets the entry in the font map for the given script. If family is the empty s tring, removes the entry instead.
54 static inline void setGenericFontFamilyMap(ScriptFontFamilyMap& fontMap, const A tomicString& family, UScriptCode script, Page* page)
55 {
56 ScriptFontFamilyMap::iterator it = fontMap.find(static_cast<int>(script));
57 if (family.isEmpty()) {
58 if (it == fontMap.end())
59 return;
60 fontMap.remove(it);
61 } else if (it != fontMap.end() && it->value == family)
62 return;
63 else
64 fontMap.set(static_cast<int>(script), family);
65
66 if (page)
67 page->setNeedsRecalcStyleInAllFrames();
68 }
69
70 static inline const AtomicString& getGenericFontFamilyForScript(const ScriptFont FamilyMap& fontMap, UScriptCode script)
71 {
72 ScriptFontFamilyMap::const_iterator it = fontMap.find(static_cast<int>(scrip t));
73 if (it != fontMap.end())
74 return it->value;
75 if (script != USCRIPT_COMMON)
76 return getGenericFontFamilyForScript(fontMap, USCRIPT_COMMON);
77 return emptyAtom;
78 }
79
80 // NOTEs 53 // NOTEs
81 // 1) EditingMacBehavior comprises builds on Mac; 54 // 1) EditingMacBehavior comprises builds on Mac;
82 // 2) EditingWindowsBehavior comprises builds on Windows; 55 // 2) EditingWindowsBehavior comprises builds on Windows;
83 // 3) EditingUnixBehavior comprises all unix-based systems, but Darwin/MacOS/An droid (and then abusing the terminology); 56 // 3) EditingUnixBehavior comprises all unix-based systems, but Darwin/MacOS/An droid (and then abusing the terminology);
84 // 4) EditingAndroidBehavior comprises Android builds. 57 // 4) EditingAndroidBehavior comprises Android builds.
85 // 99) MacEditingBehavior is used a fallback. 58 // 99) MacEditingBehavior is used a fallback.
86 static EditingBehaviorType editingBehaviorTypeForPlatform() 59 static EditingBehaviorType editingBehaviorTypeForPlatform()
87 { 60 {
88 return 61 return
89 #if OS(MACOSX) 62 #if OS(MACOSX)
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 m_page = page; // Page is not yet fully initialized wen constructing Setting s, so keeping m_page null over initializeDefaultFontFamilies() call. 114 m_page = page; // Page is not yet fully initialized wen constructing Setting s, so keeping m_page null over initializeDefaultFontFamilies() call.
142 } 115 }
143 116
144 PassOwnPtr<Settings> Settings::create(Page* page) 117 PassOwnPtr<Settings> Settings::create(Page* page)
145 { 118 {
146 return adoptPtr(new Settings(page)); 119 return adoptPtr(new Settings(page));
147 } 120 }
148 121
149 SETTINGS_SETTER_BODIES 122 SETTINGS_SETTER_BODIES
150 123
151 const AtomicString& Settings::standardFontFamily(UScriptCode script) const
152 {
153 return getGenericFontFamilyForScript(m_standardFontFamilyMap, script);
154 }
155
156 void Settings::setStandardFontFamily(const AtomicString& family, UScriptCode scr ipt)
157 {
158 setGenericFontFamilyMap(m_standardFontFamilyMap, family, script, m_page);
159 }
160
161 const AtomicString& Settings::fixedFontFamily(UScriptCode script) const
162 {
163 return getGenericFontFamilyForScript(m_fixedFontFamilyMap, script);
164 }
165
166 void Settings::setFixedFontFamily(const AtomicString& family, UScriptCode script )
167 {
168 setGenericFontFamilyMap(m_fixedFontFamilyMap, family, script, m_page);
169 }
170
171 const AtomicString& Settings::serifFontFamily(UScriptCode script) const
172 {
173 return getGenericFontFamilyForScript(m_serifFontFamilyMap, script);
174 }
175
176 void Settings::setSerifFontFamily(const AtomicString& family, UScriptCode script )
177 {
178 setGenericFontFamilyMap(m_serifFontFamilyMap, family, script, m_page);
179 }
180
181 const AtomicString& Settings::sansSerifFontFamily(UScriptCode script) const
182 {
183 return getGenericFontFamilyForScript(m_sansSerifFontFamilyMap, script);
184 }
185
186 void Settings::setSansSerifFontFamily(const AtomicString& family, UScriptCode sc ript)
187 {
188 setGenericFontFamilyMap(m_sansSerifFontFamilyMap, family, script, m_page);
189 }
190
191 const AtomicString& Settings::cursiveFontFamily(UScriptCode script) const
192 {
193 return getGenericFontFamilyForScript(m_cursiveFontFamilyMap, script);
194 }
195
196 void Settings::setCursiveFontFamily(const AtomicString& family, UScriptCode scri pt)
197 {
198 setGenericFontFamilyMap(m_cursiveFontFamilyMap, family, script, m_page);
199 }
200
201 const AtomicString& Settings::fantasyFontFamily(UScriptCode script) const
202 {
203 return getGenericFontFamilyForScript(m_fantasyFontFamilyMap, script);
204 }
205
206 void Settings::setFantasyFontFamily(const AtomicString& family, UScriptCode scri pt)
207 {
208 setGenericFontFamilyMap(m_fantasyFontFamilyMap, family, script, m_page);
209 }
210
211 const AtomicString& Settings::pictographFontFamily(UScriptCode script) const
212 {
213 return getGenericFontFamilyForScript(m_pictographFontFamilyMap, script);
214 }
215
216 void Settings::setPictographFontFamily(const AtomicString& family, UScriptCode s cript)
217 {
218 setGenericFontFamilyMap(m_pictographFontFamilyMap, family, script, m_page);
219 }
220
221 void Settings::setTextAutosizingEnabled(bool textAutosizingEnabled) 124 void Settings::setTextAutosizingEnabled(bool textAutosizingEnabled)
222 { 125 {
223 if (m_textAutosizingEnabled == textAutosizingEnabled) 126 if (m_textAutosizingEnabled == textAutosizingEnabled)
224 return; 127 return;
225 128
226 m_textAutosizingEnabled = textAutosizingEnabled; 129 m_textAutosizingEnabled = textAutosizingEnabled;
227 m_page->setNeedsRecalcStyleInAllFrames(); 130 m_page->setNeedsRecalcStyleInAllFrames();
228 } 131 }
229 132
230 bool Settings::textAutosizingEnabled() const 133 bool Settings::textAutosizingEnabled() const
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 202
300 Frame* mainFrame = m_page->mainFrame(); 203 Frame* mainFrame = m_page->mainFrame();
301 ASSERT(mainFrame); 204 ASSERT(mainFrame);
302 FrameView* view = mainFrame->view(); 205 FrameView* view = mainFrame->view();
303 ASSERT(view); 206 ASSERT(view);
304 207
305 view->setMediaType(mediaTypeOverride); 208 view->setMediaType(mediaTypeOverride);
306 m_page->setNeedsRecalcStyleInAllFrames(); 209 m_page->setNeedsRecalcStyleInAllFrames();
307 } 210 }
308 211
309 void Settings::resetFontFamilies()
310 {
311 m_standardFontFamilyMap.clear();
312 m_serifFontFamilyMap.clear();
313 m_fixedFontFamilyMap.clear();
314 m_sansSerifFontFamilyMap.clear();
315 m_cursiveFontFamilyMap.clear();
316 m_fantasyFontFamilyMap.clear();
317 m_pictographFontFamilyMap.clear();
318 }
319
320 void Settings::setLoadsImagesAutomatically(bool loadsImagesAutomatically) 212 void Settings::setLoadsImagesAutomatically(bool loadsImagesAutomatically)
321 { 213 {
322 m_loadsImagesAutomatically = loadsImagesAutomatically; 214 m_loadsImagesAutomatically = loadsImagesAutomatically;
323 215
324 // Changing this setting to true might immediately start new loads for image s that had previously had loading disabled. 216 // Changing this setting to true might immediately start new loads for image s that had previously had loading disabled.
325 // If this happens while a WebView is being dealloc'ed, and we don't know th e WebView is being dealloc'ed, these new loads 217 // If this happens while a WebView is being dealloc'ed, and we don't know th e WebView is being dealloc'ed, these new loads
326 // can cause crashes downstream when the WebView memory has actually been fr ee'd. 218 // can cause crashes downstream when the WebView memory has actually been fr ee'd.
327 // One example where this can happen is in Mac apps that subclass WebView th en do work in their overridden dealloc methods. 219 // One example where this can happen is in Mac apps that subclass WebView th en do work in their overridden dealloc methods.
328 // Starting these loads synchronously is not important. By putting it on a 0-delay, properly closing the Page cancels them 220 // Starting these loads synchronously is not important. By putting it on a 0-delay, properly closing the Page cancels them
329 // before they have a chance to really start. 221 // before they have a chance to really start.
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 if (m_page->mainFrame()) 297 if (m_page->mainFrame())
406 m_page->mainFrame()->document()->updateViewportDescription(); 298 m_page->mainFrame()->document()->updateViewportDescription();
407 } 299 }
408 300
409 void Settings::setViewportMetaEnabled(bool enabled) 301 void Settings::setViewportMetaEnabled(bool enabled)
410 { 302 {
411 m_viewportMetaEnabled = enabled; 303 m_viewportMetaEnabled = enabled;
412 } 304 }
413 305
414 } // namespace WebCore 306 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/page/Settings.h ('k') | Source/core/testing/InternalSettings.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698