Efl doesn't support modal popup or nested main loop by the platform side. But with the current webkit implementation, an application that uses webkit should use those, because the apis for creating alert(), confirm(), prompt() popups work as synchronously. So application need to implements some complex way to support modal popup without platform support. Fortunately, WK2 has a sync ipc message with delayed reply. With applying this to the ipc messages for js popup, those apis can work as asynchronouse way on UIProcess side. (WebProcess main run loop will be suspended until the reply for the ipc message is received.) Async api is more flexible than sync api. It has an advantage for the platforms like efl, and it can be used as sync way on some other platforms which can use modal popup or nested main loop.
Created attachment 165083 [details] Patch
This is a partial patch for providing async api for javascript popup. For the first step, I changed the below sync apis with delayed reply. Messages::WebPageProxy::RunJavaScriptAlert Messages::WebPageProxy::RunJavaScriptConfirm Messages::WebPageProxy::RunJavaScriptPrompt
Comment on attachment 165083 [details] Patch Attachment 165083 [details] did not pass mac-ews (mac): Output: http://queues.webkit.org/results/13958507