Changeset 73865 in webkit
- Timestamp:
- Dec 11, 2010 7:21:51 PM (13 years ago)
- Location:
- trunk/WebKit/qt
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKit/qt/Api/qwebframe.cpp
r73584 r73865 202 202 } 203 203 204 static inline ResourceRequestCachePolicy cacheLoadControlToCachePolicy(uint cacheLoadControl) 205 { 206 switch (cacheLoadControl) { 207 case QNetworkRequest::AlwaysNetwork: 208 return WebCore::ReloadIgnoringCacheData; 209 case QNetworkRequest::PreferCache: 210 return WebCore::ReturnCacheDataElseLoad; 211 case QNetworkRequest::AlwaysCache: 212 return WebCore::ReturnCacheDataDontLoad; 213 default: 214 break; 215 } 216 return WebCore::UseProtocolCachePolicy; 217 } 218 204 219 QWebFrameData::QWebFrameData(WebCore::Page* parentPage, WebCore::Frame* parentFrame, 205 220 WebCore::HTMLFrameOwnerElement* ownerFrameElement, … … 884 899 } 885 900 901 QVariant cacheLoad = req.attribute(QNetworkRequest::CacheLoadControlAttribute); 902 if (cacheLoad.isValid()) { 903 bool ok; 904 uint cacheLoadValue = cacheLoad.toUInt(&ok); 905 if (ok) 906 request.setCachePolicy(cacheLoadControlToCachePolicy(cacheLoadValue)); 907 } 908 886 909 QList<QByteArray> httpHeaders = req.rawHeaderList(); 887 910 for (int i = 0; i < httpHeaders.size(); ++i) { -
trunk/WebKit/qt/ChangeLog
r73862 r73865 1 2010-12-11 Jan Erik Hanssen <jhanssen@sencha.com> 2 3 Reviewed by Andreas Kling. 4 5 [Qt] QWebFrame does not support QNetworkRequest::CacheLoadControl 6 https://bugs.webkit.org/show_bug.cgi?id=35671 7 8 Make QWebFrame respect the QNetworkRequest::CacheLoadControl attribute 9 set on the request, if any. 10 11 * Api/qwebframe.cpp: 12 (cacheLoadControlToCachePolicy): 13 (QWebFrame::load): 14 * tests/qwebframe/tst_qwebframe.cpp: 15 1 16 2010-10-11 Diego Gonzalez <diegohcg@webkit.org> 2 17 -
trunk/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
r72368 r73865 626 626 void setContent_data(); 627 627 void setContent(); 628 void setCacheLoadControlAttribute(); 628 629 629 630 private: … … 3069 3070 } 3070 3071 3072 class CacheNetworkAccessManager : public QNetworkAccessManager { 3073 public: 3074 CacheNetworkAccessManager(QObject* parent = 0) 3075 : QNetworkAccessManager(parent) 3076 , m_lastCacheLoad(QNetworkRequest::PreferNetwork) 3077 { 3078 } 3079 3080 virtual QNetworkReply* createRequest(Operation, const QNetworkRequest& request, QIODevice*) 3081 { 3082 QVariant cacheLoad = request.attribute(QNetworkRequest::CacheLoadControlAttribute); 3083 if (cacheLoad.isValid()) 3084 m_lastCacheLoad = static_cast<QNetworkRequest::CacheLoadControl>(cacheLoad.toUInt()); 3085 else 3086 m_lastCacheLoad = QNetworkRequest::PreferNetwork; // default value 3087 return new FakeReply(request, this); 3088 } 3089 3090 QNetworkRequest::CacheLoadControl lastCacheLoad() const 3091 { 3092 return m_lastCacheLoad; 3093 } 3094 3095 private: 3096 QNetworkRequest::CacheLoadControl m_lastCacheLoad; 3097 }; 3098 3099 void tst_QWebFrame::setCacheLoadControlAttribute() 3100 { 3101 QWebPage page; 3102 CacheNetworkAccessManager* manager = new CacheNetworkAccessManager(&page); 3103 page.setNetworkAccessManager(manager); 3104 QWebFrame* frame = page.mainFrame(); 3105 3106 QNetworkRequest request(QUrl("http://abcdef.abcdef/")); 3107 3108 request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysCache); 3109 frame->load(request); 3110 QCOMPARE(manager->lastCacheLoad(), QNetworkRequest::AlwaysCache); 3111 3112 request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache); 3113 frame->load(request); 3114 QCOMPARE(manager->lastCacheLoad(), QNetworkRequest::PreferCache); 3115 3116 request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork); 3117 frame->load(request); 3118 QCOMPARE(manager->lastCacheLoad(), QNetworkRequest::AlwaysNetwork); 3119 3120 request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferNetwork); 3121 frame->load(request); 3122 QCOMPARE(manager->lastCacheLoad(), QNetworkRequest::PreferNetwork); 3123 } 3124 3071 3125 QTEST_MAIN(tst_QWebFrame) 3072 3126 #include "tst_qwebframe.moc"
Note: See TracChangeset
for help on using the changeset viewer.