JBR-5878 mac: osr: fix keys f14-f19, clear
diff --git a/java_tests/tests/junittests/KeyboardOSRTest.java b/java_tests/tests/junittests/KeyboardOSRTest.java
index 320a2d4..60842f5 100644
--- a/java_tests/tests/junittests/KeyboardOSRTest.java
+++ b/java_tests/tests/junittests/KeyboardOSRTest.java
@@ -126,9 +126,7 @@
     }
 
     @AfterAll
-    public static void after() throws IOException {
-        myFrame.closeBrowser();
-        myFrame.awaitCompletion();
+    public static void after() throws IOException, InterruptedException {
         File file = getScenarioFile();
         if (UPDATE_REFERENCE && file != null) {
             String jsonString = new GsonBuilder()
diff --git a/java_tests/tests/junittests/data/keyboard_scenario_mac.json b/java_tests/tests/junittests/data/keyboard_scenario_mac.json
index d0fd049..1737611 100644
--- a/java_tests/tests/junittests/data/keyboard_scenario_mac.json
+++ b/java_tests/tests/junittests/data/keyboard_scenario_mac.json
@@ -740,8 +740,8 @@
     "eventsJSExpected": [
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F14",
+        "code": "F14",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -750,8 +750,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F14",
+        "code": "F14",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -790,8 +790,8 @@
     "eventsJSExpected": [
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F15",
+        "code": "F15",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -800,8 +800,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F15",
+        "code": "F15",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -840,8 +840,8 @@
     "eventsJSExpected": [
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F16",
+        "code": "F16",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -850,8 +850,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F16",
+        "code": "F16",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -890,8 +890,8 @@
     "eventsJSExpected": [
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F17",
+        "code": "F17",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -900,8 +900,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F17",
+        "code": "F17",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -940,8 +940,8 @@
     "eventsJSExpected": [
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F18",
+        "code": "F18",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -950,8 +950,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F18",
+        "code": "F18",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -990,8 +990,8 @@
     "eventsJSExpected": [
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F19",
+        "code": "F19",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -1000,8 +1000,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F19",
+        "code": "F19",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -5643,8 +5643,8 @@
     "eventsJSExpected": [
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "Clear",
+        "code": "NumLock",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -5653,8 +5653,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "Clear",
+        "code": "NumLock",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -10077,8 +10077,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F14",
+        "code": "F14",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -10087,8 +10087,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F14",
+        "code": "F14",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -10169,8 +10169,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F15",
+        "code": "F15",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -10179,8 +10179,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F15",
+        "code": "F15",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -10261,8 +10261,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F16",
+        "code": "F16",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -10271,8 +10271,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F16",
+        "code": "F16",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -10353,8 +10353,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F17",
+        "code": "F17",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -10363,8 +10363,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F17",
+        "code": "F17",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -10445,8 +10445,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F18",
+        "code": "F18",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -10455,8 +10455,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F18",
+        "code": "F18",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -10537,8 +10537,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F19",
+        "code": "F19",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -10547,8 +10547,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F19",
+        "code": "F19",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -17681,8 +17681,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F14",
+        "code": "F14",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "true",
@@ -17691,8 +17691,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F14",
+        "code": "F14",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "true",
@@ -17773,8 +17773,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F15",
+        "code": "F15",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "true",
@@ -17783,8 +17783,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F15",
+        "code": "F15",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "true",
@@ -17865,8 +17865,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F16",
+        "code": "F16",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "true",
@@ -17875,8 +17875,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F16",
+        "code": "F16",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "true",
@@ -17957,8 +17957,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F17",
+        "code": "F17",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "true",
@@ -17967,8 +17967,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F17",
+        "code": "F17",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "true",
@@ -18049,8 +18049,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F18",
+        "code": "F18",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "true",
@@ -18059,8 +18059,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F18",
+        "code": "F18",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "true",
@@ -18141,8 +18141,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F19",
+        "code": "F19",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "true",
@@ -18151,8 +18151,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F19",
+        "code": "F19",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "true",
@@ -25019,8 +25019,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "Clear",
+        "code": "NumLock",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "true",
@@ -25029,8 +25029,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "Clear",
+        "code": "NumLock",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "true",
@@ -28331,8 +28331,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F14",
+        "code": "F14",
         "location": "0",
         "altKey": "true",
         "ctrlKey": "false",
@@ -28341,8 +28341,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F14",
+        "code": "F14",
         "location": "0",
         "altKey": "true",
         "ctrlKey": "false",
@@ -28423,8 +28423,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F15",
+        "code": "F15",
         "location": "0",
         "altKey": "true",
         "ctrlKey": "false",
@@ -28433,8 +28433,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F15",
+        "code": "F15",
         "location": "0",
         "altKey": "true",
         "ctrlKey": "false",
@@ -28515,8 +28515,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F16",
+        "code": "F16",
         "location": "0",
         "altKey": "true",
         "ctrlKey": "false",
@@ -28525,8 +28525,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F16",
+        "code": "F16",
         "location": "0",
         "altKey": "true",
         "ctrlKey": "false",
@@ -28607,8 +28607,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F17",
+        "code": "F17",
         "location": "0",
         "altKey": "true",
         "ctrlKey": "false",
@@ -28617,8 +28617,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F17",
+        "code": "F17",
         "location": "0",
         "altKey": "true",
         "ctrlKey": "false",
@@ -28699,8 +28699,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F18",
+        "code": "F18",
         "location": "0",
         "altKey": "true",
         "ctrlKey": "false",
@@ -28709,8 +28709,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F18",
+        "code": "F18",
         "location": "0",
         "altKey": "true",
         "ctrlKey": "false",
@@ -28791,8 +28791,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F19",
+        "code": "F19",
         "location": "0",
         "altKey": "true",
         "ctrlKey": "false",
@@ -28801,8 +28801,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F19",
+        "code": "F19",
         "location": "0",
         "altKey": "true",
         "ctrlKey": "false",
@@ -35974,8 +35974,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "Clear",
+        "code": "NumLock",
         "location": "0",
         "altKey": "true",
         "ctrlKey": "false",
@@ -35984,8 +35984,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "Clear",
+        "code": "NumLock",
         "location": "0",
         "altKey": "true",
         "ctrlKey": "false",
@@ -39275,8 +39275,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F14",
+        "code": "F14",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -39285,8 +39285,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F14",
+        "code": "F14",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -39367,8 +39367,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F15",
+        "code": "F15",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -39377,8 +39377,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F15",
+        "code": "F15",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -39459,8 +39459,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F16",
+        "code": "F16",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -39469,8 +39469,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F16",
+        "code": "F16",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -39551,8 +39551,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F17",
+        "code": "F17",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -39561,8 +39561,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F17",
+        "code": "F17",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -39643,8 +39643,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F18",
+        "code": "F18",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -39653,8 +39653,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F18",
+        "code": "F18",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -39735,8 +39735,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F19",
+        "code": "F19",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -39745,8 +39745,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "F19",
+        "code": "F19",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -45715,8 +45715,8 @@
       },
       {
         "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "Clear",
+        "code": "NumLock",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -45725,8 +45725,8 @@
       },
       {
         "type": "keyup",
-        "key": "￿",
-        "code": "KeyA",
+        "key": "Clear",
+        "code": "NumLock",
         "location": "0",
         "altKey": "false",
         "ctrlKey": "false",
@@ -56142,56 +56142,6 @@
     ]
   },
   {
-    "name": "^",
-    "comments": "de - disabled",
-    "eventsJava": [
-      {
-        "id": 401,
-        "modifiers": 0,
-        "keyCode": 514,
-        "keyChar": "￿",
-        "keyLocation": 1,
-        "rawCode": 0,
-        "primaryLevelUnicode": 0,
-        "scancode": 0,
-        "extendedKeyCode": 514
-      },
-      {
-        "id": 402,
-        "modifiers": 0,
-        "keyCode": 514,
-        "keyChar": "^",
-        "keyLocation": 1,
-        "rawCode": 0,
-        "primaryLevelUnicode": 0,
-        "scancode": 0,
-        "extendedKeyCode": 514
-      }
-    ],
-    "eventsJSExpected": [
-      {
-        "type": "keydown",
-        "key": "￿",
-        "code": "KeyA",
-        "location": "0",
-        "altKey": "false",
-        "ctrlKey": "false",
-        "metaKay": "false",
-        "shiftKey": "false"
-      },
-      {
-        "type": "keyup",
-        "key": "^",
-        "code": "Digit6",
-        "location": "0",
-        "altKey": "false",
-        "ctrlKey": "false",
-        "metaKay": "false",
-        "shiftKey": "false"
-      }
-    ]
-  },
-  {
     "name": "1",
     "comments": "de",
     "eventsJava": [
diff --git a/native/CefBrowser_N.cpp b/native/CefBrowser_N.cpp
index 696cef9..3b92ee0 100644
--- a/native/CefBrowser_N.cpp
+++ b/native/CefBrowser_N.cpp
@@ -1697,6 +1697,7 @@
 
   JNI_STATIC_DEFINE_INT(env, cls, VK_BACK_SPACE);
   JNI_STATIC_DEFINE_INT(env, cls, VK_DELETE);
+  JNI_STATIC_DEFINE_INT(env, cls, VK_CLEAR);
   JNI_STATIC_DEFINE_INT(env, cls, VK_DOWN);
   JNI_STATIC_DEFINE_INT(env, cls, VK_ENTER);
   JNI_STATIC_DEFINE_INT(env, cls, VK_ESCAPE);
@@ -1722,6 +1723,12 @@
   JNI_STATIC_DEFINE_INT(env, cls, VK_F11);
   JNI_STATIC_DEFINE_INT(env, cls, VK_F12);
   JNI_STATIC_DEFINE_INT(env, cls, VK_F13);
+  JNI_STATIC_DEFINE_INT(env, cls, VK_F14);
+  JNI_STATIC_DEFINE_INT(env, cls, VK_F15);
+  JNI_STATIC_DEFINE_INT(env, cls, VK_F16);
+  JNI_STATIC_DEFINE_INT(env, cls, VK_F17);
+  JNI_STATIC_DEFINE_INT(env, cls, VK_F18);
+  JNI_STATIC_DEFINE_INT(env, cls, VK_F19);
 
   JNI_STATIC_DEFINE_INT(env, cls, VK_META);
   JNI_STATIC_DEFINE_INT(env, cls, VK_SHIFT);
@@ -1764,6 +1771,9 @@
   } else if (key_code == JNI_STATIC(VK_DELETE)) {
     cef_event.native_key_code = kVK_ForwardDelete;
     cef_event.unmodified_character = kDeleteCharCode;
+  } else if (key_code == JNI_STATIC(VK_CLEAR)) {
+    cef_event.native_key_code = kVK_ANSI_KeypadClear;
+    cef_event.unmodified_character = /* NSClearLineFunctionKey */ 0xF739;
   } else if (key_code == JNI_STATIC(VK_DOWN)) {
     cef_event.native_key_code = kVK_DownArrow;
     cef_event.unmodified_character = /* NSDownArrowFunctionKey */ 0xF701;
@@ -1836,6 +1846,24 @@
   } else if (key_code == JNI_STATIC(VK_F13)) {
     cef_event.native_key_code = kVK_F13;
     cef_event.unmodified_character = 63248;
+  } else if (key_code == JNI_STATIC(VK_F14)) {
+    cef_event.native_key_code = kVK_F14;
+    cef_event.unmodified_character = 63249;
+  } else if (key_code == JNI_STATIC(VK_F15)) {
+    cef_event.native_key_code = kVK_F15;
+    cef_event.unmodified_character = 63250;
+  } else if (key_code == JNI_STATIC(VK_F16)) {
+    cef_event.native_key_code = kVK_F16;
+    cef_event.unmodified_character = 63251;
+  } else if (key_code == JNI_STATIC(VK_F17)) {
+    cef_event.native_key_code = kVK_F17;
+    cef_event.unmodified_character = 63252;
+  } else if (key_code == JNI_STATIC(VK_F18)) {
+    cef_event.native_key_code = kVK_F18;
+    cef_event.unmodified_character = 63253;
+  } else if (key_code == JNI_STATIC(VK_F19)) {
+    cef_event.native_key_code = kVK_F19;
+    cef_event.unmodified_character = 63254;
   } else if (key_code == JNI_STATIC(VK_META)) {
     cef_event.native_key_code = key_location == JNI_STATIC(KEY_LOCATION_RIGHT)
                                     ? kVK_RightCommand