WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
39355
[Qt] Local URLs invoke IAP query on Symbian
https://bugs.webkit.org/show_bug.cgi?id=39355
Summary
[Qt] Local URLs invoke IAP query on Symbian
Janne Koskinen
Reported
2010-05-19 06:20:32 PDT
Running local queries will pop up IAP (Internet Access Point) - dialog requesting for connection. This is currently blocking us from running QtWebkit autotests as test environment will get stuck waiting for the user to select IAP. Example stack when running qwebelement auto test where we query for QUrl dataUrl("data:text/html,<h1>Test"); Thread [Thread id: 5476] (Suspended) 21 QWebFrame::load() C:\repos\qt\src\3rdparty\webkit\WebKit\qt\Api\qwebframe.cpp:902 0x062f1590 20 QWebFrame::load() C:\repos\qt\src\3rdparty\webkit\WebKit\qt\Api\qwebframe.cpp:886 0x062f151c 19 QWebFrame::setUrl() C:\repos\qt\src\3rdparty\webkit\WebKit\qt\Api\qwebframe.cpp:797 0x062f0f5e 18 QWebView::setUrl() C:\repos\qt\src\3rdparty\webkit\WebKit\qt\Api\qwebview.cpp:546 0x0630745a 17 tst_QWebFrame::symmetricUrl() C:\repos\webkit-mirror\webkit\WebKit\qt\tests\qwebframe\tst_qwebframe.cpp:2187 0x0041c459 16 tst_QWebFrame::qt_metacall() C:\repos\webkit-mirror\webkit\WebKit\qt\tests\qwebframe\tst_qwebframe.moc:672 0x0042aa3f 15 QMetaObject::metacall() C:\repos\qt\src\corelib\kernel\qmetaobject.cpp:237 0x0253e124 14 QMetaMethod::invoke() C:\repos\qt\src\corelib\kernel\qmetaobject.cpp:1568 0x02540cc0 13 QMetaObject::invokeMethod() C:\repos\qt\src\corelib\kernel\qmetaobject.cpp:1147 0x0254029e 12 QMetaObject::invokeMethod() C:\repos\qt\src\corelib\kernel\qobjectdefs.h:407 0x0248c1dd 11 QTest::qInvokeTestMethodDataEntry() C:\repos\qt\src\testlib\qtestcase.cpp:1243 0x05932ac4 10 QTest::qInvokeTestMethod() C:\repos\qt\src\testlib\qtestcase.cpp:1352 0x05933162 9 QTest::qInvokeTestMethods() C:\repos\qt\src\testlib\qtestcase.cpp:1507 0x05933758 8 QTest::qExec() C:\repos\qt\src\testlib\qtestcase.cpp:1716 0x059338c6 7 main() C:\repos\webkit-mirror\webkit\WebKit\qt\tests\qwebframe\tst_qwebframe.cpp:2989 0x00426b44 And execution gets stuck in ::waitForSignal(m_view, SIGNAL(loadFinished(bool))); One option is to workaround the issue by using bearermanagement to set default IAP to be used throught out the the tests but I do think this is a real bug least on URLs that are definitely local.
Attachments
Latest patch
(12.31 KB, patch)
2010-06-09 00:23 PDT
,
Samuel Nevala
no flags
Details
Formatted Diff
Diff
Latest patch
(12.65 KB, patch)
2010-06-14 21:47 PDT
,
Samuel Nevala
no flags
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Markus Goetz
Comment 1
2010-05-19 06:38:58 PDT
This is how QNAM tries backends: http (since it is most often used) data ftp file engines We don't have any intention of changing this in QNAM. Who exactly triggers the IAP dialog? The QWebFrame from your backtrace? This is wrong I'd say.
Markus Goetz
Comment 2
2010-05-19 06:40:35 PDT
..And I think it's valid to use the bearer stuff for QtWebKit auto tests. After all it's not the layer you want to test, you want to test webkit (e.g. rendering), not bearer.
Simon Hausmann
Comment 3
2010-05-20 01:37:42 PDT
Do you know what could cause the IAP popup? It must be some code in Qt, I guess, but which API triggers it? DNS lookups?
Janne Koskinen
Comment 4
2010-05-20 04:13:02 PDT
ok so it looks like it is QNAM backend order that invokes the IAP dialog. I'll dig more deeper into this. Why this is a bug in my view in Symbian? When you add network connection you need to add NetworkServices capability to your application. This capablity is self-signable but it will create a dialog prompting the user "do you allow this application to access network?" at the time of installation. Second thing is that query will cause data to be moved, which costs money. how much depends on your data plan. 3rd thing is what this bug describes. you need to do network management on application that wouldn't need it. --- Bearer management workaround would be possible but it doesn't support user selected IAP (new addition to API needed?) meaning we are left with hardcoding the IAP which is acceptable only if the test environment is always the same.
Petri Ojala
Comment 5
2010-05-24 02:45:19 PDT
QtTriaged keyword added
Markus Goetz
Comment 6
2010-06-03 06:04:44 PDT
As I mentioned, with the recent Qt changes it should not query for non-HTTP URLs. If it still does you need to provide us with information exactly where this happens.
Janne Koskinen
Comment 7
2010-06-03 06:20:34 PDT
(In reply to
comment #6
)
> As I mentioned, with the recent Qt changes it should not query for non-HTTP URLs. > If it still does you need to provide us with information exactly where this happens.
tst_QWebFrame::symmetricUrl() ... QUrl dataUrl("data:text/html,<h1>Test"); ... is not specific enough ? :) Test environment S60 4.7 branch ran on Nokia 5800 express music using S60 5.0 SDK from SDK git repo. Last pull that had this behaviour was yesterday (2.6) that still asked for IAP running when using data URL. But yes I agree it we should have more platform versions to choose when reporting. This particular issue is more severe in 3.1 where we don't have user selected IAP - feature.
Samuel Nevala
Comment 8
2010-06-09 00:23:22 PDT
Created
attachment 58218
[details]
Latest patch This is a workaround for Symbian. Comments appreciated.
Early Warning System Bot
Comment 9
2010-06-09 01:06:19 PDT
Attachment 58218
[details]
did not build on qt: Build output:
http://webkit-commit-queue.appspot.com/results/3193075
Csaba Osztrogonác
Comment 10
2010-06-09 01:09:06 PDT
(In reply to
comment #9
)
>
Attachment 58218
[details]
did not build on qt: > Build output:
http://webkit-commit-queue.appspot.com/results/3193075
Are QNetworkConfigurationManager and QNetworkSession the part of Qt 4.7.0? I asked it, because our buildbots and EWS have Qt 4.6.0 and Qt 4.6.2 and we should support them too.
Samuel Nevala
Comment 11
2010-06-14 21:47:20 PDT
Created
attachment 58751
[details]
Latest patch Added qt version check and better description to util.h Ideal place for this fix would be at QTest::qExec.
Ariya Hidayat
Comment 12
2010-08-11 05:29:59 PDT
The use of OPENNETWORKSESSION does not look really C++. Why not a function e.g. initializeNetworkSession() ?
Simon Hausmann
Comment 13
2010-09-22 05:50:41 PDT
As Misha found out: This was actually a bug in QNetworkAccessManager in Qt 4.7, that initiated the bearer management even for file and qrc URLs. It is tracked and fixed in
http://bugreports.qt.nokia.com/browse/QTBUG-13805
Simon Hausmann
Comment 14
2010-10-07 08:11:11 PDT
Comment on
attachment 58751
[details]
Latest patch Clearing review as this bug is currently marked as resolved.
Markus Goetz
Comment 15
2010-10-11 01:05:09 PDT
BTW FYI, at least in Qt 4.8 also "data:" URLs do not need network session anymore.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug