[webkit-reviews] review denied: [Bug 132527] AX: [ATK] [PATCH] add text-caret-moved signal to accessibilityController : [Attachment 231455] caret-moved signal and caret offset tests

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri May 16 04:21:33 PDT 2014


Mario Sanchez Prada <mario at webkit.org> has denied Jarek Czekalski
<jarekczek at poczta.onet.pl>'s request for review:
Bug 132527: AX: [ATK] [PATCH] add text-caret-moved signal to
accessibilityController
https://bugs.webkit.org/show_bug.cgi?id=132527

Attachment 231455: caret-moved signal and caret offset tests
https://bugs.webkit.org/attachment.cgi?id=231455&action=review

------- Additional Comments from Mario Sanchez Prada <mario at webkit.org>
View in context: https://bugs.webkit.org/attachment.cgi?id=231455&action=review


Sorry for the delay, Jarek. This week is being crazy here, but I'd rather
review this now because next week will be even more complex :)

This patch is awesome, I'm placing the r- flag now because there are some
things that need fixing, but it seems to be indeed in the right direction. See
my comments below...

> LayoutTests/ChangeLog:8
> +	   * platform/gtk/accessibility/js-test-atk.js: Added, to place

I think it's ok to have a new file to place this helpers (and probably others
that are used in different ATK tests) in a common place, but I'd rather put it
in a platform/gtk/resources directory, for consistency with what's done
everywhere else. Also (and sorry for the bike shedding), I'd rather name it
something like atk-helpers.js or the like, not need to use a "js-" prefix in a
.js file :)

> LayoutTests/platform/gtk/accessibility/caret-offsets.html:5
> +<script src="js-test-atk.js"></script>

Remember to update this path if you do the change suggested above

> LayoutTests/platform/gtk/accessibility/caret-offsets.html:9
> +<script>
> +descriptionText = "This test is replicated from old file testatk.c and tests
various scenarios<br>" +
> +		     "of caret movement: setting caret offset and receiving
text-caret-moved signal.";
> +</script>

We normally use the description() JS function for this purpose (see for
instance accessibility/button-title-uses-inner-img-alt.html)

> LayoutTests/platform/gtk/accessibility/caret-offsets.html:44
> +if (window.layoutController) {

s/layoutController/testRunner (layoutController was the old name of the
testRunner)

> LayoutTests/platform/gtk/accessibility/caret-offsets.html:47
> +if (window.layoutController) {
> +    testRunner.overridePreference("WebKitEnableCaretBrowsing", true);
> +    testRunner.dumpAsText();
> +}

Could you move this "if { ... }" block after the functions? (to keep the
functions at the beginning)?

> LayoutTests/platform/gtk/accessibility/caret-offsets.html:53
> +	   caretMovedData += role + '|' + offset;

You are using caretMovedData as a global variable, so you should declare it
with "var caretMovedData" outside every block and every function (not needed
but good practice)

> LayoutTests/platform/gtk/accessibility/caret-offsets.html:57
> +function setCaretOffsetHelper(object, offset)

Perhaps naming this 'resetCaretOffsetForObject()' would be clearer

> LayoutTests/platform/gtk/accessibility/caret-offsets.html:81
> +    /* Following tests are replicated from testatk.c file, functions
> +    testWebkitAtkCaretOffsets()
> +    testWebkitAtkCaretOffsetsAndExtranousWhiteSpaces()
> +    that was present in webkit1. Removed from
> +    trunk in r166977, so the last version was
> +   
https://trac.webkit.org/browser/trunk/Tools/TestWebKitAPI/Tests/WebKitGtk/testa
tk.c?rev=166976
> +    What could not be verified in the same way:
> +    1. Whether element implements ATK_TEXT. If setCaretOffset succeeds, it
confirms
> +	  that element is text as well. But in cases when setCaretOffset must
fail
> +	  I see no way to confirm it is text element.
> +    2. Whether position is correct through a call to
atk_text_get_caret_offset.
> +	  text-caret-moved signal value is tested instead.
> +    Anyway these cases don't look crucial, so they are skipped.
> +    */

I think this is a great comment to put in the LayoutTests/ChangeLog, but I'm
not sure you need to put it here because, as you mentioned, those cases are not
crucial anyway :)

> Tools/DumpRenderTree/atk/AccessibilityCallbacksAtk.cpp:62
> +// Up to 2014 it was obligatory to mirror the changes from
> +//
WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp,
> +// but the habit has been dropped:
https://bugs.webkit.org/show_bug.cgi?id=132527#c6

Again, I think this is a nice comment for the ChangeLog, but I wouldn't put it
here since the reason is quite simple anyway: The WebKit1 versions of the GTK
and EFL ports (the only ones using ATK) are no longer maintained upstream

> Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:261
> -    
> +

Don't include this change (it's not related)

>
Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:-203
> -    

Ditto.

>
Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.c
pp:43
> +WTF::Vector<guint> listenerIds;

Loved this change, but please keep the unsigned type instead of guint (we only
use GLib types for public interfaces)

>
Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.c
pp:143
> +	   int lastArgument = 1;
> +	   for (int i = 0; i < extraArgs.size(); i++)
> +	       arguments[lastArgument += 1] = extraArgs[i];

Instead of doing this to keep the value of lastArgument outside the loop and
use it later, you could use a while loop with only one iterator (e.g.
"currentArgument") and then use it later to know the last argument position
(e.g. currentArgument+1).

If, however, you still prefer to use the for loop, please split that statement
in too so you don't use the 'lastArgument += 1' as the index for the array
(that's not clear)

>
Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.c
pp:-139
> -

I think you can keep this line :)

>
Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.c
pp:269
> +    for (const char** signalName = signalNames; *signalName; signalName++) {


Thanks for doing this refactoring :)

>
Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.c
pp:273
> +	       String message = String::format("atk_add_global_event_listener
failed for signal %s\n",
> +		   *signalName);

One line only


More information about the webkit-reviews mailing list