26 #include <QNetworkRequest> |
26 #include <QNetworkRequest> |
27 #include <QUrl> |
27 #include <QUrl> |
28 |
28 |
29 namespace WebCore { |
29 namespace WebCore { |
30 |
30 |
31 QNetworkRequest ResourceRequest::toNetworkRequest() const |
31 QNetworkRequest ResourceRequest::toNetworkRequest(QObject* originatingFrame) const |
32 { |
32 { |
33 QNetworkRequest request; |
33 QNetworkRequest request; |
34 request.setUrl(url()); |
34 request.setUrl(url()); |
|
35 #if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0) |
|
36 request.setOriginatingObject(originatingFrame); |
|
37 #endif |
35 |
38 |
36 const HTTPHeaderMap &headers = httpHeaderFields(); |
39 const HTTPHeaderMap &headers = httpHeaderFields(); |
37 for (HTTPHeaderMap::const_iterator it = headers.begin(), end = headers.end(); |
40 for (HTTPHeaderMap::const_iterator it = headers.begin(), end = headers.end(); |
38 it != end; ++it) { |
41 it != end; ++it) { |
39 QByteArray name = QString(it->first).toAscii(); |
42 QByteArray name = QString(it->first).toAscii(); |
40 QByteArray value = QString(it->second).toAscii(); |
43 QByteArray value = QString(it->second).toAscii(); |
41 request.setRawHeader(name, value); |
44 // QNetworkRequest::setRawHeader() would remove the header if the value is null |
|
45 // Make sure to set an empty header instead of null header. |
|
46 if (!value.isNull()) |
|
47 request.setRawHeader(name, value); |
|
48 else |
|
49 request.setRawHeader(name, ""); |
42 } |
50 } |
43 |
51 |
44 switch (cachePolicy()) { |
52 switch (cachePolicy()) { |
45 case ReloadIgnoringCacheData: |
53 case ReloadIgnoringCacheData: |
46 request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork); |
54 request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork); |