<div class="gmail_quote">On Tue, Apr 26, 2011 at 8:01 AM, Alexis Menard <span dir="ltr"><<a href="mailto:alexis.menard@openbossa.org">alexis.menard@openbossa.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div style="word-wrap: break-word;"><br><div><div class="im"><div>On Apr 25, 2011, at 7:22 PM, Tarandeep Singh wrote:</div><br><blockquote type="cite">I think webkit is entering into infinite loop while rendering this url-<br>

<a href="http://nzonlinemall.com/home.html" target="_blank">http://nzonlinemall.com/home.html</a><br><br>I am using qt+webkit (qt-4.6.2) on Ubuntu 9.10<br>My set up is simple-<br>

<br>- create a webpage object<br>- load this url<br>- once load is finished, get the html and print it<br>- delete the webpage<br><br>it looks like loop happens when I try to delete the webpage. Webpage settings that I am using-<br>



<br>  page = new WebPage( );<br>  page->setViewportSize( QSize( 64000, 40000));<br></blockquote><div><br></div></div><div>I haven't looked more but without WebPage code I'm not sure what we can do.</div><div>Also setting such sizes to the viewport is not very nice looking code :D.</div>

<br></div></div></blockquote><div><br><br>I am sorry, I forgot to mention, webpage class is just a wrapper on qwebpage, here is the code-<br><br>///////////////////////////   webpage.h  ///////////////////////////<br>#ifndef WEBPAGE_H<br>

#define WEBPAGE_H<br><br>#include <QWebPage><br>#include <QWebFrame><br>#include <QWebSettings><br>#include <QNetworkRequest><br><br>class WebPage : public QWebPage<br>{<br>  Q_OBJECT<br><br>  public:<br>

    WebPage( );<br>    void setUserAgent( const QString&);<br>    QString userAgentForUrl( const QUrl&) const;<br>    void javaScriptAlert( QWebFrame*, const QString&);<br>    bool javaScriptConfirm( QWebFrame*, const QString&);<br>

    void javaScriptConsoleMessage( const QString&, int, const QString&);<br>    bool javaScriptPrompt( QWebFrame*, const QString&, const QString&,QString*);<br><br>  public slots:<br>    bool shouldInterruptJavaScript( );<br>

<br>  private:<br>    QString userAgent;<br>};<br><br>#endif<br>/////////////////////////////////////////////////////////////////////////////////////////////<br><br><br>//////////////////////// webpage.cpp /////////////////////////////////////////////<br>

#include "webpage.h"<br><br>WebPage::WebPage( )<br>{<br>}<br><br>void WebPage::setUserAgent( const QString& ua)<br>{<br>  this->userAgent = ua;<br>}<br><br>bool WebPage::shouldInterruptJavaScript( )<br>{<br>

  return true;<br>}<br><br>QString WebPage::userAgentForUrl( const QUrl& url) const<br>{<br>  if( userAgent.isEmpty( ))<br>    return QWebPage::userAgentForUrl( url);<br><br>  return userAgent;<br>}<br><br>/**<br> * This function is called whenever a javascript program running inside frame<br>

 * calls the alert() function with the message. Override the default <br> * impelementationa and don't do anything.<br> */<br>void WebPage::javaScriptAlert( QWebFrame*, const QString&)<br>{<br>  // do nothing<br>
}<br>
<br>/**<br> * This function is called whenever a javascript program running inside frame<br> * calls the confirm() function with the message. Override the default <br> * implementation and return true.<br> */<br>bool WebPage::javaScriptConfirm( QWebFrame*, const QString&)<br>

{<br>  return true;<br>}<br><br>/**<br> * This function is called whenever a javascript program running inside frame<br> * tries to prompt the user for input. Override the default implementation<br> * and return true.<br>

 */<br>bool WebPage::javaScriptPrompt( QWebFrame*, const QString&, const QString&,<br>                                QString*)<br>{<br>  return true;<br>}<br><br>/**<br> * This function is called whenever a javascript program tries to print a <br>

 * message to the web browser's console. Override the default implementation<br> * and do nothing.<br> */<br>void WebPage::javaScriptConsoleMessage( const QString&, int, const QString&)<br>{<br>  // do nothing<br>

} <br><br>/////////////////////////////////////////////////////////////////////////////////////////////<br><br>And high values for viewport are set for some specific reason - to handle some of ajax loading of images.<br>
</div>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div style="word-wrap: break-word;"><div><blockquote type="cite"><div class="im">  page->setNetworkAccessManager( nwManager);<br>

<br>  QWebHistory* history = page->history( );<br>  history->setMaximumItemCount( 0);<br>

<br>  QWebSettings* settings = page->settings( );<br>  settings->setAttribute( QWebSettings::JavaEnabled, false);<br>  settings->setAttribute( QWebSettings::JavascriptEnabled, true);<br>  settings->setAttribute( QWebSettings::JavascriptCanOpenWindows, false);<br>



  settings->setAttribute( QWebSettings::JavascriptCanAccessClipboard, false);<br>  settings->setAttribute( QWebSettings::PrivateBrowsingEnabled, true);<br>  settings->setAttribute( QWebSettings::AutoLoadImages, false);<br>



  settings->setAttribute( QWebSettings::PluginsEnabled, false);<br>  settings->setAttribute( QWebSettings::DeveloperExtrasEnabled, false);<br>  settings->setAttribute( QWebSettings::DnsPrefetchEnabled, true);<br>



  settings->setAttribute( QWebSettings::DeveloperExtrasEnabled, false);<br>  settings->setMaximumPagesInCache( 0);<br>  settings->setObjectCacheCapacities( 0, 0, 0);<br>  settings->setOfflineStorageDefaultQuota( 0);<br>



  settings->setOfflineWebApplicationCacheQuota( 0);<br>  settings->setIconDatabasePath( "");<br><br>Can someone please check and confirm.<br><br>Thanks,<br>Tarandeep<br></div>
_______________________________________________<br>webkit-qt mailing list<br><a href="mailto:webkit-qt@lists.webkit.org" target="_blank">webkit-qt@lists.webkit.org</a><br><a href="http://lists.webkit.org/mailman/listinfo.cgi/webkit-qt" target="_blank">http://lists.webkit.org/mailman/listinfo.cgi/webkit-qt</a><br>

</blockquote></div><br></div></blockquote></div><br>