Changeset 92089 in webkit
- Timestamp:
- Jul 31, 2011, 2:05:26 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/fast/dom/Range/getBoundingClientRect-expected.txt (modified) (2 diffs)
-
LayoutTests/fast/dom/Range/getBoundingClientRect.html (modified) (6 diffs)
-
LayoutTests/fast/dom/Range/getClientRects-expected.txt (modified) (1 diff)
-
LayoutTests/fast/dom/Range/getClientRects.html (modified) (1 diff)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/dom/Range.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r92088 r92089 1 2011-07-31 Sam Weinig <sam@webkit.org> 2 3 REGRESSION: getBoundingClientRect() method of Range incorrectly returns null for collapsed Range 4 https://bugs.webkit.org/show_bug.cgi?id=65324 5 6 Reviewed by Ryosuke Niwa. 7 8 * fast/dom/Range/getBoundingClientRect-expected.txt: 9 * fast/dom/Range/getBoundingClientRect.html: 10 * fast/dom/Range/getClientRects-expected.txt: 11 * fast/dom/Range/getClientRects.html: 12 Add test cases for empty and collapsed ranges. 13 1 14 2011-07-29 Ryosuke Niwa <rniwa@webkit.org> 2 15 -
trunk/LayoutTests/fast/dom/Range/getBoundingClientRect-expected.txt
r72826 r92089 24 24 25 25 Test 4 26 PASS rect.left.toFixed(3) is "0.000" 27 PASS rect.top.toFixed(3) is "0.000" 28 PASS rect.width.toFixed(3) is "0.000" 29 PASS rect.height.toFixed(3) is "0.000" 30 PASS rect.right is rect.left + rect.width 31 PASS rect.bottom is rect.top + rect.height 32 33 Test 5 26 34 PASS rect.left.toFixed(3) is "-14.574" 27 PASS rect.top.toFixed(3) is "1 329.947"35 PASS rect.top.toFixed(3) is "1761.947" 28 36 PASS rect.width.toFixed(3) is "504.009" 29 37 PASS rect.height.toFixed(3) is "535.849" … … 31 39 PASS Math.abs(rect.top + rect.height - rect.bottom) < 0.001 is true 32 40 41 Test 6 42 PASS rect.left.toFixed(3) is "0.000" 43 PASS rect.top.toFixed(3) is "0.000" 44 PASS rect.width.toFixed(3) is "0.000" 45 PASS rect.height.toFixed(3) is "0.000" 46 PASS rect.right is rect.left + rect.width 47 PASS rect.bottom is rect.top + rect.height 48 33 49 PASS successfullyParsed is true 34 50 -
trunk/LayoutTests/fast/dom/Range/getBoundingClientRect.html
r72826 r92089 28 28 } 29 29 30 #test 4{30 #test5 { 31 31 -webkit-transform: translate(50px, 100px) rotate(50deg); 32 32 } … … 57 57 58 58 <div class="box" id="test4">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</div> 59 60 <br><br> 61 62 <div class="box" id="test5">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</div> 59 63 60 64 </div> … … 106 110 /*2*/ { left: 8, top: 452, width: 400, height: 376 }, 107 111 /*3*/ { left: 8, top: 1044, width: 400, height: 96 }, 108 /*4*/ { left: -14.574, top: 1329.947, width: 504.009, height: 535.849 }, 112 /*4*/ { left: 0, top: 0, width: 0, height: 0 }, 113 /*5*/ { left: -14.574, top: 1761.947, width: 504.009, height: 535.849 }, 114 /*6*/ { left: 0, top: 0, width: 0, height: 0 }, 109 115 ]; 110 116 117 // Range over entire element. 111 118 debug("Test 1") 112 119 var range1 = document.createRange(); … … 116 123 testClientRect(rect, expectedResults[1 - 1]); 117 124 125 // Range over entire element's contents. 118 126 debug("Test 2") 119 127 var range2 = document.createRange(); … … 123 131 testClientRect(rect, expectedResults[2 - 1]); 124 132 133 // Range over subset of element's contents. 125 134 debug("Test 3") 126 135 var range3 = document.createRange(); … … 131 140 testClientRect(rect, expectedResults[3 - 1]); 132 141 142 // Collapsed range. 133 143 debug("Test 4") 134 144 var range4 = document.createRange(); 135 145 range4.selectNodeContents(document.getElementById('test4')); 146 range4.collapse(true); 136 147 show(range4); 148 149 var blah = range4.getClientRects(); 150 debug(blah); 151 137 152 rect = range4.getBoundingClientRect() 138 153 testClientRect(rect, expectedResults[4 - 1]); 154 155 // Range over transformed elements. 156 debug("Test 5") 157 var range5 = document.createRange(); 158 range5.selectNodeContents(document.getElementById('test5')); 159 show(range5); 160 rect = range5.getBoundingClientRect() 161 testClientRect(rect, expectedResults[5 - 1]); 162 163 // Empty range. 164 debug("Test 6") 165 var range6 = document.createRange(); 166 rect = range6.getBoundingClientRect() 167 testClientRect(rect, expectedResults[6 - 1]); 139 168 140 169 if (window.layoutTestController) { -
trunk/LayoutTests/fast/dom/Range/getClientRects-expected.txt
r91763 r92089 217 217 PASS rects[3].width is 18 218 218 PASS rects[3].height is 360 219 Test 11 220 PASS rects.length is 0 219 221 PASS successfullyParsed is true 220 222 -
trunk/LayoutTests/fast/dom/Range/getClientRects.html
r91763 r92089 400 400 shouldBe("rects[3].height", "360"); 401 401 402 debug("Test 11"); 403 var range11 = document.createRange(); 404 rects = range11.getClientRects(); 405 shouldBe("rects.length", "0"); 406 402 407 if (window.layoutTestController) { 403 408 var area = document.getElementById('testArea'); -
trunk/Source/WebCore/ChangeLog
r92088 r92089 1 2011-07-31 Sam Weinig <sam@webkit.org> 2 3 REGRESSION: getBoundingClientRect() method of Range incorrectly returns null for collapsed Range 4 https://bugs.webkit.org/show_bug.cgi?id=65324 5 6 Reviewed by Ryosuke Niwa. 7 8 Update to more closely match the spec. 9 10 * dom/Range.cpp: 11 (WebCore::Range::getClientRects): 12 Return an empty ClientRectList instead of null when the range is empty. 13 14 (WebCore::Range::getBoundingClientRect): 15 Always return a ClientRect, even for an empty bounding rect. 16 1 17 2011-07-29 Ryosuke Niwa <rniwa@webkit.org> 2 18 -
trunk/Source/WebCore/dom/Range.cpp
r90911 r92089 1911 1911 { 1912 1912 if (!m_start.container()) 1913 return 0;1913 return ClientRectList::create(); 1914 1914 1915 1915 m_ownerDocument->updateLayoutIgnorePendingStylesheets(); … … 1923 1923 PassRefPtr<ClientRect> Range::getBoundingClientRect() const 1924 1924 { 1925 FloatRect rect = boundingRect(); 1926 return rect.isEmpty() ? 0 : ClientRect::create(rect); 1925 return ClientRect::create(boundingRect()); 1927 1926 } 1928 1927
Note:
See TracChangeset
for help on using the changeset viewer.