From 229251d0bc0024b78a8c0669a09836289c02a7cd Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Wed, 28 Apr 2010 13:14:00 +0200 Subject: qdoc: Sprinkled more breadcrumbs. --- tools/qdoc3/htmlgenerator.cpp | 24 +++++++++++++++++------- tools/qdoc3/htmlgenerator.h | 5 +++-- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index f5c304e..f8b1d59 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -1263,7 +1263,7 @@ void HtmlGenerator::generateClassLikeNode(const InnerNode *inner, } } - generateHeader(title, inner, marker, true); + generateHeader(title, inner, marker); sections = marker->sections(inner, CodeMarker::Summary, CodeMarker::Okay); generateTableOfContents(inner,marker,§ions); generateTitle(title, subtitleText, SmallSubTitle, inner, marker); @@ -1474,7 +1474,7 @@ void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker) htmlTitle = fullTitle; } - generateHeader(htmlTitle, fake, marker, true); + generateHeader(htmlTitle, fake, marker); /* Generate the TOC for the new doc format. @@ -1682,6 +1682,7 @@ void HtmlGenerator::generateBreadCrumbs(const QString& title, if (node->type() == Node::Class) { const ClassNode* cn = static_cast(node); QString name = node->moduleName(); + out() << "
  • All Modules
  • "; if (!name.isEmpty()) { out() << "
  • "; breadcrumb << Atom(Atom::AutoLink,name); @@ -1699,8 +1700,18 @@ void HtmlGenerator::generateBreadCrumbs(const QString& title, else if (node->type() == Node::Fake) { const FakeNode* fn = static_cast(node); if (node->subType() == Node::Module) { + out() << "
  • All Modules
  • "; + QString name = node->name(); + if (!name.isEmpty()) { + out() << "
  • "; + breadcrumb << Atom(Atom::AutoLink,name); + generateText(breadcrumb, 0, marker); + out() << "
  • \n"; + } } - else if (node->subType() == Node::Page) { + else if (node->subType() == Node::Group) { + if (fn->name() == QString("modules")) + out() << "
  • All Modules
  • "; } else if (node->subType() == Node::QmlClass) { } @@ -1715,8 +1726,7 @@ void HtmlGenerator::generateBreadCrumbs(const QString& title, void HtmlGenerator::generateHeader(const QString& title, const Node *node, - CodeMarker *marker, - bool mainPage) + CodeMarker *marker) { out() << QString("\n").arg(outputEncoding); out() << "\n"; @@ -2082,7 +2092,7 @@ QString HtmlGenerator::generateListOfAllMemberFile(const InnerNode *inner, QString fileName = fileBase(inner) + "-members." + fileExtension(inner); beginSubPage(inner->location(), fileName); QString title = "List of All Members for " + inner->name(); - generateHeader(title, inner, marker, false); + generateHeader(title, inner, marker); generateTitle(title, Text(), SmallSubTitle, inner, marker); out() << "

    This is the complete list of members for "; generateFullName(inner, 0, marker); @@ -2126,7 +2136,7 @@ QString HtmlGenerator::generateLowStatusMemberFile(const InnerNode *inner, } beginSubPage(inner->location(), fileName); - generateHeader(title, inner, marker, false); + generateHeader(title, inner, marker); generateTitle(title, Text(), SmallSubTitle, inner, marker); if (status == CodeMarker::Compat) { diff --git a/tools/qdoc3/htmlgenerator.h b/tools/qdoc3/htmlgenerator.h index 68e620e..d80cbdb 100644 --- a/tools/qdoc3/htmlgenerator.h +++ b/tools/qdoc3/htmlgenerator.h @@ -134,8 +134,9 @@ class HtmlGenerator : public PageGenerator void generateBreadCrumbs(const QString& title, const Node *node, CodeMarker *marker); - void generateHeader(const QString& title, const Node *node = 0, - CodeMarker *marker = 0, bool mainPage = true); + void generateHeader(const QString& title, + const Node *node = 0, + CodeMarker *marker = 0); void generateTitle(const QString& title, const Text &subTitle, SubTitleSize subTitleSize, -- cgit v0.12 From 483fdd017d9998c6d7f4a035ca615e15fbc97e6a Mon Sep 17 00:00:00 2001 From: Robert Hogan Date: Tue, 27 Apr 2010 21:22:19 +0100 Subject: Secure Cookies should only be sent over secure connections. http://bugreports.qt.nokia.com/browse/QTBUG-9618 QtWebKit currently fails the following test: LayoutTests/http/tests/xmlhttprequest/cookies.html This is because QNetworkCookieJar::cookiesForUrl returns secure cookies even when the connection is not secure. A 'secure' cookie is set by response headers from a http server as follows: 'Set-Cookie: cookie-name=value; secure' Correct QNetworkCookieJar::cookiesForUrl to ignore secure cookies when the url in the request is not 'https:'. Task-number: QTBUG-9618 Merge-request: 2372 Reviewed-by: Peter Hartmann --- src/network/access/qnetworkcookiejar.cpp | 3 +++ tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/network/access/qnetworkcookiejar.cpp b/src/network/access/qnetworkcookiejar.cpp index 8727095..0b3a918 100644 --- a/src/network/access/qnetworkcookiejar.cpp +++ b/src/network/access/qnetworkcookiejar.cpp @@ -269,6 +269,7 @@ QList QNetworkCookieJar::cookiesForUrl(const QUrl &url) const Q_D(const QNetworkCookieJar); QDateTime now = QDateTime::currentDateTime(); QList result; + bool isEncrypted = url.scheme().toLower() == QLatin1String("https"); // scan our cookies for something that matches QList::ConstIterator it = d->allCookies.constBegin(), @@ -280,6 +281,8 @@ QList QNetworkCookieJar::cookiesForUrl(const QUrl &url) const continue; if (!(*it).isSessionCookie() && (*it).expirationDate() < now) continue; + if ((*it).isSecure() && !isEncrypted) + continue; // insert this cookie into result, sorted by path QList::Iterator insertIt = result.begin(); diff --git a/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp b/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp index f4c4429..ab057dc 100644 --- a/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp +++ b/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp @@ -304,6 +304,18 @@ void tst_QNetworkCookieJar::cookiesForUrl_data() QTest::newRow("path-match-2") << allCookies << "http://nokia.com/web/" << result; QTest::newRow("path-match-3") << allCookies << "http://nokia.com/web/content" << result; + // secure cookies + allCookies.clear(); + result.clear(); + QNetworkCookie secureCookie; + secureCookie.setName("a"); + secureCookie.setPath("/web"); + secureCookie.setDomain(".nokia.com"); + secureCookie.setSecure(true); + allCookies += secureCookie; + QTest::newRow("no-match-secure-1") << allCookies << "http://nokia.com/web" << result; + QTest::newRow("no-match-secure-2") << allCookies << "http://qt.nokia.com/web" << result; + } void tst_QNetworkCookieJar::cookiesForUrl() -- cgit v0.12 From 39ee4f868bb0415875413c224f44fd9d7c2a4496 Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Wed, 28 Apr 2010 14:29:55 +0200 Subject: add some QNetworkCookieJar tests ... regarding the previous merge request. --- tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp b/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp index ab057dc..01b9c0c 100644 --- a/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp +++ b/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp @@ -315,6 +315,9 @@ void tst_QNetworkCookieJar::cookiesForUrl_data() allCookies += secureCookie; QTest::newRow("no-match-secure-1") << allCookies << "http://nokia.com/web" << result; QTest::newRow("no-match-secure-2") << allCookies << "http://qt.nokia.com/web" << result; + result += secureCookie; + QTest::newRow("match-secure-1") << allCookies << "https://nokia.com/web" << result; + QTest::newRow("match-secure-2") << allCookies << "https://qt.nokia.com/web" << result; } -- cgit v0.12