Project ID:
1428708
Project Type:
Fixed
Budget:
$30-$250 USD
(Approx. $232-$1942 HKD)
Project Description:
I need a QtWebKit based browser prototype.
The prototype will have to be developed under Linux and QtDesigner (or some other Linux standard C++ integrated development tool like KDevelop).
The prototype may be based on some existing code like for example:
http://developer.qt.nokia.com/doc/qt-4.8/webkit-fancybrowser.html
It will have the following simple functions:
- The possibility to start the browser from Linux command line
- The possibility to add the command line parameter --port=XXXX
- The port will be the port where a TCP daemon will listen for commands (on localhost).
- The commands that the prototype will have to demonstrate over the TCP/IP connection are:
- LoadPage(URL, Timeout), Where URL is the url of a webpage that will be loaded and rendered by the component. The function will return an answer as soon as the page is fully loaded and rendered. If the page is not loaded after a timeout period specified by the Timeout parameter an error message will be returned.
- LoadPageSource(), This method will return the rendered HTML code of the page. Including any HTML that will be dynamically created by javascript code on the page (for example if all the html is created in the onload method).
- LoadPageOriginalSource(), Will return the original source code of the page as it was loaded from the server (without any changed performed by javascript).
- ExecuteJavascriptOnNode(JavascriptCode, NodeXPath), This function will allow to execute any kind of javascript code on a DOM node. The node will have to be first found using the node address from the NodeXPath argument. (the address will be an XPath expression)
As much of the functionalities should be done directly by javascript code in the context of the loaded HTML document. (like for example the XPath search)
If possible the C++ code should be as limited to the interface as possible. (parsing of the command line parameters, create the TCP/IP server on the specified port, read the data on the socket in some standard format (preferably JSON), send the data to the QtWebKit component, answer the request once all actions are executed on the QtWebKit compoenent, collect error codes, etc.)
This project is only a feasibility study no importance will be given to the completeness of the interface on the TCP/IP link. For example sending 1, 2, 3, 4 in JSON format and having all other parameters like (URL, Timeout, JavaScritp code, NodeXPath hardcoded in the QtDesigner project will be considered OK. The same will apply for the answer part, sending the real HTML code will not be really important. It will be more important to indicate the portion of code where the functionality can be checked using a debugger.
The full source code and integrated development environment of the prototype will be required as well as some help with the chosen development environment (QtDesigner).
Skills required:
C++ Programming,
Linux,
Software Architecture