[Chromium] Page popup should close on mouse down
https://bugs.webkit.org/show_bug.cgi?id=92092

Reviewed by Kent Tamura.

Page popup should close on mouse down because some elements(e.g. <input type=color>) don't have a blur event that
we can hook to hide the page popup when the user clicks on the page.

* src/WebPagePopupImpl.h:
(WebKit::WebPagePopupImpl::hasSamePopupClient): Returns true if the given WebPagePopupImpl have the same popup client.
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::handleMouseDown): Close all popups when the page is clicked. Checks if the
mouse down event opened the same popup we just closed.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123463 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Add quirks for running the web process in a profiler shell, like valgrind
https://bugs.webkit.org/show_bug.cgi?id=87672

Reviewed by Jocelyn Turcotte.

Source/WebKit2:

If environment variables QT_WEBKIT_WEB_PROCESS_COMMAND_PREFIX
and/or QT_WEBKIT_PLUGIN_PROCESS_COMMAND_PREFIX are set, use their
values as the prefix of the command when launching the child process.
Example usage:
    export QT_WEB_PROCESS_COMMAND_PREFIX="valgrind --smc-check=all"
    ./MiniBrowser http://somepage.html
    ./WebKitTestRunner --no-timeout-at-all some_layouttest.html

* UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
(WebKit::ProcessLauncher::launchProcess):

Tools:

Add --no-timeout-at-all command line switch to not time out no matter how
long the web process does it's job. --no-timeout is not enough for profiling
purposes because it only affects the timeout when we are waiting for the end
of the test. We use another timeout to control how much we wait for the web
process to initialize before and reset after the test and it could also easily
expire when running under valgrind. We should keep the behavior of --no-timeout
to not disable this timout check because --no-timeout is used by performace tests
and those should not wait for the web process to initialize and reset more than
normal tests.

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::TestController):
(WTR::TestController::initialize):
(WTR::TestController::runUntil):
* WebKitTestRunner/TestController.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123464 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] MSVC: unresolved external symbol __DllMainCRTStartup@12
https://bugs.webkit.org/show_bug.cgi?id=91229

Reviewed by Jocelyn Turcotte.

In order to successfully link a DLL on Windows we need to have at least
one object file (or compilation unit). The forward export header files were
supposed to be that, but unfortunately the rule in win32/default_post.prf for
creating the header files had some bugs, among others that it did an exists()
check on the depending static library. At the time qmake is ran those libraries
do not exist yet and therefore the corresponding extra compiler rules were never
created, resulting in empty OBJECTS/SOURCES.

Even without such an exists() check, qmake extra compilers require the files
referred to in the .input variable to exist at qmake time. In this case the input
files were the static libraries, which do not exist yet.

This patch solves this by using a qmake extra target instead of extra
compiler, which does not have this limitation. The target is referenced
through the extension of GENERATED_SOURCES.

The patch also adds a d/_debug suffix for debug builds, do allow for separate
symbol exports if necessary.

* Scripts/generate-win32-export-forwards: Support multiple input files, i.e.
consider the last argument to be the output file and everything else input.
* qmake/mkspecs/features/win32/default_post.prf:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123465 268f45cc-cd09-0410-ab3c-d52691b4dbfc