Title: [99770] trunk
- Revision
- 99770
- Author
- dmazz...@google.com
- Date
- 2011-11-09 15:28:12 -0800 (Wed, 09 Nov 2011)
Log Message
Source/WebKit/chromium: Fix crash by handling case when AccessibilityObject::lineForPosition
returns -1.
https://bugs.webkit.org/show_bug.cgi?id=71561
Adds layout test: platform/chromium/accessibility/insertion-point-line-number-on-password-crashes.html
Reviewed by Dimitri Glazkov.
* src/WebAccessibilityObject.cpp:
(WebKit::WebAccessibilityObject::lineBreaks):
Tools: [Chromium] Implement AccessibilityUIElement::insertionPointLineNumberGetterCallback
https://bugs.webkit.org/show_bug.cgi?id=71561
Reviewed by Dimitri Glazkov.
* DumpRenderTree/chromium/AccessibilityUIElement.cpp:
(AccessibilityUIElement::insertionPointLineNumberGetterCallback):
LayoutTests: [Chromium] Add new test for crash in WebAccessibilityObject::lineBreaks
https://bugs.webkit.org/show_bug.cgi?id=71561
Reviewed by Dimitri Glazkov.
* platform/chromium/accessibility/insertion-point-line-number-on-password-crashes-expected.txt: Added.
* platform/chromium/accessibility/insertion-point-line-number-on-password-crashes.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (99769 => 99770)
--- trunk/LayoutTests/ChangeLog 2011-11-09 23:27:51 UTC (rev 99769)
+++ trunk/LayoutTests/ChangeLog 2011-11-09 23:28:12 UTC (rev 99770)
@@ -1,3 +1,13 @@
+2011-11-09 Dominic Mazzoni <dmazz...@google.com>
+
+ [Chromium] Add new test for crash in WebAccessibilityObject::lineBreaks
+ https://bugs.webkit.org/show_bug.cgi?id=71561
+
+ Reviewed by Dimitri Glazkov.
+
+ * platform/chromium/accessibility/insertion-point-line-number-on-password-crashes-expected.txt: Added.
+ * platform/chromium/accessibility/insertion-point-line-number-on-password-crashes.html: Added.
+
2011-11-09 Benjamin Poulain <bpoul...@apple.com>
Implement dumpProgressFinishedCallback() for Mac layoutTestController
Added: trunk/LayoutTests/platform/chromium/accessibility/insertion-point-line-number-on-password-crashes-expected.txt (0 => 99770)
--- trunk/LayoutTests/platform/chromium/accessibility/insertion-point-line-number-on-password-crashes-expected.txt (rev 0)
+++ trunk/LayoutTests/platform/chromium/accessibility/insertion-point-line-number-on-password-crashes-expected.txt 2011-11-09 23:28:12 UTC (rev 99770)
@@ -0,0 +1,2 @@
+Line number for password element: 0
+
Added: trunk/LayoutTests/platform/chromium/accessibility/insertion-point-line-number-on-password-crashes.html (0 => 99770)
--- trunk/LayoutTests/platform/chromium/accessibility/insertion-point-line-number-on-password-crashes.html (rev 0)
+++ trunk/LayoutTests/platform/chromium/accessibility/insertion-point-line-number-on-password-crashes.html 2011-11-09 23:28:12 UTC (rev 99770)
@@ -0,0 +1,25 @@
+<html>
+<script>
+ if (window.layoutTestController)
+ layoutTestController.dumpAsText();
+</script>
+<body>
+
+ <div id="result"></div>
+
+ <input type="password" id="password">
+
+ <script>
+ if (window.accessibilityController) {
+ var result = document.getElementById("result");
+
+ var password = document.getElementById("password");
+ password.focus();
+
+ // Make sure this doesn't crash.
+ lineNumber = accessibilityController.focusedElement.insertionPointLineNumber;
+ result.innerText += "Line number for password element: " + lineNumber + "\n";
+ }
+ </script>
+</body>
+</html>
Modified: trunk/Source/WebKit/chromium/ChangeLog (99769 => 99770)
--- trunk/Source/WebKit/chromium/ChangeLog 2011-11-09 23:27:51 UTC (rev 99769)
+++ trunk/Source/WebKit/chromium/ChangeLog 2011-11-09 23:28:12 UTC (rev 99770)
@@ -1,3 +1,16 @@
+2011-11-09 Dominic Mazzoni <dmazz...@google.com>
+
+ Fix crash by handling case when AccessibilityObject::lineForPosition
+ returns -1.
+ https://bugs.webkit.org/show_bug.cgi?id=71561
+
+ Adds layout test: platform/chromium/accessibility/insertion-point-line-number-on-password-crashes.html
+
+ Reviewed by Dimitri Glazkov.
+
+ * src/WebAccessibilityObject.cpp:
+ (WebKit::WebAccessibilityObject::lineBreaks):
+
2011-11-09 Jay Civelli <jcive...@chromium.org>
Fix MHTML generation to use the QuotedPrintable encoding for text resources.
Modified: trunk/Source/WebKit/chromium/src/WebAccessibilityObject.cpp (99769 => 99770)
--- trunk/Source/WebKit/chromium/src/WebAccessibilityObject.cpp 2011-11-09 23:27:51 UTC (rev 99769)
+++ trunk/Source/WebKit/chromium/src/WebAccessibilityObject.cpp 2011-11-09 23:28:12 UTC (rev 99770)
@@ -771,7 +771,7 @@
VisiblePosition pos = m_private->visiblePositionForIndex(textLength);
int lineBreakCount = m_private->lineForPosition(pos);
- if (!lineBreakCount)
+ if (lineBreakCount <= 0)
return false;
WebVector<int> lineBreaks(static_cast<size_t>(lineBreakCount));
Modified: trunk/Tools/ChangeLog (99769 => 99770)
--- trunk/Tools/ChangeLog 2011-11-09 23:27:51 UTC (rev 99769)
+++ trunk/Tools/ChangeLog 2011-11-09 23:28:12 UTC (rev 99770)
@@ -1,3 +1,13 @@
+2011-11-09 Dominic Mazzoni <dmazz...@google.com>
+
+ [Chromium] Implement AccessibilityUIElement::insertionPointLineNumberGetterCallback
+ https://bugs.webkit.org/show_bug.cgi?id=71561
+
+ Reviewed by Dimitri Glazkov.
+
+ * DumpRenderTree/chromium/AccessibilityUIElement.cpp:
+ (AccessibilityUIElement::insertionPointLineNumberGetterCallback):
+
2011-11-09 Benjamin Poulain <bpoul...@apple.com>
Implement dumpProgressFinishedCallback() for Mac layoutTestController
Modified: trunk/Tools/DumpRenderTree/chromium/AccessibilityUIElement.cpp (99769 => 99770)
--- trunk/Tools/DumpRenderTree/chromium/AccessibilityUIElement.cpp 2011-11-09 23:27:51 UTC (rev 99769)
+++ trunk/Tools/DumpRenderTree/chromium/AccessibilityUIElement.cpp 2011-11-09 23:28:12 UTC (rev 99770)
@@ -453,8 +453,13 @@
void AccessibilityUIElement::insertionPointLineNumberGetterCallback(CppVariant* result)
{
- // FIXME: Implement this.
- result->set(0);
+ WebVector<int> lineBreaks;
+ accessibilityObject().lineBreaks(lineBreaks);
+ int cursor = accessibilityObject().selectionEnd();
+ int line = 0;
+ while (line < static_cast<int>(lineBreaks.size()) && lineBreaks[line] <= cursor)
+ line++;
+ result->set(line);
}
void AccessibilityUIElement::selectedTextRangeGetterCallback(CppVariant* result)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes