<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>22018</bug_id>
          
          <creation_ts>2013-05-13 09:56:12 +0000</creation_ts>
          <short_desc>Consider adding getCompositionAlternatives() in InputMethodContext</short_desc>
          <delta_ts>2014-04-08 06:58:34 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebAppsWG</product>
          <component>HISTORICAL - IME API</component>
          <version>unspecified</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Takayoshi Kochi">kochi</reporter>
          <assigned_to name="Takayoshi Kochi">kochi</assigned_to>
          <cc>adrianba</cc>
    
    <cc>bugs</cc>
    
    <cc>mike</cc>
    
    <cc>public-webapps</cc>
    
    <cc>travil</cc>
          
          <qa_contact>public-webapps-bugzilla</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>87589</commentid>
    <comment_count>0</comment_count>
    <who name="Takayoshi Kochi">kochi</who>
    <bug_when>2013-05-13 09:56:12 +0000</bug_when>
    <thetext>As described in
https://dvcs.w3.org/hg/ime-api/raw-file/tip/proposals/IMEProposal.html
consider adding getCompositionAlternaties() in InputMethodContext interface.

&quot;Returns a copy (per call) of the current list of alternate candidate strings from the InputMethodContext object. The InputMethodContext object can produce alternates while it has a composition in progress. As soon as hasComposition() returns false, then getCompositionAlternatives() will always return an empty list. The list of alternatives is not updated &quot;live&quot;; it is only updated between compositionupdate events.&quot;

No parameters.
Return type: sequence DOMString</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87604</commentid>
    <comment_count>1</comment_count>
    <who name="Olli Pettay">bugs</who>
    <bug_when>2013-05-13 14:58:28 +0000</bug_when>
    <thetext>Need to be careful with privacy. It is not clear whether user-specific alternatives should be exposed to web page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87640</commentid>
    <comment_count>2</comment_count>
    <who name="Takayoshi Kochi">kochi</who>
    <bug_when>2013-05-14 10:28:00 +0000</bug_when>
    <thetext>Possible solutions to privacy concerns:

* Do not send user-defined candidates
* Do not send any personalized candidates
* Randomize the sequence

Possible implementation restriction / optimizations:

* Do not send all candidates (some conversion may have hundreds of candidates).
  Implementation-wise, usually candidate window shows about at most 10
  candidates at a time, and the number of the candidates that can be retrieved
  at once may be limited at the number.  At least retrieving all the candidates
  may block the script execution for unexpectedly long time and better to be
  avoided.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88304</commentid>
    <comment_count>3</comment_count>
    <who name="Travis Leithead [MSFT]">travil</who>
    <bug_when>2013-05-28 22:01:27 +0000</bug_when>
    <thetext>IME input is disabled for password control, at least on Windows platform, so we don’t need to worry about exposing previous passwords to web apps--however, we know that many sites use other input controls for passwords, so this is still a very real concern.

I agree that not sending all candidates is a good limitation to add in the implementation of this API, both for the benefit of performance and usefulness. Usually the top candidates visible for end users are the only things matter for web apps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88371</commentid>
    <comment_count>4</comment_count>
    <who name="Takayoshi Kochi">kochi</who>
    <bug_when>2013-05-29 10:22:40 +0000</bug_when>
    <thetext>We discussed the privacy issue and compared the merit which this API
provides and the concerns, we propose this to be dropped from the spec.

As an alternative, an API that a user agent might send suggestion
data to IME could be possible; e.g IME can show candidates mixed with
these suggestions, which is less privacy-critical but still serves
similar use case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90335</commentid>
    <comment_count>5</comment_count>
    <who name="Takayoshi Kochi">kochi</who>
    <bug_when>2013-07-04 07:24:47 +0000</bug_when>
    <thetext>Let&apos;s defer this for the later version.

We should take the privacy issue of this seriously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92367</commentid>
    <comment_count>6</comment_count>
    <who name="Travis Leithead [MSFT]">travil</who>
    <bug_when>2013-08-20 18:06:44 +0000</bug_when>
    <thetext>Just a quick followup--we have shipped (in IE11 Preview) a version of our proposed IME spec, including the getCompositionAlternatives() API. It passed our internal privacy review. However, we understand that for standardization, it may have a higher bar on privacy.

There are a number of mitigations that could be applied to strengthen the privacy aspect of this API such as:
* limiting the number of linguistically equivalent alternatives (to say 20?)
* generating the list of alternatives any way the UA seems fit such as from standard dictionaries, IME-generated candidates, etc., but with the suggestion that user dictionaries are excluded.
* alternatives can be presented in random order

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103547</commentid>
    <comment_count>7</comment_count>
    <who name="Takayoshi Kochi">kochi</who>
    <bug_when>2014-04-08 06:58:34 +0000</bug_when>
    <thetext>Added to Editor&apos;s draft:
https://dvcs.w3.org/hg/ime-api/raw-file/default/Overview.html#widl-InputMethodContext-getCompositionAlternatives-sequence-DOMString

at revision
https://dvcs.w3.org/hg/ime-api/rev/3311d294f6e1</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>