Bug 32021

Summary: DRT's textInputController is unimplemented on Windows
Product: WebKit Reporter: Adam Roben (:aroben) <aroben>
Component: Tools / TestsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: abarth, adele, ap, aroben, eric, jberlin, jhoneycutt, lynn.neir, rniwa, sfalken, tkent, webkit.review.bot
Priority: P2 Keywords: InRadar, LayoutTestFailure, PlatformOnly
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Windows XP   
Attachments:
Description Flags
implementation for TextInputController on windows port none

Description Adam Roben (:aroben) 2009-12-01 07:55:40 PST
A handful of regression tests rely on a window.textInputController object. This object is unimplemented in DRT on Windows, so these tests fail. Failure results have been checked in for the affected tests.

We should implement textInputController so these tests can pass!
Comment 1 Adam Roben (:aroben) 2009-12-01 09:21:11 PST
The expected failure results were checked in in r51543, but more could be added later as new tests are written that use textInputController.

http://trac.webkit.org/changeset/51543
Comment 2 Adam Roben (:aroben) 2009-12-01 09:21:41 PST
<rdar://problem/7433229>
Comment 3 Kent Tamura 2010-01-06 01:49:27 PST
I investigated how to implement TextInputController.setMarkedText().

A) Emulate IME interaction
 It's hard to implement this. WebKit/win/WebView.cpp interacts with IMM32.DLL. We need to make a mock IMM32.DLL, send WM_IME messages and respond to IMM32.DLL calls.

B) Expose Editor::setComposition() via WebKit API
 This is simple, and Chromium does it. However this means we won't test the IME handling code in WebView.cpp.
Comment 4 Ryosuke Niwa 2010-11-22 12:14:28 PST
http://trac.webkit.org/changeset/72550
Comment 5 Ryosuke Niwa 2010-11-22 13:17:42 PST
http://trac.webkit.org/changeset/72553
Comment 6 WebKit Review Bot 2010-12-24 12:40:05 PST
http://trac.webkit.org/changeset/74641 might have broken GTK Linux 32-bit Release
Comment 7 Lynn Neir 2012-04-10 10:21:57 PDT
Created attachment 136482 [details]
implementation for TextInputController on windows port

This patch contains implementation for TextInputController in DRT that works on Windows port.

A number of tests have been effected, here are the details about the tests:

These two tests now pass match mac baseline and so old baselines in windows port were removed:
 fast/forms/input-maxlength-ime-completed.html --> removed old baseline in windows port - no longer needed as test now passes fine.
 fast/forms/input-maxlength-ime-preedit.html --> removed old baseline in windows port - no longer needed as test now passes fine.

These nine tests now pass and so were removed from windows port Skipped file:
 editing/input/ime-composition-clearpreedit.html
 editing/input/password-echo-textnode.html 
 editing/input/password-echo-passnode.html 
 editing/input/password-echo-passnode2.html 
 editing/input/password-echo-passnode3.html 
 editing/input/setting-input-value-cancel-ime-composition.html 
 editing/inserting/insert-composition-whitespace.html
 fast/dom/tab-in-right-alignment.html
 fast/text/international/thai-cursor-position.html

The results for these six tests are correct now but do not match mac baseline because mac uses flipped coordinate system, so baselines in windows port were added/updated:
 editing/selection/5825350-1.html 
 editing/selection/5825350-2.html 
 editing/selection/mixed-editability-10.html
 editing/selection/move-left-right.html
 editing/inserting/caret-position.html
 svg/text/caret-in-svg-text.xhtml

The result for this test does not match mac baseline but does match result for WebKitTestRunner on windows port, so updated windows port baseline:
 fast/events/ime-composition-events-001.html
Comment 8 Eric Seidel (no email) 2012-04-19 15:51:25 PDT
Comment on attachment 136482 [details]
implementation for TextInputController on windows port

Seems reasonable to me.
Comment 9 Jessie Berlin 2012-05-25 11:00:54 PDT
Lynn, is there a reason you haven't set the commit-queue flag to '+' on this patch? Are you worried about landing it for some reason?
Comment 10 Lynn Neir 2012-05-25 15:13:26 PDT
(In reply to comment #9)
> Lynn, is there a reason you haven't set the commit-queue flag to '+' on this patch? Are you worried about landing it for some reason?

Sorry, there is no reason other than I have moved onto new project and I am no longer actively working on webkit :-(  Please feel free to push it through.
Comment 11 Jessie Berlin 2012-05-25 17:43:03 PDT
Comment on attachment 136482 [details]
implementation for TextInputController on windows port

Ok, setting commit-queue+. Thanks for the fix!
Comment 12 WebKit Review Bot 2012-05-25 18:02:36 PDT
Comment on attachment 136482 [details]
implementation for TextInputController on windows port

Clearing flags on attachment: 136482

Committed r118594: <http://trac.webkit.org/changeset/118594>
Comment 13 WebKit Review Bot 2012-05-25 18:02:43 PDT
All reviewed patches have been landed.  Closing bug.