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

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>23156</bug_id>
          
          <creation_ts>2009-01-06 17:19:58 -0800</creation_ts>
          <short_desc>Windows: No support for platform keyboard shortcut right shift + right control to set writing direction.</short_desc>
          <delta_ts>2010-06-10 16:38:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Xiaomei Ji">xji</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>hbono</cc>
    
    <cc>jshin</cc>
    
    <cc>mitz</cc>
    
    <cc>playmobil</cc>
    
    <cc>progame+wk</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>104675</commentid>
    <comment_count>0</comment_count>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-01-06 17:19:58 -0800</bug_when>
    <thetext>Chrome bug: http://code.google.com/p/chromium/issues/detail?id=1845

Step to reproduce:
1. press &quot;Compose Mail&quot; in Gmail
2. focus cursor on the text area of the mail&apos;s body, press right shift + right ctrl.


Expected result:
Cursor should be moved from the left to the right of the text area.

What happens:
Cursor no movement

Note:
Every textbox/textarea (even with English text or no text at all) should be aligned to the right when pressing the right ctrl + right shift, and aligned to the left when pressing the left ctrl + left shift.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104729</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-01-07 11:09:37 -0800</bug_when>
    <thetext>I think this bug is about the Windows convention that Ctrl+Shift changes the base writing direction (which indirectly affects alignment). Am I correct?

