| Differences between
and this patch
- a/Source/WebCore/ChangeLog +27 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2012-12-12  Tim Volodine  <timvolodine@google.com>
2
3
        Text Autosizing: Work out what to do about form controls
4
        https://bugs.webkit.org/show_bug.cgi?id=102560
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Disallow autosizing of form input controls like buttons, text input fields, selection controls, radio buttons
9
        and check boxes. This is a short term solution to avoid inconsistent autosizing of form controls (which is
10
        worse than not autosizing at all).
11
12
        Tests: fast/text-autosizing/form-controls-boosting-button-textarea-input-elements.html
13
               fast/text-autosizing/form-controls-boosting-checkbox-input-element.html
14
               fast/text-autosizing/form-controls-boosting-radio-input-element.html
15
               fast/text-autosizing/form-controls-boosting-select-element.html
16
17
        * rendering/TextAutosizer.cpp:
18
        (WebCore):
19
        (WebCore::TextAutosizer::containerShouldBeAutosized):
20
        (WebCore::TextAutosizer::contentHeightIsConstrained):
21
        (WebCore::TextAutosizer::processContainer):
22
        (WebCore::TextAutosizer::isAutosizingContainer):
23
        (WebCore::TextAutosizer::containerContainsTags):
24
        (WebCore::TextAutosizer::measureDescendantTextWidth):
25
        (WebCore::TextAutosizer::findDeepestBlockContainingAllText):
26
        * rendering/TextAutosizer.h:
27
1
2012-12-04  Antoine Quint  <graouts@apple.com>
28
2012-12-04  Antoine Quint  <graouts@apple.com>
2
29
3
        TextTrack's .kind property should return lower-case values
30
        TextTrack's .kind property should return lower-case values
