gecko-dev/dom/ipc
Masayuki Nakano 44d5a33919 Bug 1333459 - part2-2: EventStateManager should check if it needs to wait reply from remote content before handling access keys r=smaug
Currently, access key is handled in EventStateManager::PreHandleEvent() with eKeyPress event, i.e., before dispatching it into the DOM tree, if the access key is registered in EventStateManager.  So, the main process does not check if the preceding eKeyDown event is consumed in focused remote process.

When preceding eKeyDown event is consumed in the main process, eKeyPress event won't be dispatched by widget.  However, if remote process has focus, it's impossible widget to stop dispatching eKeyPress event because preceding eKeyDown event hasn't been handled in the focused remote process yet.  Therefore, main process needs to post eKeyPress event to check if preceding eKeyDown event was consumed.  When eKeyPress event is marked as "waiting reply from remote process", TabChild sends it back to the main process only when preceding eKeyDown event wasn't consumed.  So, only when eKeyPress event is back to the main process, main process should handle accesskey with it.

This patch makes EventStateManager::PreHandleEvent() check if a remote target has focus before handling accesskey.  If a remote process has accesskey and there is an accesskey matching with eKeyPress event, it marks the event as "waiting reply from remote content" and stop propagation in the process.

Finally, when eKeyPress event is sent back to TabParent, TabParent::RecvReplyKeyEvent() calls EventStateManager::HandleAccessKey() before dispatching the reply event into the DOM tree.

MozReview-Commit-ID: KsOkakaIVzb

--HG--
extra : rebase_source : 7e0c6966a1bde085e34d45bca4b0166b9fc2f3f1
2017-07-22 10:50:41 +09:00
..
tests Backed out changeset e7a3ac603f7c (bug 1366294) 2017-07-21 15:19:21 +02:00
CoalescedWheelData.cpp Bug 1337963 - Coalesce wheel events in the content process so that long wheel event handlers don't hang the content process. r=smaug 2017-02-21 17:56:46 +08:00
CoalescedWheelData.h Bug 1337963 - Coalesce wheel events in the content process so that long wheel event handlers don't hang the content process. r=smaug 2017-02-21 17:56:46 +08:00
ColorPickerParent.cpp
ColorPickerParent.h
ContentBridgeChild.cpp Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-26 14:19:58 -07:00
ContentBridgeChild.h Bug 1363323 - Add TabGroup support to PContentBridge too. r=billm. 2017-05-02 11:57:51 +02:00
ContentBridgeParent.cpp Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-26 14:19:58 -07:00
ContentBridgeParent.h Bug 1351148 Part2: Add a priority queue for input events. r=smaug. 2017-03-21 15:44:12 +08:00
ContentChild.cpp Merge m-c to inbound. a=merge 2017-07-21 09:40:28 -04:00
ContentChild.h Bug 1350640 - Send blocklist state on plugin list update; r=bsmedberg 2017-07-13 17:11:55 -07:00
ContentParent.cpp Bug 1382099 - Remove MOZ_WIDGET_GONK from dom/{base,ipc,plugins}. r=mccr8. 2017-07-21 10:52:30 +10:00
ContentParent.h Bug 1343728 - Part 4: Remove the window creation sync IPC calls, r=billm, r=smaug 2017-06-28 12:25:30 -04:00
ContentPrefs.cpp Bug 1365166 - rename security.data_uri.inherit_security_context to security.data_uri.unique_opaque_origin. r=smaug, ckerschb 2017-05-23 09:02:05 +08:00
ContentPrefs.h Bug 1356414 - Add comment explaining the purpose of ContentPrefs.cpp (NPOTB, DONTBUILD) 2017-04-13 15:20:44 -07:00
ContentProcess.cpp Backed out changeset 4e283b54baa6 (bug 1358223) for build bustage on Android at dom/ipc/ContentChild.cpp:21. r=backout 2017-05-31 21:34:13 +02:00
ContentProcess.h bug 1303096 - Stop sending sync messages soon after content process start-up r=billm 2017-02-05 00:52:38 -05:00
ContentProcessManager.cpp Bug 558184 - Part 7 - Keep track of the content parent that opened a tab so that ContentProcessManager::GetTopLevelTabParent can walk up to the top level tab parent for a JS plugin tab child. r=kanru. 2017-01-16 21:15:11 +01:00
ContentProcessManager.h Bug 558184 - Part 7 - Keep track of the content parent that opened a tab so that ContentProcessManager::GetTopLevelTabParent can walk up to the top level tab parent for a JS plugin tab child. r=kanru. 2017-01-16 21:15:11 +01:00
CPOWManagerGetter.h
DOMTypes.ipdlh Bug 1343728 - Part 4: Remove the window creation sync IPC calls, r=billm, r=smaug 2017-06-28 12:25:30 -04:00
FilePickerParent.cpp Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-26 14:19:58 -07:00
FilePickerParent.h Bug 1357846 - Introducing nsIFilePicker.displaySpecialDirectory, r=smaug 2017-04-26 18:20:19 +02:00
IdType.h
jar.mn
manifestMessages.js Bug 1374282 - script generated patch to remove Task.jsm calls, r=Mossop. 2017-06-22 12:51:42 +02:00
MemoryReportRequest.cpp Add GPU process support to nsMemoryReportingManager. (bug 1321492 part 7, r=erahm) 2017-01-26 16:35:55 -08:00
MemoryReportRequest.h Remove PMemoryReportRequest. (bug 1321492 part 3, r=erahm) 2017-01-26 16:35:54 -08:00
MemoryReportTypes.ipdlh Move MaybeFileDesc out of PContent and into an IPDL header. (bug 1321492 part 5, r=erahm) 2017-01-26 16:35:54 -08:00
moz.build Bug 1380665 - Define MOZ_CODE_COVERAGE for the entire tree. r=jmaher 2017-07-13 19:12:23 +02:00
nsIContentChild.cpp Bug 1375392 - Tweak the PROFILER_LABEL* macros. r=mstange. 2017-06-22 17:08:53 +10:00
nsIContentChild.h Bug 1363323 - Add TabGroup support to PContentBridge too. r=billm. 2017-05-02 11:57:51 +02:00
nsIContentParent.cpp Bug 1375392 - Tweak the PROFILER_LABEL* macros. r=mstange. 2017-06-22 17:08:53 +10:00
nsIContentParent.h Bug 1351148 Part2: Add a priority queue for input events. r=smaug. 2017-03-21 15:44:12 +08:00
nsIHangReport.idl Bug 1358709 - Part 1: Remove nsIHangReport::GetScriptLineNo; r=billm 2017-04-24 14:15:52 -04:00
PBrowser.ipdl Merge m-c to inbound. a=merge 2017-07-21 09:40:28 -04:00
PBrowserOrId.ipdlh
PColorPicker.ipdl
PContent.ipdl Bug 1378718 - pt 1 - Remove support for pre-loading "hidden" system fonts in gfxFT2FontList, as this was only used for FxOS. r=heycam 2017-07-06 15:06:45 +01:00
PContentBridge.ipdl Bug 1359718 - Get rid of PBlob - part 2 - PBlob, r=smaug, r=kanru 2017-05-23 18:05:19 +02:00
PContentPermission.ipdlh
PContentPermissionRequest.ipdl
PCycleCollectWithLogs.ipdl
PDocumentRenderer.ipdl
PermissionMessageUtils.cpp
PermissionMessageUtils.h
PFilePicker.ipdl Bug 1357846 - Introducing nsIFilePicker.displaySpecialDirectory, r=smaug 2017-04-26 18:20:19 +02:00
PPluginWidget.ipdl Backed out 5 changesets (bug 1338172) for linux crashtest failures a=backout 2017-02-14 14:31:54 -08:00
PProcessHangMonitor.ipdl Bug 1362866 - Get rid of MozTabChildNotReady event and all of its required infrastructure. r=billm 2017-05-07 21:26:08 -04:00
PreallocatedProcessManager.cpp Bug 1373660 - Block the preallocated process manager while a content process is being launched. r=mrbkap 2017-07-11 17:30:08 +02:00
PreallocatedProcessManager.h Bug 1373660 - Block the preallocated process manager while a content process is being launched. r=mrbkap 2017-07-11 17:30:08 +02:00
ProcessHangMonitor.cpp Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-26 14:19:58 -07:00
ProcessHangMonitor.h Bug 1366845 - Use XPCOM threads for hang monitor (r=mrbkap) 2017-05-24 11:11:28 -07:00
ProcessHangMonitorIPC.h Bug 1321052 - Convert ProcessHangMonitor to use endpoints. r=billm 2017-01-05 12:54:52 -08:00
ProcessPriorityManager.cpp Bug 1372317 part 2 - Replace LookupRemoveIf() calls with Lookup() + entry.Remove() where needed. r=froydnj 2017-06-18 17:07:54 +02:00
ProcessPriorityManager.h Bug 1366356 - Decrease the process priority of content processes that are not running a foreground tab - part 1 - visibility logic, r=smaug 2017-06-07 09:59:00 +02:00
PTabContext.ipdlh Bug 558184 - Part 8 - Load js plugins in a separate process. r=billm. 2017-05-29 12:38:46 +02:00
PURLClassifier.ipdl Bug 1343425 - Supports nsIURIClassifier.asyncClassifyLocalWithTables. r=baku 2017-04-07 14:15:16 +08:00
PURLClassifierInfo.ipdlh Bug 1343425 - Supports nsIURIClassifier.asyncClassifyLocalWithTables. r=baku 2017-04-07 14:15:16 +08:00
PURLClassifierLocal.ipdl Bug 1343425 - Supports nsIURIClassifier.asyncClassifyLocalWithTables. r=baku 2017-04-07 14:15:16 +08:00
remote-test.js
ServiceWorkerConfiguration.ipdlh
StructuredCloneData.cpp Bug 1353629 - PBlob refactoring - part 3 - IPCBlob in ClonedMessageData, r=smaug 2017-04-24 12:09:40 +02:00
StructuredCloneData.h Bug 1353629 - PBlob refactoring - part 3 - IPCBlob in ClonedMessageData, r=smaug 2017-04-24 12:09:40 +02:00
TabChild.cpp Bug 1333459 - part2-2: EventStateManager should check if it needs to wait reply from remote content before handling access keys r=smaug 2017-07-22 10:50:41 +09:00
TabChild.h Bug 1333459 - part2-2: EventStateManager should check if it needs to wait reply from remote content before handling access keys r=smaug 2017-07-22 10:50:41 +09:00
TabContext.cpp Bug 558184 - Part 8 - Load js plugins in a separate process. r=billm. 2017-05-29 12:38:46 +02:00
TabContext.h Bug 558184 - Part 8 - Load js plugins in a separate process. r=billm. 2017-05-29 12:38:46 +02:00
TabMessageUtils.cpp
TabMessageUtils.h
TabParent.cpp Bug 1333459 - part2-2: EventStateManager should check if it needs to wait reply from remote content before handling access keys r=smaug 2017-07-22 10:50:41 +09:00
TabParent.h Merge m-c to inbound. a=merge 2017-07-21 09:40:28 -04:00
TelemetryScrollProbe.cpp Bug 1362003 - nsGlobalWindow::GetLocation doesn't need to receive an ErrorResult param, r=bz 2017-05-08 15:49:31 +02:00
TelemetryScrollProbe.h Bug 1340904 - Implement telemetry scroll tracking in C++ r=smaug 2017-03-02 00:51:40 -05:00
test.xul
URLClassifierChild.h Bug 1343425 - Supports nsIURIClassifier.asyncClassifyLocalWithTables. r=baku 2017-04-07 14:15:16 +08:00
URLClassifierParent.cpp Bug 1343425 - Supports nsIURIClassifier.asyncClassifyLocalWithTables. r=baku 2017-04-07 14:15:16 +08:00
URLClassifierParent.h Bug 1343425 - Supports nsIURIClassifier.asyncClassifyLocalWithTables. r=baku 2017-04-07 14:15:16 +08:00