RESOLVED FIXED 85230
Full screen will exit during a provisional load of a non-ancestor iframe.
https://bugs.webkit.org/show_bug.cgi?id=85230
Summary Full screen will exit during a provisional load of a non-ancestor iframe.
Jer Noble
Reported 2012-04-30 14:09:59 PDT
Full screen will exit during a provisional load of a non-ancestor iframe.
Attachments
Patch (14.17 KB, patch)
2012-04-30 15:57 PDT, Jer Noble
no flags
Patch (30.21 KB, patch)
2012-05-03 15:42 PDT, Jer Noble
no flags
Patch (23.09 KB, patch)
2012-05-04 10:45 PDT, Jer Noble
no flags
Patch (13.48 KB, patch)
2012-05-04 10:56 PDT, Jer Noble
no flags
Patch (16.89 KB, patch)
2012-05-04 10:57 PDT, Jer Noble
mjs: review+
buildbot: commit-queue-
Jer Noble
Comment 1 2012-04-30 15:57:56 PDT
Maciej Stachowiak
Comment 2 2012-05-02 23:32:23 PDT
Comment on attachment 139537 [details] Patch Surely it must be possible to make a test for this, given that the functionality is exposed to WKTR. If it's not testable, please explain why not.
Jer Noble
Comment 3 2012-05-03 09:11:30 PDT
Okay, writing up a test case now.
Jer Noble
Comment 4 2012-05-03 09:41:06 PDT
I'm hitting upon a difficult problem in writing a layout test: because both DRT and WKTR intercept the requests to enter and exit full screen, as far as they are concerned, there is no full screen controller present when the didStartProvisionalLoadForFrame message comes through. Therefore they do not attempt to exit full screen at that point. So I can craft a test which works in a browser (i.e. Safari), but not in DRT or WKTR.
Jer Noble
Comment 5 2012-05-03 10:04:49 PDT
There's the additional problem that the behavior in the bug wasn't reproducing in DRT or WKTR in the first place. So it will be impossible to craft a test which fails in the current build, but passes with the patch applied.
Maciej Stachowiak
Comment 6 2012-05-03 15:37:12 PDT
OK, I'll buy that. Can you add that explanation to the ChangeLog and repost for review?
Jer Noble
Comment 7 2012-05-03 15:42:14 PDT
Created attachment 140114 [details] Patch Added a testcase, which while it will not fail when run against older builds, will at least catch future regressions.
Jer Noble
Comment 8 2012-05-03 16:10:26 PDT
Darin Adler
Comment 9 2012-05-04 10:12:40 PDT
Comment on attachment 140114 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=140114&action=review > Source/WebKit/mac/ChangeLog:15 > + Move WebKitFullScreenListener into its own file: Why mix this into the same patch with a bug fix? This obscures the question of whether you made any code changes to WebKitFullScreenListener. Why not move it into its own file separately, first? > Source/WebKit/mac/WebView/WebView.mm:1858 > + WebKitFullScreenListener* listener = [[WebKitFullScreenListener alloc] initWithElement:element]; The * is positioned wrong here. > Source/WebKit/mac/WebView/WebView.mm:1863 > + WebFullScreenController* controller = _private->newFullscreenController; > + [controller close]; The * is positioned wrong here and I’m not sure why we’re using a local variable here when we did not use one on the line above.
Jer Noble
Comment 10 2012-05-04 10:29:58 PDT
Comment on attachment 140114 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=140114&action=review >> Source/WebKit/mac/ChangeLog:15 >> + Move WebKitFullScreenListener into its own file: > > Why mix this into the same patch with a bug fix? This obscures the question of whether you made any code changes to WebKitFullScreenListener. > > Why not move it into its own file separately, first? Only for expediency. Two dependent bugs & patches makes the EWS bots sad. That said, I can pull this out into a separate patch & bug, since it's already passed the EWS bots. >> Source/WebKit/mac/WebView/WebView.mm:1858 >> + WebKitFullScreenListener* listener = [[WebKitFullScreenListener alloc] initWithElement:element]; > > The * is positioned wrong here. Ack. Changed. >> Source/WebKit/mac/WebView/WebView.mm:1863 >> + [controller close]; > > The * is positioned wrong here and I’m not sure why we’re using a local variable here when we did not use one on the line above. Ditto. And no good reason. I'll eliminate the local variable.
Jer Noble
Comment 11 2012-05-04 10:42:52 PDT
Gah, webkit-patch upload tried to upload to the wrong bug, and obseleted the patch that darin r+'d. Sigh, i'll upload a new patch that's dependent on https://bugs.webkit.org/show_bug.cgi?id=85640.
Jer Noble
Comment 12 2012-05-04 10:45:55 PDT
Jer Noble
Comment 13 2012-05-04 10:56:19 PDT
Jer Noble
Comment 14 2012-05-04 10:57:19 PDT
Build Bot
Comment 15 2012-05-04 11:04:55 PDT
Maciej Stachowiak
Comment 16 2012-05-04 12:47:05 PDT
Comment on attachment 140277 [details] Patch r=me
Jer Noble
Comment 17 2012-05-04 13:59:48 PDT
Note You need to log in before you can comment on or make changes to this bug.