When creating a new window by calling "window.open('http://www.cnn.com')", it loads the "file://$${applicationpath}" because the ChromeClientQt::createWindow() never check the request whether is empty or not, and it loads the app directory when the request is empty. When calling window.open('http://www.cnn.com'), the WebCore::createWindow() first 1) call client to create a new window 2) load cnn.com by calling changeLocation(); While in step 1), qt's chrome client always tries to load an empty request. I think we should check the request because 1)it helps the performance 2)I found the gtk's createWindow checks the request every time. e.g. In ChromeClientGtk.cpp:129 Page* ChromeClient::createWindow(...) { ... if (!frameLoadRequest.isEmpty()) webkit_web_view_open(....); }
Created attachment 53718 [details] proposed patch
Comment on attachment 53718 [details] proposed patch Good catch!
Comment on attachment 53718 [details] proposed patch Clearing flags on attachment: 53718 Committed r57982: <http://trac.webkit.org/changeset/57982>
All reviewed patches have been landed. Closing bug.
Revision r57982 cherry-picked into qtwebkit-2.0 with commit 624d8662f88895a1a25212ee088d6443c0e8e736