NEW 135509
WebPageProxy::viewDidEnterWindow and viewDidLeaveWindow not being executed when swapping windows
https://bugs.webkit.org/show_bug.cgi?id=135509
Summary WebPageProxy::viewDidEnterWindow and viewDidLeaveWindow not being executed wh...
Brent Fulgham
Reported 2014-08-01 09:37:24 PDT
While debugging Bug 135493, I found that WebPageProxy::viewDidEnterWindow and WebPageProxy::viewDidLeaveWindow methods were not getting called when moving a WKView from one NSWindow in the UIProcess (e.g., the main application window) to the Fullscreen window (see WKFullScreenWindowController::enterFullScreen). This seems to be happening because the window view state is coalesced such that the operation of moving from application window to fullscreen window, which should involve (1) leaving the application window, and (2) entering the Fullscreen window, is seen as a no-op by the WebPageProxy::dispatchViewStateChange. We should probably monitor Window ID so that we can avoid combing the "leave->add" pair into a no-op so that the viewDidLeaveWindow is called on the application window, and viewDidEnterWindow is called on the Fullscreen window (and vice-versa when exiting Fullscreen).
Attachments
Radar WebKit Bug Importer
Comment 1 2014-08-01 09:51:22 PDT
Tim Horton
Comment 2 2014-08-01 10:54:09 PDT
FWIW the reason we do this coalescing is so that if you shuffle a view around in the view hierarchy of a single window, we won't go all the way to the Web process unparenting layer trees and whatnot.
Note You need to log in before you can comment on or make changes to this bug.