While I try to run perf tests with debug build on Qt I got this message:
abrhm@abrhm-H61M-S2V-B3:~/webkit/WK$ Tools/Scripts/run-perf-tests --output-json-path perf-test-results.json --no-show-results --reset-results --platform qt-5.0-wk2 --debug --webkit-test-runner
Running 115 tests
Running Animation/balls.html (1 of 115)
ERROR: Unabled to create LocalStorage database path
/home/abrhm/webkit/WK/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.cpp(149) : WTF::String WebKit::LocalStorageDatabaseTracker::databasePath(const WTF::String&) const
ERROR: Icon database already has a path and is already open. We don't currently support changing its path and reopening.
/home/abrhm/webkit/WK/Source/WebKit2/UIProcess/WebIconDatabase.cpp(69) : void WebKit::WebIconDatabase::setDatabasePath(const WTF::String&)
Finished: 46.360048 s
The icon database setpath were called second time in QtWebIconDatabaseClient.cpp:57
The WTR set it first, but if we don't call WTR we still need it.
I could solve this problem with checking whether the DUMPRENDERTREE_TEMP enviromental variable set, but it is not a very reliable idea I think.
I try to find some function which check the path is set already, without any success.
Is there any other way that we can check whether the path already set?
EFL and GTK check if the database is open or not before setting it.
- EFL: Source/WebKit2/UIProcess/API/efl/ewk_context.cpp - setFaviconDatabaseDirectoryPath()
- GTK: Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp - webkit_web_context_set_favicon_database_directory()
Additionally cc-ing Simon and Jocelyn, they added the second call for
WKContextSetIconDatabasePath() in https://trac.webkit.org/changeset/145517
*** Bug 119837 has been marked as a duplicate of this bug. ***
The icon database code in WebKit2 is limited in this area, and I can't think of a simple way to solve this properly.
Silently discarding the setDatabasePath call is quite ugly if the two paths are different, in this case it would mean that the DUMPRENDERTREE_TEMP temporaryFolder would be the one discarded.
Does it work fine in release? Is there any need to run WTR in debug with DUMPRENDERTREE_TEMP?
Another option might be to hijack the home directory through fancy environment variables, where all databases end up, instead of relying on DUMPRENDERTREE_TEMP.
=== Bulk closing of Qt bugs ===
If you believe that this bug report is still relevant for a non-Qt port of webkit.org, please re-open it and remove [Qt] from the summary.
If you believe that this is still an important QtWebKit bug, please fill a new report at https://bugreports.qt-project.org and add a link to this issue. See http://qt-project.org/wiki/ReportingBugsInQt for additional guidelines.