Chrome prevents certain UI elements in Mac System Preferences from responding to clicks |
|||||||||||||
Issue descriptionChrome Version: 66.0.3359.170 (Official Build) (64-bit) OS: Mac OS X 10.13.4 What steps will reproduce the problem? (1) Install (for example) Karabiner-Elements from https://pqrs.org/osx/karabiner/ (2) Mac OS X will complain that `system software from developer "Fumihiko Takayama" was blocked from loading` in System Preferences > Security & Privacy (3) Click the "Allow" button next to that message, as in https://pqrs.org/osx/karabiner/help.html#kext-allow-button-does-not-work What is the expected result? Allow button click registers and the UI responds. What happens instead? Button click does not register and the UI does not respond. I need to shut down Chrome completely (killing its process) for the click to register. This is a prevalent enough issue that the developer put up that FAQ entry, specifically blaming Chrome (which apparently uses some APIs that intercept mouse events, even when the main app is closed and only Chrome Apps are running, etc.). I'm sure there's some nice-sounding reason for this (and it's also Apple's bad for not having any error message come up like what happens in e.g. the same situation on Android), but it would still be nice to have the conversation over whether this type of annoyance is worth whatever benefit Chrome is presumably getting from the mouse interaction interception. Please use labels and text to provide additional information. If this is a regression (i.e., worked before), please consider using the bisect tool (https://www.chromium.org/developers/bisect-builds-py) to help us identify the root cause and more rapidly triage the issue. For graphics-related bugs, please copy/paste the contents of the about:gpu page at the end of this report.
,
May 16 2018
I also tried with some coworkers, but couldn't repro. It definitely seems to be a common enough issue, but likely there are additional preconditions to it manifesting. I posted on the app's google group (https://groups.google.com/forum/#!topic/osx-karabiner/3aewXjXmuJM), so hopefully someone from there can suggest better repro steps.
,
May 17 2018
It isn't actually *possible*, as far as I know, to intercept mouse clicks directed to other apps in a way that prevents them from getting delivered. If Chrome is somehow causing that to happen it sounds like a major macOS bug (?), although obviously if we can avoid doing it on our side we should. I'm going to mark this Unconfirmed instead of Untriaged and Needs-Feedback pending working repro steps.
,
May 17 2018
Thank you for providing more feedback. Adding the requester to the cc list. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
May 18 2018
Mac triage: this is still Needs-Feedback; we're waiting for a working repro.
,
May 20 2018
,
May 22 2018
Did we find a working repro? If not, I'll close in the next sweep and we can reopen when a consistent repro is found.
,
May 22 2018
I've pinged the gibhub repro issue tracker (https://github.com/tekezo/Karabiner-Elements/issues/1415), so if possible I think it'd be nice to wait a few days in case anyone monitoring the bug queue there has info on reliable repro steps. If not, then I agree this can be closed as not reproable.
,
May 22 2018
Thank you for providing more feedback. Adding the requester to the cc list. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
May 25 2018
Tested the issue on chrome reported version 66.0.3359.170 using Mac 10.12.6 with steps mentioned below: 1) Launched chrome reported version and navigated to URL: https://pqrs.org/osx/karabiner/ 2) Clicked on "Download Karabiner-Elements-12.0.0", Karabiner-Elements got downloaded 3) Installed Karabiner-Elements, able to install properly and access it @Reporter: Please find the attached screencast for your reference and let us know if we missed anything in reproducing the issue, provide your feedback on it which help in further triaging it. Thanks!
,
May 29 2018
Re. #10, that didn't include allowing the kext in System Preferences.
From what I can tell, System Preferences checks that the event source PID is either its own or '0'. Issues can come up when an app uses an event tap to intercept events, which many of the apps in the linked list do. Unfortunately, I haven't managed to get Chrome into a state where it intercepts events like this. If you or the developer of Karabiner have a set of repro steps for Chrome, we should look into this.
- - -
FWIW, here's some Swift code that can be pasted into a playground which should mimic the check done by that button. Open the companion editor and then click the red square which appears there. The "source" value should either be zero or match the "pid" value. If it's something else, then a process is intercepting events. You can use this to figure out whether Chrome is in a state where it would prevent the "Allow" button from being clicked:
import Cocoa
import PlaygroundSupport
class EventSourceView: NSView {
override func mouseDown(with event: NSEvent) {
let cgEvent = event.cgEvent!
print("source: \(cgEvent.getIntegerValueField(.eventSourceUnixProcessID)), target: \(cgEvent.getIntegerValueField(.eventTargetUnixProcessID)), pid: \(getpid())")
super.mouseDown(with: event)
}
}
let view = EventSourceView(frame: NSRect(x: 0, y: 0, width: 100, height: 100))
view.wantsLayer = true
view.layer!.backgroundColor = NSColor.red.cgColor
PlaygroundPage.current.liveView = view
,
May 29 2018
This bug is currently restricted because it was filed by a Googler and has an attachment, but I'm going to make it public unless anyone has a reason not to.
,
May 29 2018
Oh, finally, here's a video of me failing to repro the issue.
,
Jun 18 2018
Based off of #13, marking this issue as WontFix. If there is an alternate repro, feel free to reopen.
,
Aug 16
I was able to reproduce this (using the playground from #11) with an old version of the Google Play Music app (https://chrome.google.com/webstore/detail/google-play-music/fahmaaghhglfmonjliepjlchgpgfmobi). With that app installed in Chrome the red button returns the PID of the main Chrome browser process as the source; as soon as I remove the app from Chrome the source returns 0.
,
Aug 16
bizarre! Over to sdy@.
,
Aug 16
,
Oct 9
For what it's worth, I also ran into this bug, I had the same Play Music extension installed and I was unable to authorize Logitech Control Center (https://support.logitech.com/en_us/software/logitech-control-center-for-macintosh-os-x) while Chrome was running.
,
Nov 20
**UI Mass Triage** Adding labels for expert review. |
|||||||||||||
►
Sign in to add a comment |
|||||||||||||
Comment 1 by erikc...@chromium.org
, May 16 2018