Title: [114250] trunk
Revision
114250
Author
[email protected]
Date
2012-04-16 07:17:33 -0700 (Mon, 16 Apr 2012)

Log Message

[EFL] [DRT] Feeding key events with invalid keyName
https://bugs.webkit.org/show_bug.cgi?id=83797

Tools:

Keep the keyName valid within scope of KeyEventInfo to avoid
feeding key events with invalid keyName.

Patch by Sudarsana Nagineni <[email protected]> on 2012-04-16
Reviewed by Philippe Normand.

* DumpRenderTree/efl/EventSender.cpp:
(KeyEventInfo::KeyEventInfo):
(KeyEventInfo):
(keyPadNameFromJSValue):
(keyNameFromJSValue):
(createKeyEventInfo):
(sendKeyDown):

LayoutTests:

Unskip fast/frames/iframe-window-focus.html

Patch by Sudarsana Nagineni <[email protected]> on 2012-04-16
Reviewed by Philippe Normand.

* platform/efl/Skipped:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (114249 => 114250)


--- trunk/LayoutTests/ChangeLog	2012-04-16 14:05:42 UTC (rev 114249)
+++ trunk/LayoutTests/ChangeLog	2012-04-16 14:17:33 UTC (rev 114250)
@@ -1,3 +1,14 @@
+2012-04-16  Sudarsana Nagineni  <[email protected]>
+
+        [EFL] [DRT] Feeding key events with invalid keyName
+        https://bugs.webkit.org/show_bug.cgi?id=83797
+
+        Unskip fast/frames/iframe-window-focus.html
+
+        Reviewed by Philippe Normand.
+
+        * platform/efl/Skipped:
+
 2012-04-16  Takashi Toyoshima  <[email protected]>
 
         Unreviewed, skip crash test in chromium-mac.

Modified: trunk/LayoutTests/platform/efl/Skipped (114249 => 114250)


--- trunk/LayoutTests/platform/efl/Skipped	2012-04-16 14:05:42 UTC (rev 114249)
+++ trunk/LayoutTests/platform/efl/Skipped	2012-04-16 14:17:33 UTC (rev 114250)
@@ -1295,7 +1295,6 @@
 fast/forms/input-search-press-escape-key.html
 fast/forms/input-text-enter.html
 fast/forms/textinput-not-fired-on-enter-in-input.html
-fast/frames/iframe-window-focus.html
 http/tests/misc/isindex-with-no-form.html
 
 # BUG: mouse-related bugs in the EventSender-PlatformMouseEventEfl interaction

Modified: trunk/Tools/ChangeLog (114249 => 114250)


--- trunk/Tools/ChangeLog	2012-04-16 14:05:42 UTC (rev 114249)
+++ trunk/Tools/ChangeLog	2012-04-16 14:17:33 UTC (rev 114250)
@@ -1,3 +1,21 @@
+2012-04-16  Sudarsana Nagineni  <[email protected]>
+
+        [EFL] [DRT] Feeding key events with invalid keyName
+        https://bugs.webkit.org/show_bug.cgi?id=83797
+
+        Keep the keyName valid within scope of KeyEventInfo to avoid
+        feeding key events with invalid keyName.
+
+        Reviewed by Philippe Normand.
+
+        * DumpRenderTree/efl/EventSender.cpp:
+        (KeyEventInfo::KeyEventInfo):
+        (KeyEventInfo):
+        (keyPadNameFromJSValue):
+        (keyNameFromJSValue):
+        (createKeyEventInfo):
+        (sendKeyDown):
+
 2012-04-16  Andras Piroska  <[email protected]>
 
         [Qt] Replace QtXmlPatterns usage with libxslt dependency

Modified: trunk/Tools/DumpRenderTree/efl/EventSender.cpp (114249 => 114250)


--- trunk/Tools/DumpRenderTree/efl/EventSender.cpp	2012-04-16 14:05:42 UTC (rev 114249)
+++ trunk/Tools/DumpRenderTree/efl/EventSender.cpp	2012-04-16 14:17:33 UTC (rev 114250)
@@ -104,13 +104,13 @@
 };
 
 struct KeyEventInfo {
-    KeyEventInfo(const char* keyName, EvasKeyModifier modifiers)
+    KeyEventInfo(const CString& keyName, EvasKeyModifier modifiers)
         : keyName(keyName)
         , modifiers(modifiers)
     {
     }
 
-    const char* keyName;
+    const CString keyName;
     EvasKeyModifier modifiers;
 };
 
@@ -322,7 +322,7 @@
     return JSValueMakeUndefined(context);
 }
 
-static const char* keyPadNameFromJSValue(JSStringRef character)
+static const CString keyPadNameFromJSValue(JSStringRef character)
 {
     if (equals(character, "leftArrow"))
         return "KP_Left";
@@ -345,10 +345,10 @@
     if (equals(character, "delete"))
         return "KP_Delete";
 
-    return 0;
+    return character->ustring().utf8();
 }
 
-static const char* keyNameFromJSValue(JSStringRef character)
+static const CString keyNameFromJSValue(JSStringRef character)
 {
     if (equals(character, "leftArrow"))
         return "Left";
@@ -407,7 +407,7 @@
     if (charCode == '\x8')
         return "BackSpace";
 
-    return 0;
+    return character->ustring().utf8();
 }
 
 static KeyEventInfo* createKeyEventInfo(JSContextRef context, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
@@ -431,11 +431,7 @@
     if (argumentCount >= 2)
         modifiers = modifiersFromJSValue(context, arguments[1]);
 
-    const CString cCharacter = character.get()->ustring().utf8();
-    const char* keyName = (location == DomKeyLocationNumpad) ? keyPadNameFromJSValue(character.get()) : keyNameFromJSValue(character.get());
-    if (!keyName)
-        keyName = cCharacter.data();
-
+    const CString keyName = (location == DomKeyLocationNumpad) ? keyPadNameFromJSValue(character.get()) : keyNameFromJSValue(character.get());
     return new KeyEventInfo(keyName, modifiers);
 }
 
@@ -444,7 +440,7 @@
     if (!keyEventInfo)
         return;
 
-    const char* keyName = keyEventInfo->keyName;
+    const char* keyName = keyEventInfo->keyName.data();
     EvasKeyModifier modifiers = keyEventInfo->modifiers;
 
     DumpRenderTreeSupportEfl::layoutFrame(browser->mainFrame());
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to