Note that WebKit/mac has support for the Mac OS X key bindings for changing the base writing direction (see writingDirectionKeyBindingsEnabled() in WebHTMLView.mm and the methods that consult it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104833</commentid>
    <comment_count>2</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2009-01-07 19:32:50 -0800</bug_when>
    <thetext>Sorry not to have describe its details.
This bug technically consists of two bugs:
1. We need to change the Windows convention of CTRL+SHIFT keys, including adding methods to distinguish left keys and right keys;
2. The WebCore::executeMakeTextDirectionLeftToRight() function (in EditorCommand.cpp) does not change the &quot;dir&quot; attribute of the selected node, as the Editor::setBaseWritingDirection() function does. It only changes its CSS attributes, such as &quot;--webkit-direciton&quot;. So, the function causes a serious inconsistency between DOM attributes and CSS properties.

To fix the second bug, we need to:
(a) Change the WebCore::executeMakeTextDirectionLeftToRight() function to call the Editor::setBaseWritingDirection() function to change the writing direction, or;
(b) Add code to the function to change the DOM attributes.

Even though I have confirmed either option work, I would like to ask you which option is better.

Regards,

Hironori Bono</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104834</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-01-07 19:50:13 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Sorry not to have describe its details.
&gt; This bug technically consists of two bugs:

Then it would be much better to have two separate bugs in Bugzilla about it.

&gt; 1. We need to change the Windows convention of CTRL+SHIFT keys, including
&gt; adding methods to distinguish left keys and right keys;

Okay. Hopefully there is a higher-level way to describe the key combination for changing the writing direction (maybe it is even user-configurable), but this seems like a clear task: recognizing that the user has issued the command to change the writing direction.

&gt; 2. The WebCore::executeMakeTextDirectionLeftToRight() function (in
&gt; EditorCommand.cpp) does not change the &quot;dir&quot; attribute of the selected node, as
&gt; the Editor::setBaseWritingDirection() function does. It only changes its CSS
&gt; attributes, such as &quot;--webkit-direciton&quot;. So, the function causes a serious
&gt; inconsistency between DOM attributes and CSS properties.

I think you are mixing up two separate concepts: the &quot;text&quot; or &quot;character-level&quot; directionality and the &quot;paragraph-level&quot; or &quot;base&quot; writing direction.
 
&gt; To fix the second bug, we need to:
&gt; (a) Change the WebCore::executeMakeTextDirectionLeftToRight() function to call
&gt; the Editor::setBaseWritingDirection() function to change the writing direction,

No, setting the text direction of a range should not change the paragraph-level writing direction.

&gt; or;
&gt; (b) Add code to the function to change the DOM attributes.

I do not think that would be necessary. setBaseWritingDirection has the necessary code to achieve what the command does, in a way that as far as I can tell is compatible with IE.

Perhaps some of your confusion stems from the fact that the character-level commands have a modern implementation as editor commands, and the paragraph-level commands have a lot of their logic (such as for validation and state checking) still in WebKit (in WebHTMLView.mm). I think a good first step could be to modernize the way the paragraph-level commands are implemented. I think that will make the differences between the concepts clearer and make addressing issue (1) easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104841</commentid>
    <comment_count>4</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2009-01-07 22:08:08 -0800</bug_when>
    <thetext>&gt; &gt; (b) Add code to the function to change the DOM attributes.
&gt;
&gt; I do not think that would be necessary. setBaseWritingDirection has the
&gt; necessary code to achieve what the command does, in a way that as far as I can
&gt; tell is compatible with IE.

Sorry for my stupid description.
This &quot;the function&quot; means the WebCore::executeMakeTextDirectionLeftToRight() function. I noticed the Editor::setBaseWritingDirection() has code to change the DOM attributes.

Regards,

Hironori Bono

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104842</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-01-07 22:15:20 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; &gt; (b) Add code to the function to change the DOM attributes.
&gt; &gt;
&gt; &gt; I do not think that would be necessary. setBaseWritingDirection has the
&gt; &gt; necessary code to achieve what the command does, in a way that as far as I can
&gt; &gt; tell is compatible with IE.
&gt; 
&gt; Sorry for my stupid description.
&gt; This &quot;the function&quot; means the WebCore::executeMakeTextDirectionLeftToRight()
&gt; function. I noticed the Editor::setBaseWritingDirection() has code to change
&gt; the DOM attributes.

executeMakeTextDirectionLeftToRight() implements functionality that, as far as I know, does not exist in other engines, and a choice was made to implement it using the CSS properties &apos;unicode-bidi&apos; and &apos;direction&apos;. Why do you feel that executeMakeTextDirectionLeftToRight() needs to use DOM attributes, and how does it relate to this bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104843</commentid>
    <comment_count>6</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2009-01-07 22:32:38 -0800</bug_when>
    <thetext>&gt; executeMakeTextDirectionLeftToRight() implements functionality that, as far as
&gt; I know, does not exist in other engines, and a choice was made to implement it
&gt; using the CSS properties &apos;unicode-bidi&apos; and &apos;direction&apos;. Why do you feel that
&gt; executeMakeTextDirectionLeftToRight() needs to use DOM attributes, and how 
&gt; does it relate to this bug?

Sorry again, I forgot describing it in this thread. (I&apos;m mixed this thread and another internal discussion.)

Maybe we are somewhat misunderstanding WebKit, however, we mapped a Right Ctrl + Right Shift key combination to this executeMakeTextDirectionLeftToRight() function in our EditorClientImpl::handleKeyboardEvent() implementation but it did not change the &quot;dir&quot; attribute and caused the original problem.
So, I assumed this function should change the &quot;dir&quot; attribute as I wrote in my previous response.

If this mapping is wrong, is it possible to give us better mapping functions?
(To read the _changeBaseWritingDirectionTo, it seems to call the Editor::setBaseWritingDirection() function. Nevertheless, I&apos;m not sure I&apos;m correct.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104845</commentid>
    <comment_count>7</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-01-07 22:39:49 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Sorry again, I forgot describing it in this thread. (I&apos;m mixed this thread and
&gt; another internal discussion.)
&gt; 
&gt; Maybe we are somewhat misunderstanding WebKit, however, we mapped a Right Ctrl
&gt; + Right Shift key combination to this executeMakeTextDirectionLeftToRight()
&gt; function in our EditorClientImpl::handleKeyboardEvent() implementation but it
&gt; did not change the &quot;dir&quot; attribute and caused the original problem.
&gt; So, I assumed this function should change the &quot;dir&quot; attribute as I wrote in my
&gt; previous response.
&gt; 
&gt; If this mapping is wrong, is it possible to give us better mapping functions?
&gt; (To read the _changeBaseWritingDirectionTo, it seems to call the
&gt; Editor::setBaseWritingDirection() function. Nevertheless, I&apos;m not sure I&apos;m
&gt; correct.)

Yes, I think the correct mapping for the Ctrl+Shift (or equivalent) actions is to Editor::setBaseWritingDirection(). That function has specific code to set the &apos;dir&apos; DOM attribute on text entry elements. It is also the function that implements the Writing Direction submenu of the context menu you get when you right-click in a text entry element or in editable HTML. I think Ctrl+Shift should have the same effect as choosing the appropriate item from the context menu, so it follows that it should call in to the same function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104847</commentid>
    <comment_count>8</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2009-01-07 22:48:24 -0800</bug_when>
    <thetext>&gt; Yes, I think the correct mapping for the Ctrl+Shift (or equivalent) actions is
&gt; to Editor::setBaseWritingDirection(). That function has specific code to set
&gt; the &apos;dir&apos; DOM attribute on text entry elements. It is also the function that
&gt; implements the Writing Direction submenu of the context menu you get when you
&gt; right-click in a text entry element or in editable HTML. I think Ctrl+Shift
&gt; should have the same effect as choosing the appropriate item from the context
&gt; menu, so it follows that it should call in to the same function.

Thank you for your answers and descriptions.
Your description makes me notice this is a bug of our implementation of the EditorClientImpl class.

Sorry for confusing you.

Regards,

Hironori Bono
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104849</commentid>
    <comment_count>9</comment_count>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-01-07 22:54:00 -0800</bug_when>
    <thetext>Hi Mitz,

Thanks for your help on solving this issue!

After I filed the bug, Jeremy mentioned to me that &quot;From mitz@webkit.org&apos;s responses to some of the bugs we&apos;ve opened recently it looks like in the cases where Windows &amp; OS X diverge, webkit tries to match OSX&apos;s behavior.&quot;.

Now I understand what you meant better.

In this case, it is not a Webkit bug. And I am closing it.

Thanks,
Xiaomei

I am closing it.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104850</commentid>
    <comment_count>10</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-01-07 23:09:11 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Hi Mitz,
&gt; 
&gt; Thanks for your help on solving this issue!
&gt; 
&gt; After I filed the bug, Jeremy mentioned to me that &quot;From mitz@webkit.org&apos;s
&gt; responses to some of the bugs we&apos;ve opened recently it looks like in the cases
&gt; where Windows &amp; OS X diverge, webkit tries to match OSX&apos;s behavior.&quot;.

That is a good description of the way many things are in WebKit right now, but it is not meant as a guideline. It is not a goal of the WebKit project to introduce Mac OS X-like behaviors on platforms that have different behaviors and conventions. Ideally, WebKit should adopt a behavior that matches the platform, by means of port-specific definitions and code or by means of runtime configuration options.

To put it in terms of some of the bugs you may be referring to, it means that it would be wrong to suggest that the Mac OS X port of WebKit should draw an insertion point with a directionality flag, like Windows does sometimes, but it may not be wrong to suggest that the Windows/Cairo port should draw the insertion point like that; or that there should be a WebCore setting for the kind of insertion point to draw.

&gt; Now I understand what you meant better.
&gt; 
&gt; In this case, it is not a Webkit bug. And I am closing it.

I think this bug has raised at least one valid WebKit issue, which is that the Windows ports need to respond to Ctrl+Shift by changing the writing direction, similarly to how the Mac OS X port changes the writing direction in response to the Mac OS X key combination for the same action. I think this issue should be resolved and I believe the way to resolve it is through a WebKit patch. A bugs.webkit.org bug is a fine way to bring this issue to resolution. You are welcome to either file a new bug or re-open this one, perhaps re-titling it to better reflect the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105175</commentid>
    <comment_count>11</comment_count>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2009-01-10 20:05:39 -0800</bug_when>
    <thetext>reopening...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111384</commentid>
    <comment_count>12</comment_count>
      <attachid>28061</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2009-02-26 20:49:50 -0800</bug_when>
    <thetext>Created attachment 28061
a proposed fix (WebKit part)

Sorry for my slow responses.
Even though this is not a complete fix for this bug (because it is caused by our implementation of the EditorClientImpl class), I needed to add some values to the PlatformKeyboardEvent class so the EditorClientImpl class can distinguish right-modifier keys and left ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111403</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-27 00:12:31 -0800</bug_when>
    <thetext>What will be the meaning of m_ctrlKey after this change? Will it be left Ctrl key, or any one? In most cases, we don&apos;t care which side the key was at.

We need to expose right/left information to DOM, see this FIXME in KeyboardEvent.cpp:

    , m_keyLocation(key.isKeypad() ? DOM_KEY_LOCATION_NUMPAD : DOM_KEY_LOCATION_STANDARD) // FIXME: differentiate right/left, too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111415</commentid>
    <comment_count>14</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2009-02-27 01:13:34 -0800</bug_when>
    <thetext>Thank you for your comments.

(In reply to comment #13)
&gt; What will be the meaning of m_ctrlKey after this change? Will it be left Ctrl
&gt; key, or any one? In most cases, we don&apos;t care which side the key was at.

To keep compatibility with the current WebKit, I thought &apos;m_ctrlKey&apos; should represent any control keys. Should we add comments to clarify this?

&gt; We need to expose right/left information to DOM, see this FIXME in KeyboardEvent.cpp:
&gt; 
&gt;     , m_keyLocation(key.isKeypad() ? DOM_KEY_LOCATION_NUMPAD : DOM_KEY_LOCATION_STANDARD) // FIXME: differentiate right/left, too

Thank you for noticing this.
I left this class unmodified in my previous change, because I&apos;m wondering which value we should set when we pressed a right modifier key and a left modifier key, e.g. a right-shift key and a left-control key. As far as I read the DOM Event spec, it does not write anything about such edge case. (This is also the reason why my change just adds all right-modifier keys to the PlatformKeyboardEvent class.)

(*1) http://www.w3.org/TR/DOM-Level-3-Events/events.html#Events-KeyboardEvent

Even though I prefer setting DOM_KEY_LOCATION_RIGHT when one of right modifier keys are pressed, I&apos;m not so confident of my opinion at all.
Would it be possible to give me your thoughts?

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111418</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-27 01:38:09 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; To keep compatibility with the current WebKit, I thought &apos;m_ctrlKey&apos; should
&gt; represent any control keys. Should we add comments to clarify this?

Please do, this wasn&apos;t clear from the context.

&gt; I left this class unmodified in my previous change, because I&apos;m wondering which
&gt; value we should set when we pressed a right modifier key and a left modifier
&gt; key, e.g. a right-shift key and a left-control key.

KeyboardEvent::m_keyLocation contains information about the latest key that was pressed, not on modifiers state, so I don&apos;t think that pressing several modifier keys at once changes anything.

In practice, it&apos;s possible that underlying OS events do not contain all the necessary information (see e.g. a FIXME in KeyEventMac.mm, function isKeyUpEvent()), but we should try to handle common cases.

Perhaps the changes to event classes should be made in a separate bug, that this one would depend upon? They are not directly related to LTR text.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111445</commentid>
    <comment_count>16</comment_count>
      <attachid>28061</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-02-27 09:20:35 -0800</bug_when>
    <thetext>Comment on attachment 28061
a proposed fix (WebKit part)

Should tbe right keys be treated as entirely separate from the non-right ones? What about the code already in WebCore that calls shiftKey()? If we really are going to have separate booleans like this, then I think it need to be shiftKey(), leftShiftKey(), and rightShiftKey() functions, with shiftKey() returning m_shiftKey | m_rightShiftKey. Or maybe you intend m_shiftKey to be true if either the left or right key is down?

If no platform-independent code is going to be calling these new functions, then I think the Chromium code should match the other platforms and allow you to get to a lower level platform event object. This class is supposed to define a platform-independent interface to keys for use in platform-independent code. If this is an interface defined only for Chromium and used only in Chromium, then I think you should consider doing it differently.

But maybe we do have a cross-platform need to distinguish right and left modifiers. I&apos;m not sure. Given the title of the bug it seems that really this is a Chromium-specific bug about needing to set the shift key boolean even when the right shift key is the one held down, and doesn&apos;t require any change to the cross-platform code at all, but I really can&apos;t tell.

If we&apos;re going to add booleans for the right-key versions of these modifiers, then the patch needs to also modify the implementation on other platforms so that those new booleans are set on those platforms too. It&apos;s bad manners to add these for one platform and have them all be false on all the other platforms.

I&apos;m going to say review- for now given these concerns?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111793</commentid>
    <comment_count>17</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2009-03-02 01:01:10 -0800</bug_when>
    <thetext>Thank you for your comments.
They make sense, my change is too dependent on Chromium and we should not put such platform-dependent code there.

By the way, I&apos;m wondering if there is a plan of fixing the KeyboardEvent class so that it can expose left/right information in near future.
If there is a plan, we should wait implementing Chromium-dependent code until the KeyboardEvent class is updated to avoid duplicates.

Sorry for my stupid question in advance.

(In reply to comment #16)
&gt; (From update of attachment 28061 [review])
&gt; Should tbe right keys be treated as entirely separate from the non-right ones?
&gt; What about the code already in WebCore that calls shiftKey()? If we really are
&gt; going to have separate booleans like this, then I think it need to be
&gt; shiftKey(), leftShiftKey(), and rightShiftKey() functions, with shiftKey()
&gt; returning m_shiftKey | m_rightShiftKey. Or maybe you intend m_shiftKey to be
&gt; true if either the left or right key is down?
&gt; 
&gt; If no platform-independent code is going to be calling these new functions,
&gt; then I think the Chromium code should match the other platforms and allow you
&gt; to get to a lower level platform event object. This class is supposed to define
&gt; a platform-independent interface to keys for use in platform-independent code.
&gt; If this is an interface defined only for Chromium and used only in Chromium,
&gt; then I think you should consider doing it differently.
&gt; 
&gt; But maybe we do have a cross-platform need to distinguish right and left
&gt; modifiers. I&apos;m not sure. Given the title of the bug it seems that really this
&gt; is a Chromium-specific bug about needing to set the shift key boolean even when
&gt; the right shift key is the one held down, and doesn&apos;t require any change to the
&gt; cross-platform code at all, but I really can&apos;t tell.
&gt; 
&gt; If we&apos;re going to add booleans for the right-key versions of these modifiers,
&gt; then the patch needs to also modify the implementation on other platforms so
&gt; that those new booleans are set on those platforms too. It&apos;s bad manners to add
&gt; these for one platform and have them all be false on all the other platforms.
&gt; 
&gt; I&apos;m going to say review- for now given these concerns?
&gt; 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111794</commentid>
    <comment_count>18</comment_count>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2009-03-02 01:41:33 -0800</bug_when>
    <thetext>(Just restating a few things to be clear, apologies if this is obvious)

This issue relates to the Windows platform in general and is not specific to Chromium.
The Windows convention is to use left shift + left control and right shift + right control to toggle writing direction.

In addition, according to comment #13 there is a cross-platform use case for differentiating these.

Darin/Dan: Seeing as this is not Chromium-only, are you OK with adding leftShiftKey()/rightShiftKey() functions?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28061</attachid>
            <date>2009-02-26 20:49:50 -0800</date>
            <delta_ts>2010-06-10 16:38:29 -0700</delta_ts>
            <desc>a proposed fix (WebKit part)</desc>
            <filename>issue23156-patch1.txt</filename>
            <type>text/plain</type>
            <size>3032</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTI3OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMDktMDItMjYgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTU2CisKKyAgICAgICAg
QWRkZWQgdmFsdWVzIHRvIHRoZSBXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQgY2xhc3Mg
dG8KKyAgICAgICAgZGlzdGluZ3Vpc2ggcmlnaHQgbW9kaWZpZXIga2V5cyBmcm9tIGxlZnQgb25l
cy4KKyAgICAgICAgVG8gbm90aWZ5IGEgdXNlciBwcmVzc2VzIHJpZ2h0LXNoaWZ0IGFuZCByaWdo
dC1jb250cm9sIGtleXMgdG8KKyAgICAgICAgV2ViS2l0LCB0aGlzIGNoYW5nZSBhZGRzIHNvbWUg
bW9kaWZpZXJzIChSaWdodEFsdEtleSwgUmlnaHRDdHJsS2V5LAorICAgICAgICBSaWdodE1ldGFL
ZXksIGFuZCBSaWdodFNoaWZ0S2V5KSB0byB0aGUgV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2
ZW50CisgICAgICAgIGNsYXNzLgorCisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6Oik6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnJpZ2h0U2hpZnRLZXkpOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpyaWdodEN0cmxLZXkpOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpyaWdodEFsdEtleSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnJpZ2h0TWV0YUtleSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6Om1vZGlmaWVycyk6CisKIDIw
MDktMDItMjYgIFN0ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtS2V5Ym9hcmRFdmVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1LZXlib2FyZEV2ZW50LmgJKHJldmlzaW9uIDQxMjc3KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtODIsNiArODIsMTAg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgQ3RybEtleSA9IDEgPDwgMSwKICAg
ICAgICAgICAgIE1ldGFLZXkgPSAxIDw8IDIsCiAgICAgICAgICAgICBTaGlmdEtleSA9IDEgPDwg
MywKKyAgICAgICAgICAgIFJpZ2h0QWx0S2V5ID0gMSA8PCA0LAorICAgICAgICAgICAgUmlnaHRD
dHJsS2V5ID0gMSA8PCA1LAorICAgICAgICAgICAgUmlnaHRNZXRhS2V5ID0gMSA8PCA2LAorICAg
ICAgICAgICAgUmlnaHRTaGlmdEtleSA9IDEgPDwgNywKICAgICAgICAgfTsKIAogICAgICAgICBU
eXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KQEAgLTExNiwxMSArMTIwLDE5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBjdHJsS2V5KCkgY29uc3QgeyByZXR1
cm4gbV9jdHJsS2V5OyB9CiAgICAgICAgIGJvb2wgYWx0S2V5KCkgY29uc3QgeyByZXR1cm4gbV9h
bHRLZXk7IH0KICAgICAgICAgYm9vbCBtZXRhS2V5KCkgY29uc3QgeyByZXR1cm4gbV9tZXRhS2V5
OyB9CisgICAgICAgIGJvb2wgcmlnaHRTaGlmdEtleSgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHRT
aGlmdEtleTsgfQorICAgICAgICBib29sIHJpZ2h0Q3RybEtleSgpIGNvbnN0IHsgcmV0dXJuIG1f
cmlnaHRDdHJsS2V5OyB9CisgICAgICAgIGJvb2wgcmlnaHRBbHRLZXkoKSBjb25zdCB7IHJldHVy
biBtX3JpZ2h0QWx0S2V5OyB9CisgICAgICAgIGJvb2wgcmlnaHRNZXRhS2V5KCkgY29uc3QgeyBy
ZXR1cm4gbV9yaWdodE1ldGFLZXk7IH0KICAgICAgICAgdW5zaWduZWQgbW9kaWZpZXJzKCkgY29u
c3QgewogICAgICAgICAgICAgcmV0dXJuIChhbHRLZXkoKSA/IEFsdEtleSA6IDApCiAgICAgICAg
ICAgICAgICAgfCAoY3RybEtleSgpID8gQ3RybEtleSA6IDApCiAgICAgICAgICAgICAgICAgfCAo
bWV0YUtleSgpID8gTWV0YUtleSA6IDApCi0gICAgICAgICAgICAgICAgfCAoc2hpZnRLZXkoKSA/
IFNoaWZ0S2V5IDogMCk7CisgICAgICAgICAgICAgICAgfCAoc2hpZnRLZXkoKSA/IFNoaWZ0S2V5
IDogMCkKKyAgICAgICAgICAgICAgICB8IChyaWdodEFsdEtleSgpID8gUmlnaHRBbHRLZXkgOiAw
KQorICAgICAgICAgICAgICAgIHwgKHJpZ2h0Q3RybEtleSgpID8gUmlnaHRDdHJsS2V5IDogMCkK
KyAgICAgICAgICAgICAgICB8IChyaWdodE1ldGFLZXkoKSA/IFJpZ2h0TWV0YUtleSA6IDApCisg
ICAgICAgICAgICAgICAgfCAocmlnaHRTaGlmdEtleSgpID8gUmlnaHRTaGlmdEtleSA6IDApOwog
ICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGJvb2wgY3VycmVudENhcHNMb2NrU3RhdGUoKTsK
QEAgLTE2NSw2ICsxNzcsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1f
Y3RybEtleTsKICAgICAgICAgYm9vbCBtX2FsdEtleTsKICAgICAgICAgYm9vbCBtX21ldGFLZXk7
CisgICAgICAgIGJvb2wgbV9yaWdodFNoaWZ0S2V5OworICAgICAgICBib29sIG1fcmlnaHRDdHJs
S2V5OworICAgICAgICBib29sIG1fcmlnaHRBbHRLZXk7CisgICAgICAgIGJvb2wgbV9yaWdodE1l
dGFLZXk7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIFJldGFpblB0cjxOU0V2ZW50PiBt
X21hY0V2ZW50Owo=
</data>
<flag name="review"
          id="13689"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>