[[PageOutline]] = TODO List for QtWebKit = == Incoming == uncategorized issues that the developers still need to prioritize. * QWebFrame should have a function to access the QWebHistory for that frame. * There should be an QWebIconDatabase class that gives you notifications when the icon has been loaded. * Autotest Coverage * header such as "webkitversion.h" that contains the version in a define * Way to access list of files and progress on downloading them (i.e. be able to make an activity window) * Ability to pass the handling of listbox/select elements to the application * Instead of loading a plugin for loading and doing playback of media files, we should use a full-window html5 media player based on our Phonon code. * "Kinetic" support * Native scroll indicator instead of scrollbars. This should work for all frames and not just the mainframe. * Zoom to paragraph/image/etc example * Intelligent touch scroll, that takes the contents into account. Would be nice to be able to move widgets on igoogle around, still be able to scroll on google maps etc. * Add an API for controlling forms, like not showing a popdown for comboboxes, but letting the application handle it. == Things we want to do == * Research out-of-process plugins * Research QtSvg vs. WebKit SVG * Make WebKit more modular * XSLT support with QtXmlPatterns. * Layout tests in 4.5, then trunk * Write examples, docs and screencasts * Finish DOM API * QtScript Integration == Things we should do == * Task maintenance (All) * Improve plugin support (eg. windowless) * Improve Media-Element support * Make the build more configurable in Qt * Research memory usage * Research performance * Windowless plugins on X11 * Extend APIs * Review new APIs in trunk * Style-dependent scrolling (improvement to r41285) * A17n support * Check for new feature defines (i.e. ENABLED(3D_RENDERING)) == Dogfood Items == * Wallet integration * Arora extensions * Webclips * Inline editing example == Examples and Demos to be written == * how to use in a web page * HTML5 local/session storage * ~~using it with jQuery~~ (Ariya) DONE: see http://labs.trolltech.com/blogs/2009/04/17/jquery-and-qwebelement/ * Flash inside QWebView (like Girish's video feed example but simpler) * restricting web view to a certain set of URLs * convert HTML to PDF, continue from Kavindra's work * using QWebView with Graphics View * a utility monitor web sites, sit on the systray, display the thumbnail * simple example (without model/view) on how to use history and bookmarks * ~~google suggest~~ (Ariya) DONE: see http://labs.trolltech.com/blogs/2009/03/20/google-suggest-made-easy/ * ~~visual scraping~~ (Ariya) DONE: see http://labs.trolltech.com/blogs/2009/06/02/weather-applet-again/ * how to extend QWebView to handle e.g. FTP * cookie handling * XML Query for feed parser/reader == Documentation improvements == * Overview diagram between all QWebFoo class * Diagram/description of the relation between QtWebKit and QtNetwork * Using HTML files and images from the resource system * Import CSV example from QQ to Qt tree == Current TODO for first update of WebKit in Qt 4.6 == === DOM API Changes === * Extend documentation with lots of snippets. * Implement the latest API changes: * Compare {{{QWebElement::tagName(), prefix(), localName() and namespaceUri()}}} with {{{QXmlStreamReader}}} names * Rename {{{QRect QWebHitTestResult::enclosingBlock() const}}} to {{{QWebElement QWebHitTestResult::enclosingBlockElement() const}}} * Replace {{{QString QWebHitTestResult::linkTarget()const}}} with {{{QWebElement QWebHitTestResult::linkElement() const}}} * Remove {{{bool QWebHitTestResult::isScrollBar() const}}} and make sure a null QWebHitTestResult is returned instead * Replace {{{void QWebFrame::renderContents(...)}}} with new {{{RenderFlags}}} enum in {{{QWebPage}}}. === Updating WebKit in Qt 4.6 === Goal: Make a first beta release of QtWebKit for Qt 4.6, including the new QtWebKit DOM API. * Review new API in trunk. * Make sure it builds on all platforms it build with Qt 4.5. (including Windows/CE) == Deferred DOM API Items == * Research setInner/OuterXml on default constructed QWebElements. * Add support for DOM events/listeners * Add QWebElement::connectEvent() * Add support for mapping JS events to Qt events (QMouseEvent, etc.) * Add support for pure JS events (QWebEvent?) * Add support for dispatching events from C++ * Add support for convenience functions on the selection/collection * Investigate support for different backends (xml and/or query language). * Need to add a documented method of retrieving the current selection as a QWebElementSelection, since the ::selection psuedo-element didn't make it into the current draft of css3-selectors. === Ideas for Examples & Demos === * A tool to create selections visually, built on top of the same API. Include a lineedit where you can type a selector and it visualizes the selected elements. (both ways) * Simple jquery-ui like effects. * Ad-block for Arora * Form completion (smart or not...) * Implement Arora's clicktoflash plugin with QWebElement