Changeset 64764 in webkit
- Timestamp:
- Aug 5, 2010 10:50:27 AM (14 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r64763 r64764 1 2010-08-05 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org> 2 3 Reviewed by Simon Hausmann. 4 5 Make the viewport meta tag parser support the Android 6 target-densitydpi extension. 7 http://webkit.org/b/43492 8 9 http://developer.android.com/reference/android/webkit/WebView.html 10 Section 'Building web pages to support different screen densities' 11 12 * dom/ViewportArguments.cpp: 13 (WebCore::setViewportFeature): 14 (WebCore::viewportErrorMessageTemplate): 15 * dom/ViewportArguments.h: 16 (WebCore::): 17 (WebCore::ViewportArguments::ViewportArguments): 18 (WebCore::ViewportArguments::hasCustomArgument): 19 1 20 2010-08-05 Jian Li <jianli@chromium.org> 2 21 -
trunk/WebCore/dom/ViewportArguments.cpp
r61985 r64764 54 54 if (document->page()) 55 55 value = document->page()->chrome()->windowRect().height(); 56 } else if (equalIgnoringCase(valueString, "device-dpi")) { 57 didUseConstants = true; 58 // Default of today is 160dpi, resulting in a scaleFactor of 1.0. 59 if (document->page()) 60 value = 160 * document->page()->chrome()->scaleFactor(); 61 } else if (equalIgnoringCase(valueString, "low-dpi")) { 62 didUseConstants = true; 63 value = 120; 64 } else if (equalIgnoringCase(valueString, "medium-dpi")) { 65 didUseConstants = true; 66 value = 160; 67 } else if (equalIgnoringCase(valueString, "high-dpi")) { 68 didUseConstants = true; 69 value = 240; 56 70 } else if (equalIgnoringCase(valueString, "default")) // This allows us to distinguish the omission of a key from asking for the default value. 57 71 value = -2; … … 81 95 else if (document->page() && value == document->page()->chrome()->windowRect().height() && !didUseConstants) 82 96 reportViewportWarning(document, DeviceHeightShouldBeUsedWarning, keyString); 83 84 97 arguments->height = value; 98 } else if (keyString == "target-densitydpi" || keyString == "target-densityDpi") { 99 if (!didUseConstants && (value < 70 || value > 400)) 100 reportViewportWarning(document, TargetDensityDpiTooSmallOrLargeError, keyString); 101 arguments->targetDensityDpi = value; 85 102 } else 86 103 reportViewportWarning(document, UnrecognizedViewportArgumentError, keyString); … … 89 106 static const char* viewportErrorMessageTemplate(ViewportErrorCode errorCode) 90 107 { 91 static const char* const errors[] = { 108 static const char* const errors[] = { 92 109 "Viewport width or height set to physical device width, try using \"device-width\" constant instead for future compatibility.", 93 110 "Viewport height or height set to physical device height, try using \"device-height\" constant instead for future compatibility.", 94 111 "Viewport argument \"%replacement\" not recognized. Content ignored.", 95 "Viewport maximum-scale cannot be larger than 10.0. The maximum-scale will be set to 10.0." 112 "Viewport maximum-scale cannot be larger than 10.0. The maximum-scale will be set to 10.0.", 113 "Viewport target-densitydpi has to take a number between 70 and 400 as a valid target dpi, try using \"device-dpi\", \"low-dpi\", \"medium-dpi\" or \"high-dpi\" instead for future compatibility." 96 114 }; 97 115 -
trunk/WebCore/dom/ViewportArguments.h
r57775 r64764 36 36 DeviceHeightShouldBeUsedWarning, 37 37 UnrecognizedViewportArgumentError, 38 MaximumScaleTooLargeError 38 MaximumScaleTooLargeError, 39 TargetDensityDpiTooSmallOrLargeError 39 40 }; 40 41 … … 49 50 , width(ValueUndefined) 50 51 , height(ValueUndefined) 52 , targetDensityDpi(ValueUndefined) 51 53 , userScalable(ValueUndefined) 52 54 { … … 58 60 float width; 59 61 float height; 62 float targetDensityDpi; 60 63 61 64 float userScalable; … … 63 66 bool hasCustomArgument() const 64 67 { 65 return initialScale != ValueUndefined || minimumScale != ValueUndefined || maximumScale != ValueUndefined || width != ValueUndefined || height != ValueUndefined || userScalable != ValueUndefined ;68 return initialScale != ValueUndefined || minimumScale != ValueUndefined || maximumScale != ValueUndefined || width != ValueUndefined || height != ValueUndefined || userScalable != ValueUndefined || targetDensityDpi != ValueUndefined; 66 69 } 67 70 };
Note: See TracChangeset
for help on using the changeset viewer.