[[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 == * Extend documentation with lots of snippets. * Fix all qdoc warnings. * Implement the latest API changes: * Compare {{{QWebElement::tagName(), prefix(), localName() and namespaceUri()}}} with {{{QXmlStreamReader}}} names (Pedralho) * ~~ Rename {{{QRect QWebHitTestResult::enclosingBlock() const}}} to {{{QWebElement QWebHitTestResult::enclosingBlockElement() const}}} (Simon) ~~ * ~~ Replace {{{QString QWebHitTestResult::linkTarget()const}}} with {{{QWebElement QWebHitTestResult::linkElement() const}}} (Simon) ~~ * ~~ Remove {{{bool QWebHitTestResult::isScrollBar() const}}} and make sure a null QWebHitTestResult is returned instead (Pedralho) ~~ * ~~ Remove {{{void QWebFrame::renderContents(...)}}} (Pedralho) ~~ * make a graphics dojo example that shows how to turn off scrollbars via policy and draw indicators yourself. (Pedralho) * ~~ Replace {{{QWebPage::fixedLayoutSize}}} and {{{useFixedLayout}}} with one singled {{{fixedContentsSize}}} property that disables the feature if a null size is set. Also send an email to Adam Treat to ask what the height is used for. If there is no use for the height then simply rename it to {{{fixedContentsWidth}}}. (Simon) ~~ * ~~ Rename {{{QWebSettings::AllowUniversalAccessFromFileUrls}}} to {{{QWebSettings::LocalContentCanAccessRemoteUrls}}} (Simon). ~~ * Integrate Jens' theming fixes for Oxygen. === Updating WebKit in Qt 4.6 === Goal: Make a first beta release of QtWebKit for Qt 4.6, including the new QtWebKit DOM API. * Cherry-pick fixes into {{{qtwebkit-4.6-staging}}}. * Run {{{util/webkit/mkdist-webkit}}} in Qt webkit repository. * {{{git push qtsoftware:qt/qt-webkit.git qtwebkit-4.6-staging}}} * Verify Pulse is green. * Inside qt.git run {{{util/webkit/mkdist-webkit origin/qtwebkit-4.6-staging}}} * Create a tag ({{{qtwebkit-4.6-snapshot-DDMMYYYY}}})for the import and push it. == 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