Diff
Modified: trunk/LayoutTests/ChangeLog (119255 => 119256)
--- trunk/LayoutTests/ChangeLog 2012-06-01 18:10:56 UTC (rev 119255)
+++ trunk/LayoutTests/ChangeLog 2012-06-01 18:24:02 UTC (rev 119256)
@@ -1,3 +1,39 @@
+2012-06-01 Hugo Parente Lima <[email protected]>
+
+ Improve handling of legacy viewport meta tags
+ https://bugs.webkit.org/show_bug.cgi?id=55874
+
+ Reviewed by Adam Barth.
+
+ Add tests and expected results.
+
+ * fast/viewport/viewport-legacy-handheldfriendly-expected.txt: Added.
+ * fast/viewport/viewport-legacy-handheldfriendly.html: Added.
+ * fast/viewport/viewport-legacy-mobileoptimized-2-expected.txt: Added.
+ * fast/viewport/viewport-legacy-mobileoptimized-2.html: Added.
+ * fast/viewport/viewport-legacy-mobileoptimized-3-expected.txt: Added.
+ * fast/viewport/viewport-legacy-mobileoptimized-3.html: Added.
+ * fast/viewport/viewport-legacy-mobileoptimized-expected.txt: Added.
+ * fast/viewport/viewport-legacy-mobileoptimized.html: Added.
+ * fast/viewport/viewport-legacy-ordering-1-expected.txt: Added.
+ * fast/viewport/viewport-legacy-ordering-1.html: Added.
+ * fast/viewport/viewport-legacy-ordering-2-expected.txt: Added.
+ * fast/viewport/viewport-legacy-ordering-2.html: Added.
+ * fast/viewport/viewport-legacy-ordering-3-expected.txt: Added.
+ * fast/viewport/viewport-legacy-ordering-3.html: Added.
+ * fast/viewport/viewport-legacy-ordering-4-expected.txt: Added.
+ * fast/viewport/viewport-legacy-ordering-4.html: Added.
+ * fast/viewport/viewport-legacy-ordering-5-expected.txt: Added.
+ * fast/viewport/viewport-legacy-ordering-5.html: Added.
+ * fast/viewport/viewport-legacy-ordering-6-expected.txt: Added.
+ * fast/viewport/viewport-legacy-ordering-6.html: Added.
+ * fast/viewport/viewport-legacy-ordering-7-expected.txt: Added.
+ * fast/viewport/viewport-legacy-ordering-7.html: Added.
+ * fast/viewport/viewport-legacy-ordering-8-expected.txt: Added.
+ * fast/viewport/viewport-legacy-ordering-8.html: Added.
+ * fast/viewport/viewport-legacy-ordering-9-expected.txt: Added.
+ * fast/viewport/viewport-legacy-ordering-9.html: Added.
+
2012-06-01 Tony Chang <[email protected]>
rename -webkit-flex-order to -webkit-order
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-handheldfriendly-expected.txt (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-handheldfriendly-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-handheldfriendly-expected.txt 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,2 @@
+viewport size 320x352 scale 1.000000 with limits [1.000000, 5.000000] and userScalable -1.000000
+
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-handheldfriendly.html (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-handheldfriendly.html (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-handheldfriendly.html 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,13 @@
+<head>
+ <title>HandheldFriendly Meta with "true".</title>
+ <meta name="HandheldFriendly" content="true">
+ <script>
+ function test() {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.dumpConfigurationForViewport(160, 320, 480, 320, 352);
+ }
+ }
+ </script>
+</head>
+<body _onload_="test();">
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-mobileoptimized-2-expected.txt (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-mobileoptimized-2-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-mobileoptimized-2-expected.txt 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,2 @@
+viewport size 320x352 scale 1.000000 with limits [1.000000, 5.000000] and userScalable -1.000000
+
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-mobileoptimized-2.html (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-mobileoptimized-2.html (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-mobileoptimized-2.html 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,13 @@
+<head>
+ <title>MobileOptimized Meta with "0".</title>
+ <meta name="MobileOptimized" content="0">
+ <script>
+ function test() {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.dumpConfigurationForViewport(160, 320, 480, 320, 352);
+ }
+ }
+ </script>
+</head>
+<body _onload_="test();">
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-mobileoptimized-3-expected.txt (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-mobileoptimized-3-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-mobileoptimized-3-expected.txt 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,2 @@
+viewport size 320x352 scale 1.000000 with limits [1.000000, 5.000000] and userScalable -1.000000
+
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-mobileoptimized-3.html (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-mobileoptimized-3.html (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-mobileoptimized-3.html 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,14 @@
+<head>
+ <title>MobileOptimized Meta with "480".</title>
+ <!-- The content value should be ignored to match current implementations -->
+ <meta name="MobileOptimized" content="480">
+ <script>
+ function test() {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.dumpConfigurationForViewport(160, 320, 480, 320, 352);
+ }
+ }
+ </script>
+</head>
+<body _onload_="test();">
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-mobileoptimized-expected.txt (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-mobileoptimized-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-mobileoptimized-expected.txt 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,2 @@
+viewport size 320x352 scale 1.000000 with limits [1.000000, 5.000000] and userScalable -1.000000
+
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-mobileoptimized.html (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-mobileoptimized.html (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-mobileoptimized.html 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,13 @@
+<head>
+ <title>MobileOptimized Meta without content".</title>
+ <meta name="MobileOptimized" content="">
+ <script>
+ function test() {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.dumpConfigurationForViewport(160, 320, 480, 320, 352);
+ }
+ }
+ </script>
+</head>
+<body _onload_="test();">
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-1-expected.txt (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-1-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-1-expected.txt 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,2 @@
+viewport size 300x330 scale 1.066667 with limits [1.066667, 5.000000] and userScalable -1.000000
+
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-1.html (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-1.html (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-1.html 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,14 @@
+<head>
+ <title>Viewport, HandheldFriendly Meta.</title>
+ <meta name="viewport" content="width=300">
+ <meta name="HandheldFriendly" content="true">
+ <script>
+ function test() {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.dumpConfigurationForViewport(160, 320, 480, 320, 352);
+ }
+ }
+ </script>
+</head>
+<body _onload_="test();">
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-2-expected.txt (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-2-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-2-expected.txt 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,2 @@
+viewport size 300x330 scale 1.066667 with limits [1.066667, 5.000000] and userScalable -1.000000
+
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-2.html (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-2.html (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-2.html 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,14 @@
+<head>
+ <title>HandheldFriendly, Viewport Meta.</title>
+ <meta name="HandheldFriendly" content="true">
+ <meta name="viewport" content="width=300">
+ <script>
+ function test() {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.dumpConfigurationForViewport(160, 320, 480, 320, 352);
+ }
+ }
+ </script>
+</head>
+<body _onload_="test();">
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-3-expected.txt (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-3-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-3-expected.txt 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,2 @@
+viewport size 300x330 scale 1.066667 with limits [1.066667, 5.000000] and userScalable -1.000000
+
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-3.html (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-3.html (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-3.html 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,14 @@
+<head>
+ <title>Viewport, MobileOptimized Meta.</title>
+ <meta name="viewport" content="width=300">
+ <meta name="MobileOptimized" content="176">
+ <script>
+ function test() {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.dumpConfigurationForViewport(160, 320, 480, 320, 352);
+ }
+ }
+ </script>
+</head>
+<body _onload_="test();">
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-4-expected.txt (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-4-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-4-expected.txt 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,2 @@
+viewport size 300x330 scale 1.066667 with limits [1.066667, 5.000000] and userScalable -1.000000
+
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-4.html (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-4.html (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-4.html 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,14 @@
+<head>
+ <title>MobileOptimized, Viewport Meta.</title>
+ <meta name="MobileOptimized" content="176">
+ <meta name="viewport" content="width=300">
+ <script>
+ function test() {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.dumpConfigurationForViewport(160, 320, 480, 320, 352);
+ }
+ }
+ </script>
+</head>
+<body _onload_="test();">
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-5-expected.txt (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-5-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-5-expected.txt 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,2 @@
+viewport size 320x352 scale 1.000000 with limits [1.000000, 5.000000] and userScalable -1.000000
+
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-5.html (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-5.html (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-5.html 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,14 @@
+<head>
+ <title>HandheldFriendly, MobileOptimized Meta.</title>
+ <meta name="HandheldFriendly" content="true">
+ <meta name="MobileOptimized" content="480">
+ <script>
+ function test() {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.dumpConfigurationForViewport(160, 320, 480, 320, 352);
+ }
+ }
+ </script>
+</head>
+<body _onload_="test();">
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-6-expected.txt (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-6-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-6-expected.txt 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,2 @@
+viewport size 320x352 scale 1.000000 with limits [1.000000, 5.000000] and userScalable -1.000000
+
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-6.html (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-6.html (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-6.html 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,14 @@
+<head>
+ <title>MobileOptimized, HandheldFriendly Meta.</title>
+ <meta name="MobileOptimized" content="480">
+ <meta name="HandheldFriendly" content="true">
+ <script>
+ function test() {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.dumpConfigurationForViewport(160, 320, 480, 320, 352);
+ }
+ }
+ </script>
+</head>
+<body _onload_="test();">
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-7-expected.txt (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-7-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-7-expected.txt 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,2 @@
+viewport size 300x330 scale 1.066667 with limits [1.066667, 5.000000] and userScalable -1.000000
+
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-7.html (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-7.html (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-7.html 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,15 @@
+<head>
+ <title>Viewport, MobileOptimized, HandheldFriendly Meta.</title>
+ <meta name="viewport" content="width = 300">
+ <meta name="MobileOptimized" content="480">
+ <meta name="HandheldFriendly" content="true">
+ <script>
+ function test() {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.dumpConfigurationForViewport(160, 320, 480, 320, 352);
+ }
+ }
+ </script>
+</head>
+<body _onload_="test();">
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-8-expected.txt (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-8-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-8-expected.txt 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,2 @@
+viewport size 300x330 scale 1.066667 with limits [1.066667, 5.000000] and userScalable -1.000000
+
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-8.html (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-8.html (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-8.html 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,15 @@
+<head>
+ <title>MobileOptimized, Viewport, HandheldFriendly Meta.</title>
+ <meta name="MobileOptimized" content="480">
+ <meta name="viewport" content="width = 300">
+ <meta name="HandheldFriendly" content="true">
+ <script>
+ function test() {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.dumpConfigurationForViewport(160, 320, 480, 320, 352);
+ }
+ }
+ </script>
+</head>
+<body _onload_="test();">
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-9-expected.txt (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-9-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-9-expected.txt 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,2 @@
+viewport size 300x330 scale 1.066667 with limits [1.066667, 5.000000] and userScalable -1.000000
+
Added: trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-9.html (0 => 119256)
--- trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-9.html (rev 0)
+++ trunk/LayoutTests/fast/viewport/viewport-legacy-ordering-9.html 2012-06-01 18:24:02 UTC (rev 119256)
@@ -0,0 +1,15 @@
+<head>
+ <title>MobileOptimized, HandheldFriendly, Viewport Meta.</title>
+ <meta name="MobileOptimized" content="480">
+ <meta name="HandheldFriendly" content="true">
+ <meta name="viewport" content="width = 300">
+ <script>
+ function test() {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.dumpConfigurationForViewport(160, 320, 480, 320, 352);
+ }
+ }
+ </script>
+</head>
+<body _onload_="test();">
Modified: trunk/Source/WebCore/ChangeLog (119255 => 119256)
--- trunk/Source/WebCore/ChangeLog 2012-06-01 18:10:56 UTC (rev 119255)
+++ trunk/Source/WebCore/ChangeLog 2012-06-01 18:24:02 UTC (rev 119256)
@@ -1,3 +1,49 @@
+2012-06-01 Hugo Parente Lima <[email protected]>
+
+ Improve handling of legacy viewport meta tags
+ https://bugs.webkit.org/show_bug.cgi?id=55874
+
+ Reviewed by Adam Barth.
+
+ We now support MobileOptimized and HandheldFriendly as well.
+
+ We set width equal to device-width for HandheldFriendly and
+ for MobileOptimized, the content value of MobileOptimized is
+ ignored and the initial-scale set to 1 to fit Android behavior.
+
+ The prioritizing is done the same way as on Windows Phone 7:
+
+ XHTML Mobile Profile found
+ HandheldFriendly
+ MobileOptimized (overrides HandheldFriendly)
+ Viewport (overrides all above)
+
+ Original patch by Kenneth Rohde Christiansen.
+
+ Tests: fast/viewport/viewport-legacy-handheldfriendly.html
+ fast/viewport/viewport-legacy-mobileoptimized-2.html
+ fast/viewport/viewport-legacy-mobileoptimized-3.html
+ fast/viewport/viewport-legacy-mobileoptimized.html
+ fast/viewport/viewport-legacy-ordering-1.html
+ fast/viewport/viewport-legacy-ordering-2.html
+ fast/viewport/viewport-legacy-ordering-3.html
+ fast/viewport/viewport-legacy-ordering-4.html
+ fast/viewport/viewport-legacy-ordering-5.html
+ fast/viewport/viewport-legacy-ordering-6.html
+ fast/viewport/viewport-legacy-ordering-7.html
+ fast/viewport/viewport-legacy-ordering-8.html
+ fast/viewport/viewport-legacy-ordering-9.html
+
+ * dom/Document.cpp:
+ (WebCore::Document::setDocType):
+ (WebCore::Document::processViewport): Add an origin parameter to
+ tell what is changing the viewport.
+ * dom/Document.h:
+ (Document):
+ * dom/ViewportArguments.h:
+ * html/HTMLMetaElement.cpp:
+ (WebCore::HTMLMetaElement::process):
+
2012-06-01 Tony Chang <[email protected]>
rename -webkit-flex-order to -webkit-order
Modified: trunk/Source/WebCore/dom/Document.cpp (119255 => 119256)
--- trunk/Source/WebCore/dom/Document.cpp 2012-06-01 18:10:56 UTC (rev 119255)
+++ trunk/Source/WebCore/dom/Document.cpp 2012-06-01 18:24:02 UTC (rev 119256)
@@ -782,7 +782,7 @@
#if USE(LEGACY_VIEWPORT_ADAPTION)
ASSERT(m_viewportArguments.type == ViewportArguments::Implicit);
if (m_docType->publicId().startsWith("-//wapforum//dtd xhtml mobile 1.", /* caseSensitive */ false))
- processViewport("width=device-width, height=device-height, initial-scale=1");
+ processViewport("width=device-width, height=device-height", ViewportArguments::XHTMLMobileProfile);
#endif
}
// Doctype affects the interpretation of the stylesheets.
@@ -3036,11 +3036,14 @@
}
}
-void Document::processViewport(const String& features)
+void Document::processViewport(const String& features, ViewportArguments::Type origin)
{
ASSERT(!features.isNull());
- m_viewportArguments = ViewportArguments(ViewportArguments::ViewportMeta);
+ if (origin < m_viewportArguments.type)
+ return;
+
+ m_viewportArguments = ViewportArguments(origin);
processArguments(features, (void*)&m_viewportArguments, &setViewportFeature);
updateViewportArguments();
Modified: trunk/Source/WebCore/dom/Document.h (119255 => 119256)
--- trunk/Source/WebCore/dom/Document.h 2012-06-01 18:10:56 UTC (rev 119255)
+++ trunk/Source/WebCore/dom/Document.h 2012-06-01 18:24:02 UTC (rev 119256)
@@ -834,7 +834,7 @@
* @param content The header value (value of the meta tag's "content" attribute)
*/
void processHttpEquiv(const String& equiv, const String& content);
- void processViewport(const String& features);
+ void processViewport(const String& features, ViewportArguments::Type origin);
void updateViewportArguments();
void processReferrerPolicy(const String& policy);
Modified: trunk/Source/WebCore/dom/ViewportArguments.h (119255 => 119256)
--- trunk/Source/WebCore/dom/ViewportArguments.h 2012-06-01 18:10:56 UTC (rev 119255)
+++ trunk/Source/WebCore/dom/ViewportArguments.h 2012-06-01 18:24:02 UTC (rev 119256)
@@ -57,7 +57,13 @@
struct ViewportArguments {
enum Type {
+ // These are ordered in increasing importance.
Implicit,
+#if USE(LEGACY_VIEWPORT_ADAPTION)
+ XHTMLMobileProfile,
+ HandheldFriendlyMeta,
+ MobileOptimizedMeta,
+#endif
ViewportMeta
} type;
Modified: trunk/Source/WebCore/html/HTMLMetaElement.cpp (119255 => 119256)
--- trunk/Source/WebCore/html/HTMLMetaElement.cpp 2012-06-01 18:10:56 UTC (rev 119255)
+++ trunk/Source/WebCore/html/HTMLMetaElement.cpp 2012-06-01 18:24:02 UTC (rev 119256)
@@ -72,10 +72,15 @@
return;
if (equalIgnoringCase(name(), "viewport"))
- document()->processViewport(contentValue);
-
- if (equalIgnoringCase(name(), "referrer"))
+ document()->processViewport(contentValue, ViewportArguments::ViewportMeta);
+ else if (equalIgnoringCase(name(), "referrer"))
document()->processReferrerPolicy(contentValue);
+#if USE(LEGACY_VIEWPORT_ADAPTION)
+ else if (equalIgnoringCase(name(), "handheldfriendly") && equalIgnoringCase(contentValue, "true"))
+ document()->processViewport("width=device-width", ViewportArguments::HandheldFriendlyMeta);
+ else if (equalIgnoringCase(name(), "mobileoptimized"))
+ document()->processViewport("width=device-width, initial-scale=1", ViewportArguments::MobileOptimizedMeta);
+#endif
// Get the document to process the tag, but only if we're actually part of DOM tree (changing a meta tag while
// it's not in the tree shouldn't have any effect on the document)