- a/Source/WebCore/rendering/TextAutosizer.cpp -3 / +50 lines
Lines 25-30 a/Source/WebCore/rendering/TextAutosizer.cpp_sec1
25
#include "TextAutosizer.h"
25
#include "TextAutosizer.h"
26
26
27
#include "Document.h"
27
#include "Document.h"
28
#include "HTMLElement.h"
28
#include "InspectorInstrumentation.h"
29
#include "InspectorInstrumentation.h"
29
#include "RenderObject.h"
30
#include "RenderObject.h"
30
#include "RenderStyle.h"
31
#include "RenderStyle.h"
Lines 35-47 a/Source/WebCore/rendering/TextAutosizer.cpp_sec2
35
36
36
#include <algorithm>
37
#include <algorithm>
37
38
39
#include <wtf/StdLibExtras.h>
40
38
namespace WebCore {
41
namespace WebCore {
39
42
43
using namespace HTMLNames;
44
40
struct TextAutosizingWindowInfo {
45
struct TextAutosizingWindowInfo {
41
    IntSize windowSize;
46
    IntSize windowSize;
42
    IntSize minLayoutSize;
47
    IntSize minLayoutSize;
43
};
48
};
44
49
50
51
static const Vector<QualifiedName>& formInputTags()
52
{
53
    // Returns the tags for the form input elements.
54
    DEFINE_STATIC_LOCAL(Vector<QualifiedName>, formInputTags, ());
55
    if (formInputTags.isEmpty()) {
56
        formInputTags.append(inputTag);
57
        formInputTags.append(textareaTag);
58
        formInputTags.append(buttonTag);
59
        formInputTags.append(selectTag);
60
    }
61
    return formInputTags;
62
}
63
45
TextAutosizer::TextAutosizer(Document* document)
64
TextAutosizer::TextAutosizer(Document* document)
46
    : m_document(document)
65
    : m_document(document)
47
{
66
{
Lines 119-125 void TextAutosizer::processCluster(RenderBlock* cluster, RenderBlock* container, a/Source/WebCore/rendering/TextAutosizer.cpp_sec3
119
    processContainer(multiplier, container, subtreeRoot, windowInfo);
138
    processContainer(multiplier, container, subtreeRoot, windowInfo);
120
}
139
}
121
140
122
static bool contentHeightIsConstrained(const RenderBlock* container)
141
bool TextAutosizer::containerShouldBeAutosized(const RenderBlock* container)
142
{
143
    if (containerContainsTags(container, formInputTags()))
144
        return false;
145
146
    return !contentHeightIsConstrained(container);
147
}
148
149
bool TextAutosizer::contentHeightIsConstrained(const RenderBlock* container)
123
{
150
{
124
    // FIXME: Propagate constrainedness down the tree, to avoid inefficiently walking back up from each box.
151
    // FIXME: Propagate constrainedness down the tree, to avoid inefficiently walking back up from each box.
125
    // FIXME: This code needs to take into account vertical writing modes.
152
    // FIXME: This code needs to take into account vertical writing modes.
Lines 143-149 void TextAutosizer::processContainer(float multiplier, RenderBlock* container, R a/Source/WebCore/rendering/TextAutosizer.cpp_sec4
143
{
170
{
144
    ASSERT(isAutosizingContainer(container));
171
    ASSERT(isAutosizingContainer(container));
145
172
146
    float localMultiplier = contentHeightIsConstrained(container) ? 1 : multiplier;
173
    float localMultiplier = containerShouldBeAutosized(container) ? multiplier : 1;
147
174
148
    RenderObject* descendant = nextInPreOrderSkippingDescendantsOfContainers(subtreeRoot, subtreeRoot);
175
    RenderObject* descendant = nextInPreOrderSkippingDescendantsOfContainers(subtreeRoot, subtreeRoot);
149
    while (descendant) {
176
    while (descendant) {
Lines 211-216 bool TextAutosizer::isAutosizingContainer(const RenderObject* renderer) a/Source/WebCore/rendering/TextAutosizer.cpp_sec5
211
        return false;
238
        return false;
212
    if (renderer->isListItem())
239
    if (renderer->isListItem())
213
        return renderer->isFloating() || renderer->isOutOfFlowPositioned();
240
        return renderer->isFloating() || renderer->isOutOfFlowPositioned();
241
    // Avoid creating containers for text within text controls, buttons, or <select> dropdowns.
242
    Node* parentNode = renderer->parent() ? renderer->parent()->generatingNode() : 0;
243
    if (parentNode && parentNode->isElementNode() && formInputTags().contains(toElement(parentNode)->tagQName()))
244
        return false;
245
214
    return true;
246
    return true;
215
}
247
}
216
248
Lines 271-279 bool TextAutosizer::clusterShouldBeAutosized(const RenderBlock* lowestCommonAnce a/Source/WebCore/rendering/TextAutosizer.cpp_sec6
271
    return false;
303
    return false;
272
}
304
}
273
305
306
bool TextAutosizer::containerContainsTags(const RenderBlock* container, const Vector<QualifiedName>& tags)
307
{
308
    const RenderObject* renderer = container;
309
    while (renderer) {
310
        const Node* rendererNode = renderer->node();
311
        if (rendererNode && rendererNode->isElementNode()) {
312
            if (tags.contains(toElement(rendererNode)->tagQName()))
313
                return true;
314
        }
315
        renderer = nextInPreOrderSkippingDescendantsOfContainers(renderer, container);
316
    }
317
318
    return false;
319
}
320
274
void TextAutosizer::measureDescendantTextWidth(const RenderBlock* container, float minTextWidth, float& textWidth)
321
void TextAutosizer::measureDescendantTextWidth(const RenderBlock* container, float minTextWidth, float& textWidth)
275
{
322
{
276
    bool skipLocalText = contentHeightIsConstrained(container);
323
    bool skipLocalText = !containerShouldBeAutosized(container);
277
324
278
    RenderObject* descendant = nextInPreOrderSkippingDescendantsOfContainers(container, container);
325
    RenderObject* descendant = nextInPreOrderSkippingDescendantsOfContainers(container, container);
279
    while (descendant) {
326
    while (descendant) {
- a/Source/WebCore/rendering/TextAutosizer.h +4 lines
Lines 28-33 a/Source/WebCore/rendering/TextAutosizer.h_sec1
28
28
29
#if ENABLE(TEXT_AUTOSIZING)
29
#if ENABLE(TEXT_AUTOSIZING)
30
30
31
#include "HTMLNames.h"
31
#include "IntSize.h"
32
#include "IntSize.h"
32
#include <wtf/Noncopyable.h>
33
#include <wtf/Noncopyable.h>
33
#include <wtf/PassOwnPtr.h>
34
#include <wtf/PassOwnPtr.h>
Lines 71-76 private: a/Source/WebCore/rendering/TextAutosizer.h_sec2
71
    static bool isAutosizingCluster(const RenderBlock*);
72
    static bool isAutosizingCluster(const RenderBlock*);
72
73
73
    static bool clusterShouldBeAutosized(const RenderBlock* lowestCommonAncestor, float commonAncestorWidth);
74
    static bool clusterShouldBeAutosized(const RenderBlock* lowestCommonAncestor, float commonAncestorWidth);
75
    static bool containerShouldBeAutosized(const RenderBlock* container);
76
    static bool contentHeightIsConstrained(const RenderBlock* container);
77
    static bool containerContainsTags(const RenderBlock* cluster, const Vector<QualifiedName>& tags);
74
    static void measureDescendantTextWidth(const RenderBlock* container, float minTextWidth, float& textWidth);
78
    static void measureDescendantTextWidth(const RenderBlock* container, float minTextWidth, float& textWidth);
75
79
76
    // Use to traverse the tree of descendants, excluding descendants of containers (but returning the containers themselves).
80
    // Use to traverse the tree of descendants, excluding descendants of containers (but returning the containers themselves).
- a/LayoutTests/ChangeLog +19 lines
Lines 1-3 a/LayoutTests/ChangeLog_sec1
1
2012-12-12  Tim Volodine  <timvolodine@google.com>
2
3
        Text Autosizing: Work out what to do about form controls
4
        https://bugs.webkit.org/show_bug.cgi?id=102560
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Tests for form input elements autosizing. Added tests to check that various kinds of form elements
9
        don't get autosized, i.e. buttons, textareas, check boxes, radio button and selection menus.
10
11
        * fast/text-autosizing/form-controls-boosting-button-textarea-input-elements-expected.html: Added.
12
        * fast/text-autosizing/form-controls-boosting-button-textarea-input-elements.html: Added.
13
        * fast/text-autosizing/form-controls-boosting-checkbox-input-element-expected.html: Added.
14
        * fast/text-autosizing/form-controls-boosting-checkbox-input-element.html: Added.
15
        * fast/text-autosizing/form-controls-boosting-radio-input-element-expected.html: Added.
16
        * fast/text-autosizing/form-controls-boosting-radio-input-element.html: Added.
17
        * fast/text-autosizing/form-controls-boosting-select-element-expected.html: Added.
18
        * fast/text-autosizing/form-controls-boosting-select-element.html: Added.
19
1
2012-12-04  Antoine Quint  <graouts@apple.com>
20
2012-12-04  Antoine Quint  <graouts@apple.com>
2
21
3
        TextTrack's .kind property should return lower-case values
22
        TextTrack's .kind property should return lower-case values
- a/LayoutTests/fast/text-autosizing/form-controls-boosting-button-input-elements-expected.html +44 lines
Line 0 a/LayoutTests/fast/text-autosizing/form-controls-boosting-button-input-elements-expected.html_sec1
1
<!DOCTYPE html>
2
<html>
3
<head>
4
5
<meta name="viewport" content="width=800">
6
<style>
7
  body {
8
    width: 800px;
9
    margin: 0;
10
    overflow-y: hidden;
11
  }
12
</style>
13
14
</head>
15
<body>
16
17
<div style="font-size: 2.5rem">
18
    This tests the autosizing of a button input element. This paragraph should be autosized, while
19
    the buttons below should not be autosized. Lorem ipsum dolor sit amet, consectetur adipisicing
20
    elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
21
</div>
22
23
<div>
24
<form action="">
25
    <div style="font-size: 2.5rem">
26
        This text should be autosized, while the input controls below should not.
27
    </div>
28
    <div>
29
        <input type="submit" value="Find">
30
    </div>
31
    <div>
32
        <input type="button" value="Button">
33
    </div>
34
    <div>
35
        <input type="reset" value="Reset">
36
    </div>
37
    <div>
38
        <button>InlineButton</button>
39
    </div>
40
</form>
41
</div>
42
43
</body>
44
</html>
- a/LayoutTests/fast/text-autosizing/form-controls-boosting-button-input-elements.html +53 lines
Line 0 a/LayoutTests/fast/text-autosizing/form-controls-boosting-button-input-elements.html_sec1
1
<!DOCTYPE html>
2
<html>
3
<head>
4
5
<meta name="viewport" content="width=800">
6
<style>
7
  body {
8
    width: 800px;
9
    margin: 0;
10
    overflow-y: hidden;
11
  }
12
</style>
13
14
<script>
15
if (window.internals) {
16
    window.internals.settings.setTextAutosizingEnabled(true);
17
    window.internals.settings.setTextAutosizingWindowSizeOverride(320, 480);
18
} else if (window.console && console.warn) {
19
    console.warn("This test depends on the Text Autosizing setting being true, so run it in DumpRenderTree, or manually enable Text Autosizing, and either use a mobile device with 320px device-width (like Nexus S or iPhone), or define HACK_FORCE_TEXT_AUTOSIZING_ON_DESKTOP.");
20
}
21
</script>
22
23
</head>
24
<body>
25
26
<div>
27
    This tests the autosizing of a button input element. This paragraph should be autosized, while
28
    the buttons below should not be autosized. Lorem ipsum dolor sit amet, consectetur adipisicing
29
    elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
30
</div>
31
32
<div>
33
<form action="">
34
    <div>
35
        This text should be autosized, while the input controls below should not.
36
    </div>
37
    <div>
38
        <input type="submit" value="Find">
39
    </div>
40
    <div>
41
        <input type="button" value="Button">
42
    </div>
43
    <div>
44
        <input type="reset" value="Reset">
45
    </div>
46
    <div>
47
        <button>InlineButton</button>
48
    </div>
49
</form>
50
</div>
51
52
</body>
53
</html>
- a/LayoutTests/fast/text-autosizing/form-controls-boosting-checkbox-input-element-expected.html +33 lines
Line 0 a/LayoutTests/fast/text-autosizing/form-controls-boosting-checkbox-input-element-expected.html_sec1
1
<!DOCTYPE html>
2
<html>
3
<head>
4
5
<meta name="viewport" content="width=800">
6
<style>
7
  body {
8
    width: 800px;
9
    margin: 0;
10
    overflow-y: hidden;
11
  }
12
</style>
13
14
15
</head>
16
<body>
17
18
<div style="font-size: 2.5rem">
19
    This tests the autosizing of check boxes. This paragraph should be autosized, while
20
    the check boxes below and the surrounding text should not be autosized.
21
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
22
    incididunt ut labore et dolore magna aliqua.
23
</div>
24
<div>
25
<form action="">
26
    Check one or more:
27
    <input type="checkbox" name="vehicle" value="Bike">I have a bike<br/>
28
    <input type="checkbox" name="vehicle" value="Car">I have a car <br/>
29
</form>
30
</div>
31
32
</body>
33
</html>
- a/LayoutTests/fast/text-autosizing/form-controls-boosting-checkbox-input-element.html +41 lines
Line 0 a/LayoutTests/fast/text-autosizing/form-controls-boosting-checkbox-input-element.html_sec1
1
<!DOCTYPE html>
2
<html>
3
<head>
4
5
<meta name="viewport" content="width=800">
6
<style>
7
  body {
8
    width: 800px;
9
    margin: 0;
10
    overflow-y: hidden;
11
  }
12
</style>
13
14
<script>
15
if (window.internals) {
16
    window.internals.settings.setTextAutosizingEnabled(true);
17
    window.internals.settings.setTextAutosizingWindowSizeOverride(320, 480);
18
} else if (window.console && console.warn) {
19
    console.warn("This test depends on the Text Autosizing setting being true, so run it in DumpRenderTree, or manually enable Text Autosizing, and either use a mobile device with 320px device-width (like Nexus S or iPhone), or define HACK_FORCE_TEXT_AUTOSIZING_ON_DESKTOP.");
20
}
21
</script>
22
23
</head>
24
<body>
25
26
<div>
27
    This tests the autosizing of check boxes. This paragraph should be autosized, while
28
    the check boxes below and the surrounding text should not be autosized.
29
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
30
    incididunt ut labore et dolore magna aliqua.
31
</div>
32
<div>
33
<form action="">
34
    Check one or more:
35
    <input type="checkbox" name="vehicle" value="Bike">I have a bike<br/>
36
    <input type="checkbox" name="vehicle" value="Car">I have a car <br/>
37
</form>
38
</div>
39
40
</body>
41
</html>
- a/LayoutTests/fast/text-autosizing/form-controls-boosting-radio-input-element-expected.html +35 lines
Line 0 a/LayoutTests/fast/text-autosizing/form-controls-boosting-radio-input-element-expected.html_sec1
1
<!DOCTYPE html>
2
<html>
3
<head>
4
5
<meta name="viewport" content="width=800">
6
<style>
7
  body {
8
    width: 800px;
9
    margin: 0;
10
    overflow-y: hidden;
11
  }
12
</style>
13
14
15
</head>
16
<body>
17
18
<div style="font-size: 2.5rem">
19
    This tests the autosizing of radio buttons. This paragraph should be autosized, while
20
    the radio buttons below and the surrounding text should not be autosized.
21
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
22
    incididunt ut labore et dolore magna aliqua.
23
</div>
24
<div>
25
<form action="">
26
    Select one of:<br/>
27
    <input type="radio" id="radio1" checked="checked"/>
28
    <label for="radio1">Radio1</label><br/>
29
    <input type="radio" id="radio2"/>
30
    <label for="radio2">Radio2</label><br/>
31
</form>
32
</div>
33
34
</body>
35
</html>
- a/LayoutTests/fast/text-autosizing/form-controls-boosting-radio-input-element.html +43 lines
Line 0 a/LayoutTests/fast/text-autosizing/form-controls-boosting-radio-input-element.html_sec1
1
<!DOCTYPE html>
2
<html>
3
<head>
4
5
<meta name="viewport" content="width=800">
6
<style>
7
  body {
8
    width: 800px;
9
    margin: 0;
10
    overflow-y: hidden;
11
  }
12
</style>
13
14
<script>
15
if (window.internals) {
16
    window.internals.settings.setTextAutosizingEnabled(true);
17
    window.internals.settings.setTextAutosizingWindowSizeOverride(320, 480);
18
} else if (window.console && console.warn) {
19
    console.warn("This test depends on the Text Autosizing setting being true, so run it in DumpRenderTree, or manually enable Text Autosizing, and either use a mobile device with 320px device-width (like Nexus S or iPhone), or define HACK_FORCE_TEXT_AUTOSIZING_ON_DESKTOP.");
20
}
21
</script>
22
23
</head>
24
<body>
25
26
<div>
27
    This tests the autosizing of radio buttons. This paragraph should be autosized, while
28
    the radio buttons below and the surrounding text should not be autosized.
29
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
30
    incididunt ut labore et dolore magna aliqua.
31
</div>
32
<div>
33
<form action="">
34
    Select one of:<br/>
35
    <input type="radio" id="radio1" checked="checked"/>
36
    <label for="radio1">Radio1</label><br/>
37
    <input type="radio" id="radio2"/>
38
    <label for="radio2">Radio2</label><br/>
39
</form>
40
</div>
41
42
</body>
43
</html>
- a/LayoutTests/fast/text-autosizing/form-controls-boosting-select-element-expected.html +34 lines
Line 0 a/LayoutTests/fast/text-autosizing/form-controls-boosting-select-element-expected.html_sec1
1
<!DOCTYPE html>
2
<html>
3
<head>
4
5
<meta name="viewport" content="width=800">
6
<style>
7
  body {
8
    width: 800px;
9
    margin: 0;
10
    overflow-y: hidden;
11
  }
12
</style>
13
14
</head>
15
<body>
16
17
<div style="font-size: 2.5rem">
18
    This tests the autosizing of a selection menu element. This paragraph should be autosized, while
19
    the selection box below should not be autosized. Lorem ipsum dolor sit amet, consectetur adipisicing
20
    elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
21
</div>
22
<div>
23
<form action="">
24
    Selection:
25
    <select>
26
        <option selected value=default>Default</option>
27
        <option>Option 1</option>
28
        <option>Option 2</option>
29
    </select>
30
</form>
31
</div>
32
33
</body>
34
</html>
- a/LayoutTests/fast/text-autosizing/form-controls-boosting-select-element.html +43 lines
Line 0 a/LayoutTests/fast/text-autosizing/form-controls-boosting-select-element.html_sec1
1
<!DOCTYPE html>
2
<html>
3
<head>
4
5
<meta name="viewport" content="width=800">
6
<style>
7
  body {
8
    width: 800px;
9
    margin: 0;
10
    overflow-y: hidden;
11
  }
12
</style>
13
14
<script>
15
if (window.internals) {
16
    window.internals.settings.setTextAutosizingEnabled(true);
17
    window.internals.settings.setTextAutosizingWindowSizeOverride(320, 480);
18
} else if (window.console && console.warn) {
19
    console.warn("This test depends on the Text Autosizing setting being true, so run it in DumpRenderTree, or manually enable Text Autosizing, and either use a mobile device with 320px device-width (like Nexus S or iPhone), or define HACK_FORCE_TEXT_AUTOSIZING_ON_DESKTOP.");
20
}
21
</script>
22
23
</head>
24
<body>
25
26
<div>
27
    This tests the autosizing of a selection menu element. This paragraph should be autosized, while
28
    the selection box below should not be autosized. Lorem ipsum dolor sit amet, consectetur adipisicing
29
    elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
30
</div>
31
<div>
32
<form action="">
33
    Selection:
34
    <select>
35
        <option selected value=default>Default</option>
36
        <option>Option 1</option>
37
        <option>Option 2</option>
38
    </select>
39
</form>
40
</div>
41
42
</body>
43
</html>
- a/LayoutTests/fast/text-autosizing/form-controls-boosting-textarea-input-elements-expected.html +47 lines
Line 0 a/LayoutTests/fast/text-autosizing/form-controls-boosting-textarea-input-elements-expected.html_sec1
1
<!DOCTYPE html>
2
<html>
3
<head>
4
5
<meta name="viewport" content="width=800">
6
<style>
7
  body {
8
    width: 800px;
9
    margin: 0;
10
    overflow-y: hidden;
11
  }
12
</style>
13
14
</head>
15
<body>
16
17
<div style="font-size: 2.5rem">
18
    This tests the autosizing of the textarea input elements. This paragraph should be autosized, while
19
    the buttons below should not be autosized. Lorem ipsum dolor sit amet, consectetur adipisicing
20
    elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
21
</div>
22
23
<div>
24
<form action="">
25
    <div style="font-size: 2.5rem">
26
        This text should be autosized, while the input controls below should not.
27
    </div>
28
    <div>
29
        <input type="text">
30
    </div>
31
    <div>
32
        <input type="email">
33
    </div>
34
    <div>
35
        <input type="number">
36
    </div>
37
    <div>
38
        <input type="password">
39
    </div>
40
    <div>
41
        <input type="url">
42
    </div>
43
</form>
44
</div>
45
46
</body>
47
</html>
- a/LayoutTests/fast/text-autosizing/form-controls-boosting-textarea-input-elements.html +56 lines
Line 0 a/LayoutTests/fast/text-autosizing/form-controls-boosting-textarea-input-elements.html_sec1
1
<!DOCTYPE html>
2
<html>
3
<head>
4
5
<meta name="viewport" content="width=800">
6
<style>
7
  body {
8
    width: 800px;
9
    margin: 0;
10
    overflow-y: hidden;
11
  }
12
</style>
13
14
<script>
15
if (window.internals) {
16
    window.internals.settings.setTextAutosizingEnabled(true);
17
    window.internals.settings.setTextAutosizingWindowSizeOverride(320, 480);
18
} else if (window.console && console.warn) {
19
    console.warn("This test depends on the Text Autosizing setting being true, so run it in DumpRenderTree, or manually enable Text Autosizing, and either use a mobile device with 320px device-width (like Nexus S or iPhone), or define HACK_FORCE_TEXT_AUTOSIZING_ON_DESKTOP.");
20
}
21
</script>
22
23
</head>
24
<body>
25
26
<div>
27
    This tests the autosizing of the text field input elements. This paragraph should be autosized, while
28
    the buttons below should not be autosized. Lorem ipsum dolor sit amet, consectetur adipisicing
29
    elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
30
</div>
31
32
<div>
33
<form action="">
34
    <div>
35
        This text should be autosized, while the input controls below should not.
36
    </div>
37
    <div>
38
        <input type="text">
39
    </div>
40
    <div>
41
        <input type="email">
42
    </div>
43
    <div>
44
        <input type="number">
45
    </div>
46
    <div>
47
        <input type="password">
48
    </div>
49
    <div>
50
        <input type="url">
51
    </div>
52
</form>
53
</div>
54
55
</body>
56
</html>

Return to Bug 102560