Bug 33389

Summary: window.focus() should be disabled when not user-initiated
Product: WebKit Reporter: Steve Block <steveblock>
Component: WebCore Misc.Assignee: Nobody <webkit-unassigned>
Status: NEW    
Severity: Normal CC: android-webkit-unforking, ap, jcivelli, phanna, sam, steveblock
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on: 33381    
Bug Blocks:    
Attachments:
Description Flags
Attempt at a patch sam: review-

Steve Block
Reported 2010-01-08 09:37:13 PST
Currently, window.focus can be used to shift the focus to another tab or window, even if this is not user-initiated. This can cause a jarring user experience so should be disallowed. Note that Firefox disables window.focus() when called from a page's onload handler.
Attachments
Attempt at a patch (1.40 KB, patch)
2010-08-16 14:14 PDT, Jay Civelli
sam: review-
Steve Block
Comment 1 2010-01-08 09:41:22 PST
The fix for this will require the ResourceRequest 'userGesture' flag being added in Bug 33381
Sam Weinig
Comment 2 2010-01-10 13:48:49 PST
(In reply to comment #1) > The fix for this will require the ResourceRequest 'userGesture' flag being > added in Bug 33381 Why is that? Could't we just query whether a userGesture (ala popup detection) was taking place when calling window.focus()?
Jay Civelli
Comment 3 2010-08-16 14:14:19 PDT
Created attachment 64522 [details] Attempt at a patch
Sam Weinig
Comment 4 2010-08-16 23:41:50 PDT
Comment on attachment 64522 [details] Attempt at a patch This needs tests. r-.
Jay Civelli
Comment 5 2010-08-17 00:22:14 PDT
I was not sure on how to simulate user gesture in a layout test. The LayoutTestController does not seem to have anything to that effect. Do you have any pointers?
Alexey Proskuryakov
Comment 6 2010-08-17 03:14:03 PDT
In most cases, one can simulate a user gesture with eventSender. For this to go in, we'd need a more extensive research of compatibility issues. Per the description, the proposed behavior doesn't even match Firefox. Are we sure that focusing windows outside of a user gesture is never good?
Note You need to log in before you can comment on or make changes to this bug.