In Google Chrome, when an error occurs in the request to the server, the Google Chrome tries a new request, see LOG wireshark:
I’m developing a full browser in QT and realized that if a request fails the “QWebView” has the same behavior as Google Chrome.
How can I reimplement the QNetWorkRequest/QNetWorkAccessManager to work like the conventional browsers?
Help me please.
myWebPage *myWP = new myWebPage();
myWP->setForwardUnsupportedContent(true);
myWP->setNetworkAccessManager(m_network);
ui->myWebView->setPage(myWP);
if(q!=true) {
settings = QWebSettings::globalSettings();
settings->setAttribute( QWebSettings::OfflineWebApplicationCacheEnabled,true );
settings->setAttribute( QWebSettings::LocalContentCanAccessRemoteUrls,true );
settings->setAttribute( QWebSettings::OfflineStorageDatabaseEnabled,true );
settings->setAttribute( QWebSettings::LocalContentCanAccessFileUrls,true );
settings->setAttribute( QWebSettings::LocalStorageEnabled,true );
settings->setAttribute( QWebSettings::JavascriptCanOpenWindows,true );
settings->setAttribute( QWebSettings::JavascriptCanCloseWindows,true );
settings->setAttribute( QWebSettings::JavascriptEnabled,true );
settings->setAttribute( QWebSettings::PluginsEnabled,true );
settings->setAttribute( QWebSettings::JavaEnabled,false );//Desabilita java
settings->setAttribute( QWebSettings::DeveloperExtrasEnabled,true );
settings->setAttribute( QWebSettings::AutoLoadImages, true );
settings->setAttribute( QWebSettings::DnsPrefetchEnabled, true );
settings->setAttribute( QWebSettings::LocalStorageDatabaseEnabled, true );
settings->setAttribute( QWebSettings::AcceleratedCompositingEnabled, true );
settings->setAttribute( QWebSettings::JavascriptCanAccessClipboard, false );
settings->setAttribute( QWebSettings::ScrollAnimatorEnabled, true );
settings->setAttribute( QWebSettings::PrintElementBackgrounds, false );
settings->setOfflineWebApplicationCachePath( QString(localStorage+"/appcache") );
settings->enablePersistentStorage( QString(localStorage+"/persistent") );
settings->setOfflineStoragePath( QString(localStorage+"/offlinestorage") );
settings->setLocalStoragePath( QString(localStorage+"/storage") );
settings->setIconDatabasePath( QString(localStorage+"/icons") );
settings->setMaximumPagesInCache( 99999 );
settings->setObjectCacheCapacities( 0,99999,99999 );
settings->setOfflineWebApplicationCacheQuota( 5*1024*1024 );
settings->setOfflineStorageDefaultQuota( 5*1024*1024 );
}
connect(ui->myWebView->page(), SIGNAL(downloadRequested(QNetworkRequest)), this, SLOT(Download(QNetworkRequest)));
connect(ui->myWebView->page(), SIGNAL(unsupportedContent(QNetworkReply*)), this, SLOT(unsupportedToDownload(QNetworkReply*)));
connect(ui->myWebView->page(), SIGNAL(printRequested(QWebFrame*)), this, SLOT(printFrame(QWebFrame*)));
↧