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

Side by Side Diff: Source/core/dom/ViewportArguments.cpp

Issue 23742003: Use css-device-adapt constraining for legacy viewport tags. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 3 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 7 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
8 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) 8 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
9 * Copyright (C) 2012-2013 Intel Corporation. All rights reserved. 9 * Copyright (C) 2012-2013 Intel Corporation. All rights reserved.
10 * 10 *
(...skipping 30 matching lines...) Expand all
41 return value2; 41 return value2;
42 42
43 if (value2 == ViewportArguments::ValueAuto) 43 if (value2 == ViewportArguments::ValueAuto)
44 return value1; 44 return value1;
45 45
46 return compare(value1, value2); 46 return compare(value1, value2);
47 } 47 }
48 48
49 static inline float clampLengthValue(float value) 49 static inline float clampLengthValue(float value)
50 { 50 {
51 ASSERT(value != ViewportArguments::ValueDeviceWidth);
52 ASSERT(value != ViewportArguments::ValueDeviceHeight);
53
54 // Limits as defined in the css-device-adapt spec. 51 // Limits as defined in the css-device-adapt spec.
55 if (value != ViewportArguments::ValueAuto) 52 if (value != ViewportArguments::ValueAuto)
56 return min(float(10000), max(value, float(1))); 53 return min(float(10000), max(value, float(1)));
57 return value; 54 return value;
58 } 55 }
59 56
60 static inline float clampScaleValue(float value) 57 static inline float clampScaleValue(float value)
61 { 58 {
62 ASSERT(value != ViewportArguments::ValueDeviceWidth);
63 ASSERT(value != ViewportArguments::ValueDeviceHeight);
64
65 // Limits as defined in the css-device-adapt spec. 59 // Limits as defined in the css-device-adapt spec.
66 if (value != ViewportArguments::ValueAuto) 60 if (value != ViewportArguments::ValueAuto)
67 return min(float(10), max(value, float(0.1))); 61 return min(float(10), max(value, float(0.1)));
68 return value; 62 return value;
69 } 63 }
70 64
71 PageScaleConstraints ViewportArguments::resolve(const FloatSize& initialViewport Size, int defaultWidth) const 65 PageScaleConstraints ViewportArguments::resolve(const FloatSize& initialViewport Size) const
72 { 66 {
73 float resultWidth = width; 67 float resultWidth = ValueAuto;
74 float resultMaxWidth = maxWidth; 68 float resultMaxWidth = maxWidth;
75 float resultMinWidth = minWidth; 69 float resultMinWidth = minWidth;
76 float resultHeight = height; 70 float resultHeight = ValueAuto;
77 float resultMinHeight = minHeight; 71 float resultMinHeight = minHeight;
78 float resultMaxHeight = maxHeight; 72 float resultMaxHeight = maxHeight;
79 73
80 float resultZoom = zoom; 74 float resultZoom = zoom;
81 float resultMinZoom = minZoom; 75 float resultMinZoom = minZoom;
82 float resultMaxZoom = maxZoom; 76 float resultMaxZoom = maxZoom;
83 float resultUserZoom = userZoom; 77 float resultUserZoom = userZoom;
84 78
85 if (type == ViewportArguments::CSSDeviceAdaptation) { 79 if (resultMaxWidth == ValueDeviceWidth)
80 resultMaxWidth = initialViewportSize.width();
81 else if (resultMaxWidth == ValueDeviceHeight)
82 resultMaxWidth = initialViewportSize.height();
86 83
87 // device-width/device-height not supported for @viewport. 84 if (resultMaxHeight == ValueDeviceWidth)
88 ASSERT(resultMinWidth != ViewportArguments::ValueDeviceWidth); 85 resultMaxHeight = initialViewportSize.width();
89 ASSERT(resultMinWidth != ViewportArguments::ValueDeviceHeight); 86 else if (resultMaxHeight == ValueDeviceHeight)
90 ASSERT(resultMaxWidth != ViewportArguments::ValueDeviceWidth); 87 resultMaxHeight = initialViewportSize.height();
91 ASSERT(resultMaxWidth != ViewportArguments::ValueDeviceHeight);
92 ASSERT(resultMinHeight != ViewportArguments::ValueDeviceWidth);
93 ASSERT(resultMinHeight != ViewportArguments::ValueDeviceHeight);
94 ASSERT(resultMaxHeight != ViewportArguments::ValueDeviceWidth);
95 ASSERT(resultMaxHeight != ViewportArguments::ValueDeviceHeight);
96 88
97 // 1. Resolve min-zoom and max-zoom values. 89 // 1. Resolve min-zoom and max-zoom values.
98 if (resultMinZoom != ViewportArguments::ValueAuto && resultMaxZoom != Vi ewportArguments::ValueAuto) 90 if (resultMinZoom != ViewportArguments::ValueAuto && resultMaxZoom != Viewpo rtArguments::ValueAuto)
99 resultMaxZoom = max(resultMinZoom, resultMaxZoom); 91 resultMaxZoom = max(resultMinZoom, resultMaxZoom);
100 92
101 // 2. Constrain zoom value to the [min-zoom, max-zoom] range. 93 // 2. Constrain zoom value to the [min-zoom, max-zoom] range.
102 if (resultZoom != ViewportArguments::ValueAuto) 94 if (resultZoom != ViewportArguments::ValueAuto)
103 resultZoom = compareIgnoringAuto(resultMinZoom, compareIgnoringAuto( resultMaxZoom, resultZoom, min), max); 95 resultZoom = compareIgnoringAuto(resultMinZoom, compareIgnoringAuto(resu ltMaxZoom, resultZoom, min), max);
104 96
105 float extendZoom = compareIgnoringAuto(resultZoom, resultMaxZoom, min); 97 float extendZoom = compareIgnoringAuto(resultZoom, resultMaxZoom, min);
106 98
107 if (extendZoom == ViewportArguments::ValueAuto) { 99 // 3. Resolve non-"auto" lengths to pixel lengths.
kenneth.r.christiansen 2013/09/02 09:14:16 So all this is the same as in my patch?
rune 2013/09/02 11:29:30 I have not actually diffed - can do that. I did no
108 if (resultMaxWidth == ViewportArguments::ValueExtendToZoom) 100 if (extendZoom == ViewportArguments::ValueAuto) {
109 resultMaxWidth = ViewportArguments::ValueAuto; 101 if (resultMaxWidth == ViewportArguments::ValueExtendToZoom)
102 resultMaxWidth = ViewportArguments::ValueAuto;
110 103
111 if (resultMaxHeight == ViewportArguments::ValueExtendToZoom) 104 if (resultMaxHeight == ViewportArguments::ValueExtendToZoom)
112 resultMaxHeight = ViewportArguments::ValueAuto; 105 resultMaxHeight = ViewportArguments::ValueAuto;
113 106
114 if (resultMinWidth == ViewportArguments::ValueExtendToZoom) 107 if (resultMinWidth == ViewportArguments::ValueExtendToZoom)
115 resultMinWidth = resultMaxWidth; 108 resultMinWidth = resultMaxWidth;
116 109
117 if (resultMinHeight == ViewportArguments::ValueExtendToZoom) 110 if (resultMinHeight == ViewportArguments::ValueExtendToZoom)
118 resultMinHeight = resultMaxHeight; 111 resultMinHeight = resultMaxHeight;
119 } else { 112 } else {
120 float extendWidth = initialViewportSize.width() / extendZoom; 113 float extendWidth = initialViewportSize.width() / extendZoom;
121 float extendHeight = initialViewportSize.height() / extendZoom; 114 float extendHeight = initialViewportSize.height() / extendZoom;
122 115
123 if (resultMaxWidth == ViewportArguments::ValueExtendToZoom) 116 if (resultMaxWidth == ViewportArguments::ValueExtendToZoom)
124 resultMaxWidth = extendWidth; 117 resultMaxWidth = extendWidth;
125 118
126 if (resultMaxHeight == ViewportArguments::ValueExtendToZoom) 119 if (resultMaxHeight == ViewportArguments::ValueExtendToZoom)
127 resultMaxHeight = extendHeight; 120 resultMaxHeight = extendHeight;
128 121
129 if (resultMinWidth == ViewportArguments::ValueExtendToZoom) 122 if (resultMinWidth == ViewportArguments::ValueExtendToZoom)
130 resultMinWidth = compareIgnoringAuto(extendWidth, resultMaxWidth , max); 123 resultMinWidth = compareIgnoringAuto(extendWidth, resultMaxWidth, ma x);
131 124
132 if (resultMinHeight == ViewportArguments::ValueExtendToZoom) 125 if (resultMinHeight == ViewportArguments::ValueExtendToZoom)
133 resultMinHeight = compareIgnoringAuto(extendHeight, resultMaxHei ght, max); 126 resultMinHeight = compareIgnoringAuto(extendHeight, resultMaxHeight, max);
134 }
135
136 // 4. Resolve initial width from min/max descriptors.
137 if (resultMinWidth != ViewportArguments::ValueAuto || resultMaxWidth != ViewportArguments::ValueAuto)
138 resultWidth = compareIgnoringAuto(resultMinWidth, compareIgnoringAut o(resultMaxWidth, initialViewportSize.width(), min), max);
139
140 // 5. Resolve initial height from min/max descriptors.
141 if (resultMinHeight != ViewportArguments::ValueAuto || resultMaxHeight ! = ViewportArguments::ValueAuto)
142 resultHeight = compareIgnoringAuto(resultMinHeight, compareIgnoringA uto(resultMaxHeight, initialViewportSize.height(), min), max);
143
144 // 6-7. Resolve width value.
145 if (resultWidth == ViewportArguments::ValueAuto) {
146 if (resultHeight == ViewportArguments::ValueAuto || !initialViewport Size .height())
147 resultWidth = initialViewportSize.width();
148 else
149 resultWidth = resultHeight * (initialViewportSize.width() / init ialViewportSize.height());
150 }
151
152 // 8. Resolve height value.
153 if (resultHeight == ViewportArguments::ValueAuto) {
154 if (!initialViewportSize.width())
155 resultHeight = initialViewportSize.height();
156 else
157 resultHeight = resultWidth * initialViewportSize.height() / init ialViewportSize.width();
158 }
159
160 PageScaleConstraints result;
161 result.minimumScale = resultMinZoom;
162 result.maximumScale = resultMaxZoom;
163 result.initialScale = resultZoom;
164 result.layoutSize.setWidth(resultWidth);
165 result.layoutSize.setHeight(resultHeight);
166 return result;
167 } 127 }
168 128
169 switch (static_cast<int>(resultWidth)) { 129 // 4. Resolve initial width from min/max descriptors.
170 case ViewportArguments::ValueDeviceWidth: 130 if (resultMinWidth != ViewportArguments::ValueAuto || resultMaxWidth != View portArguments::ValueAuto)
171 resultWidth = initialViewportSize.width(); 131 resultWidth = compareIgnoringAuto(resultMinWidth, compareIgnoringAuto(re sultMaxWidth, initialViewportSize.width(), min), max);
172 break; 132
173 case ViewportArguments::ValueDeviceHeight: 133 // 5. Resolve initial height from min/max descriptors.
174 resultWidth = initialViewportSize.height(); 134 if (resultMinHeight != ViewportArguments::ValueAuto || resultMaxHeight != Vi ewportArguments::ValueAuto)
175 break; 135 resultHeight = compareIgnoringAuto(resultMinHeight, compareIgnoringAuto( resultMaxHeight, initialViewportSize.height(), min), max);
136
137 // 6-7. Resolve width value.
138 if (resultWidth == ViewportArguments::ValueAuto) {
139 if (resultHeight == ViewportArguments::ValueAuto || !initialViewportSize .height())
140 resultWidth = initialViewportSize.width();
141 else
142 resultWidth = resultHeight * (initialViewportSize.width() / initialV iewportSize.height());
176 } 143 }
177 144
178 switch (static_cast<int>(resultHeight)) { 145 // 8. Resolve height value.
179 case ViewportArguments::ValueDeviceWidth: 146 if (resultHeight == ViewportArguments::ValueAuto) {
180 resultHeight = initialViewportSize.width(); 147 if (!initialViewportSize.width())
181 break; 148 resultHeight = initialViewportSize.height();
182 case ViewportArguments::ValueDeviceHeight: 149 else
183 resultHeight = initialViewportSize.height(); 150 resultHeight = resultWidth * initialViewportSize.height() / initialV iewportSize.width();
184 break;
185 } 151 }
186 152
187 if (type != ViewportArguments::Implicit) {
188 // Clamp values to a valid range, but not for @viewport since is
189 // not mandated by the specification.
190 resultWidth = clampLengthValue(resultWidth);
191 resultHeight = clampLengthValue(resultHeight);
192 resultZoom = clampScaleValue(resultZoom);
193 resultMinZoom = clampScaleValue(resultMinZoom);
194 resultMaxZoom = clampScaleValue(resultMaxZoom);
195 }
196
197 PageScaleConstraints result;
198
199 // Resolve minimum-scale and maximum-scale values according to spec.
200 if (resultMinZoom == ViewportArguments::ValueAuto)
201 result.minimumScale = float(0.25);
202 else
203 result.minimumScale = resultMinZoom;
204
205 if (resultMaxZoom == ViewportArguments::ValueAuto) {
206 result.maximumScale = float(5.0);
207 result.minimumScale = min(float(5.0), result.minimumScale);
208 } else
209 result.maximumScale = resultMaxZoom;
210 result.maximumScale = max(result.minimumScale, result.maximumScale);
211
212 // Resolve initial-scale value. 153 // Resolve initial-scale value.
213 result.initialScale = resultZoom;
214 if (resultZoom == ViewportArguments::ValueAuto) { 154 if (resultZoom == ViewportArguments::ValueAuto) {
215 result.initialScale = initialViewportSize.width() / defaultWidth;
216 if (resultWidth != ViewportArguments::ValueAuto && resultWidth > 0) 155 if (resultWidth != ViewportArguments::ValueAuto && resultWidth > 0)
217 result.initialScale = initialViewportSize.width() / resultWidth; 156 resultZoom = initialViewportSize.width() / resultWidth;
218 if (resultHeight != ViewportArguments::ValueAuto && resultHeight > 0) { 157 if (resultHeight != ViewportArguments::ValueAuto && resultHeight > 0) {
219 // if 'auto', the initial-scale will be negative here and thus ignor ed. 158 // if 'auto', the initial-scale will be negative here and thus ignor ed.
220 result.initialScale = max<float>(result.initialScale, initialViewpor tSize.height() / resultHeight); 159 resultZoom = max<float>(resultZoom, initialViewportSize.height() / r esultHeight);
221 } 160 }
222 } 161 }
223 162
224 // Constrain initial-scale value to minimum-scale/maximum-scale range.
225 result.initialScale = min(result.maximumScale, max(result.minimumScale, resu lt.initialScale));
226
227 // Resolve width value.
228 if (resultWidth == ViewportArguments::ValueAuto) {
229 if (resultZoom == ViewportArguments::ValueAuto)
230 resultWidth = defaultWidth;
231 else if (resultHeight != ViewportArguments::ValueAuto)
232 resultWidth = resultHeight * (initialViewportSize.width() / initialV iewportSize.height());
233 else
234 resultWidth = initialViewportSize.width() / result.initialScale;
235 }
236
237 // Resolve height value.
238 if (resultHeight == ViewportArguments::ValueAuto)
239 resultHeight = resultWidth * (initialViewportSize.height() / initialView portSize.width());
240
241 if (type == ViewportArguments::ViewportMeta) {
242 // Extend width and height to fill the visual viewport for the resolved initial-scale.
243 resultWidth = max<float>(resultWidth, initialViewportSize.width() / resu lt.initialScale);
244 resultHeight = max<float>(resultHeight, initialViewportSize.height() / r esult.initialScale);
245 }
246
247 result.layoutSize.setWidth(resultWidth);
248 result.layoutSize.setHeight(resultHeight);
249
250 // If user-scalable = no, lock the min/max scale to the computed initial 163 // If user-scalable = no, lock the min/max scale to the computed initial
251 // scale. 164 // scale.
252 if (!resultUserZoom) 165 if (!resultUserZoom)
253 result.maximumScale = result.minimumScale = result.initialScale; 166 resultMinZoom = resultMaxZoom = resultZoom;
254 167
255 // Only set initialScale to a value if it was explicitly set. 168 // Only set initialScale to a value if it was explicitly set.
256 if (resultZoom == ViewportArguments::ValueAuto) 169 if (zoom == ViewportArguments::ValueAuto)
257 result.initialScale = ViewportArguments::ValueAuto; 170 resultZoom = ViewportArguments::ValueAuto;
258 171
172 PageScaleConstraints result;
173 result.minimumScale = resultMinZoom;
174 result.maximumScale = resultMaxZoom;
175 result.initialScale = resultZoom;
176 result.layoutSize.setWidth(resultWidth);
177 result.layoutSize.setHeight(resultHeight);
259 return result; 178 return result;
260 } 179 }
261 180
262 static float numericPrefix(const String& keyString, const String& valueString, D ocument* document, bool* ok = 0) 181 static float numericPrefix(const String& keyString, const String& valueString, D ocument* document, bool* ok = 0)
263 { 182 {
264 size_t parsedLength; 183 size_t parsedLength;
265 float value; 184 float value;
266 if (valueString.is8Bit()) 185 if (valueString.is8Bit())
267 value = charactersToFloat(valueString.characters8(), valueString.length( ), parsedLength); 186 value = charactersToFloat(valueString.characters8(), valueString.length( ), parsedLength);
268 else 187 else
(...skipping 21 matching lines...) Expand all
290 if (equalIgnoringCase(valueString, "device-width")) 209 if (equalIgnoringCase(valueString, "device-width"))
291 return ViewportArguments::ValueDeviceWidth; 210 return ViewportArguments::ValueDeviceWidth;
292 if (equalIgnoringCase(valueString, "device-height")) 211 if (equalIgnoringCase(valueString, "device-height"))
293 return ViewportArguments::ValueDeviceHeight; 212 return ViewportArguments::ValueDeviceHeight;
294 213
295 float value = numericPrefix(keyString, valueString, document); 214 float value = numericPrefix(keyString, valueString, document);
296 215
297 if (value < 0) 216 if (value < 0)
298 return ViewportArguments::ValueAuto; 217 return ViewportArguments::ValueAuto;
299 218
300 return value; 219 return clampLengthValue(value);
301 } 220 }
302 221
303 static float findScaleValue(const String& keyString, const String& valueString, Document* document) 222 static float findScaleValue(const String& keyString, const String& valueString, Document* document)
304 { 223 {
305 // 1) Non-negative number values are translated to <number> values. 224 // 1) Non-negative number values are translated to <number> values.
306 // 2) Negative number values are translated to auto. 225 // 2) Negative number values are translated to auto.
307 // 3) yes is translated to 1.0. 226 // 3) yes is translated to 1.0.
308 // 4) device-width and device-height are translated to 10.0. 227 // 4) device-width and device-height are translated to 10.0.
309 // 5) no and unknown values are translated to 0.0 228 // 5) no and unknown values are translated to 0.0
310 229
311 if (equalIgnoringCase(valueString, "yes")) 230 if (equalIgnoringCase(valueString, "yes"))
312 return 1; 231 return 1;
313 if (equalIgnoringCase(valueString, "no")) 232 if (equalIgnoringCase(valueString, "no"))
314 return 0; 233 return 0;
315 if (equalIgnoringCase(valueString, "device-width")) 234 if (equalIgnoringCase(valueString, "device-width"))
316 return 10; 235 return 10;
317 if (equalIgnoringCase(valueString, "device-height")) 236 if (equalIgnoringCase(valueString, "device-height"))
318 return 10; 237 return 10;
319 238
320 float value = numericPrefix(keyString, valueString, document); 239 float value = numericPrefix(keyString, valueString, document);
321 240
322 if (value < 0) 241 if (value < 0)
323 return ViewportArguments::ValueAuto; 242 return ViewportArguments::ValueAuto;
324 243
325 if (value > 10.0) 244 if (value > 10.0)
326 reportViewportWarning(document, MaximumScaleTooLargeError, String(), Str ing()); 245 reportViewportWarning(document, MaximumScaleTooLargeError, String(), Str ing());
327 246
328 return value; 247 return clampScaleValue(value);
329 } 248 }
330 249
331 static float findUserScalableValue(const String& keyString, const String& valueS tring, Document* document) 250 static float findUserScalableValue(const String& keyString, const String& valueS tring, Document* document)
332 { 251 {
333 // yes and no are used as keywords. 252 // yes and no are used as keywords.
334 // Numbers >= 1, numbers <= -1, device-width and device-height are mapped to yes. 253 // Numbers >= 1, numbers <= -1, device-width and device-height are mapped to yes.
335 // Numbers in the range <-1, 1>, and unknown values, are mapped to no. 254 // Numbers in the range <-1, 1>, and unknown values, are mapped to no.
336 255
337 if (equalIgnoringCase(valueString, "yes")) 256 if (equalIgnoringCase(valueString, "yes"))
338 return 1; 257 return 1;
(...skipping 28 matching lines...) Expand all
367 if (!ok || value < 70 || value > 400) 286 if (!ok || value < 70 || value > 400)
368 return ViewportArguments::ValueAuto; 287 return ViewportArguments::ValueAuto;
369 288
370 return value; 289 return value;
371 } 290 }
372 291
373 void setViewportFeature(const String& keyString, const String& valueString, Docu ment* document, void* data) 292 void setViewportFeature(const String& keyString, const String& valueString, Docu ment* document, void* data)
374 { 293 {
375 ViewportArguments* arguments = static_cast<ViewportArguments*>(data); 294 ViewportArguments* arguments = static_cast<ViewportArguments*>(data);
376 295
377 if (keyString == "width") 296 if (keyString == "width") {
378 arguments->width = findSizeValue(keyString, valueString, document); 297 float width = findSizeValue(keyString, valueString, document);
379 else if (keyString == "height") 298 if (width != ViewportArguments::ValueAuto) {
380 arguments->height = findSizeValue(keyString, valueString, document); 299 arguments->minWidth = ViewportArguments::ValueExtendToZoom;
381 else if (keyString == "initial-scale") 300 arguments->maxWidth = width;
301 }
302 } else if (keyString == "height") {
303 float height = findSizeValue(keyString, valueString, document);
304 if (height != ViewportArguments::ValueAuto) {
305 arguments->minHeight = ViewportArguments::ValueExtendToZoom;
306 arguments->maxHeight = height;
307 }
308 } else if (keyString == "initial-scale") {
382 arguments->zoom = findScaleValue(keyString, valueString, document); 309 arguments->zoom = findScaleValue(keyString, valueString, document);
383 else if (keyString == "minimum-scale") 310 } else if (keyString == "minimum-scale") {
384 arguments->minZoom = findScaleValue(keyString, valueString, document); 311 arguments->minZoom = findScaleValue(keyString, valueString, document);
385 else if (keyString == "maximum-scale") 312 } else if (keyString == "maximum-scale") {
386 arguments->maxZoom = findScaleValue(keyString, valueString, document); 313 arguments->maxZoom = findScaleValue(keyString, valueString, document);
387 else if (keyString == "user-scalable") 314 } else if (keyString == "user-scalable") {
388 arguments->userZoom = findUserScalableValue(keyString, valueString, docu ment); 315 arguments->userZoom = findUserScalableValue(keyString, valueString, docu ment);
389 else if (keyString == "target-densitydpi") { 316 } else if (keyString == "target-densitydpi") {
390 arguments->deprecatedTargetDensityDPI = findTargetDensityDPIValue(keyStr ing, valueString, document); 317 arguments->deprecatedTargetDensityDPI = findTargetDensityDPIValue(keyStr ing, valueString, document);
391 reportViewportWarning(document, TargetDensityDpiUnsupported, String(), S tring()); 318 reportViewportWarning(document, TargetDensityDpiUnsupported, String(), S tring());
392 } else 319 } else {
393 reportViewportWarning(document, UnrecognizedViewportArgumentKeyError, ke yString, String()); 320 reportViewportWarning(document, UnrecognizedViewportArgumentKeyError, ke yString, String());
321 }
394 } 322 }
395 323
396 static const char* viewportErrorMessageTemplate(ViewportErrorCode errorCode) 324 static const char* viewportErrorMessageTemplate(ViewportErrorCode errorCode)
397 { 325 {
398 static const char* const errors[] = { 326 static const char* const errors[] = {
399 "Note that ';' is not a key-value pair separator. The list should be com ma-separated.", 327 "Note that ';' is not a key-value pair separator. The list should be com ma-separated.",
400 "The key \"%replacement1\" is not recognized and ignored.", 328 "The key \"%replacement1\" is not recognized and ignored.",
401 "The value \"%replacement1\" for key \"%replacement2\" is invalid, and h as been ignored.", 329 "The value \"%replacement1\" for key \"%replacement2\" is invalid, and h as been ignored.",
402 "The value \"%replacement1\" for key \"%replacement2\" was truncated to its numeric prefix.", 330 "The value \"%replacement1\" for key \"%replacement2\" was truncated to its numeric prefix.",
403 "The value for key \"maximum-scale\" is out of bounds and the value has been clamped.", 331 "The value for key \"maximum-scale\" is out of bounds and the value has been clamped.",
(...skipping 30 matching lines...) Expand all
434 if (!replacement1.isNull()) 362 if (!replacement1.isNull())
435 message.replace("%replacement1", replacement1); 363 message.replace("%replacement1", replacement1);
436 if (!replacement2.isNull()) 364 if (!replacement2.isNull())
437 message.replace("%replacement2", replacement2); 365 message.replace("%replacement2", replacement2);
438 366
439 // FIXME: This message should be moved off the console once a solution to ht tps://bugs.webkit.org/show_bug.cgi?id=103274 exists. 367 // FIXME: This message should be moved off the console once a solution to ht tps://bugs.webkit.org/show_bug.cgi?id=103274 exists.
440 document->addConsoleMessage(RenderingMessageSource, viewportErrorMessageLeve l(errorCode), message); 368 document->addConsoleMessage(RenderingMessageSource, viewportErrorMessageLeve l(errorCode), message);
441 } 369 }
442 370
443 } // namespace WebCore 371 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698