Fix compile dependencies of examples.

Touching an external header wouldn't trigger the recompilation
of example source files since the Makefile didn't list them as
dependencies. The problem was that qmake didn't have its
dependency directories set properly since our default_pre.prf
would totally override the default one.

Change-Id: I1cbb6b259c15a70b872241cf257a6b5f93244cb4
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Add export_from_git.py to take snapshots from chromium and ninja.

Split out the Submodule class and related functions from
init-repository.py into a separate python module git_submodule.py.
This is necessary in order to reuse the code for the export script.

The export_from_git.py script can be used to export files
from a git repository into an arbitrary directory.
It spiders submodules and applies some pattern matching to remove
unwanted files.
This script can be used to create flattened chromium snapshots
to be used in our CI system.

Change-Id: Iade8126fae6c28b5347c9d6e08941e28d3e0e7be
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Replace chromium and ninja submodule by a single 3rdparty submodule.

The new 3rdparty submodule contains snapshots of both ninja
and chromium. This drastically reduces the size of the repository
and can be used by our CI system.

Change-Id: Ie7482181f2ba9dba5fc181b1f221a5fae714c8c8
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Update patch for using libc++ instead of stdlibc++ after updating chromium.

Change-Id: I93ceb4e5d1ccf63cbeaec1fdff4ab1c5c8a57a65
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Update Clang libcc patch after updating Chromium.

- googleurl headers are now in url/.
- dom_storage_namespace.h moved.

Change-Id: I87f08d2426ac0da5b50fcf424ca446fb03f207fd
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Update patch for touch and gestures after updating Chromium.

Change-Id: I64aa8e01e3d157670f2fd118d1ed25730b61a967
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
WebKit.gyp has been moved upstream.

Change-Id: Ia8791d475ae06ca54a7b8a4154cd804ff7c14152
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Update qtwebengine.gypi after updating Chromium.

content_app target has been renamed upstream.

Change-Id: I0b9c26234d086d67d5564b0b156bbb04a2cab331
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Add patch for WebKit after updating Chromium.

Including Assertions.h leads to __darwin_ssize_t being
defined inside namespace WebKit but not outside that namespace.
This is because certain headers will not be pulled in again
later on in the same compilation unit.

This patch has already been upstreamed,
and can be removed with the next Chromium update.

Change-Id: I302bbf779fcabb909a9ffda53d8b9fdccc87e248
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Add implementation for pure virtual functions after updating Chromium.

Change-Id: Id760a1b39b5f9efeea49e49183b1fcc68fd54f8f
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Update README.rst to instruct on usage of the new 3rdparty module.

Change-Id: I7e701688af275afb1ca4a123fcf9dcc00c5bb6f1
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Prepare the directories to have more examples included.

This also ajust the name to be consistent with other Qt examples.
- Move nano browser one directory level down,
  also renaming them to match their target name
- Remove the dashes from the target names
- Rename the qtquick example directory to quick, matching the style in lib

Change-Id: I4a5e31be0b919ae596eadbf731be52372ae61151
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Detach common.pri from the nano browser examples.

Move common.pri to the root directory to be able to use it with tests.
Remove nano browser specific logic (util.h include and common resources)
from this file and use relative paths in the examples instead.

This also remove unnecessary directives:
- lib doesn't have to be added to INCLUDEPATH since proper modules are used
- util.h doesn't need to be added to HEADERS, moc doesn't need to go through it
- MOC_DIR doesn't have to be adjusted anymore

Change-Id: Id706e7f2ef7c9607bdcd0ba63afecf5b5854262b
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Change "Contents" to "Engine" in API class names.

Change-Id: I58d83f4f33728f92e4bf13b6be30b15528fdd033
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Update init-repository.py to allow using upstream chromium repository.

The regular workflow now is just to clone the qtwebengine repository
and then execute the following commands.
  git submodule init && git submodule update --recursive && qmake && make
This will also clone a submodule called 3rdparty which contains the
chromium and ninja sources without pulling in further submodules
and without a complete history.

Developers that do want to have a complete chromium checkout instead
should not use the above command sequence.
Instead they should just clone qtwebengine, execute the
init-repository.py script, run qmake and make.
The init-repository.py script will then checkout the complete
chromium sources into a subdirectory called 3rdparty_upstream.
The location of these sources will be picked up by qmake automatically.

Change-Id: I0fa4f1d554bdca2e852b6a97aa2e5462d90d8664
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Make sure submodule changes do not show up as a diff.

This is needed to prevent .gitmodules changes
from showing up when using the upstream repositories.
It will also prevent changes in submodules from showing
up and being added to a commit by accident.

Change-Id: Ia74f59ebce6d458b39c6ca2472aa6e623cd280fd
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Adjust all the needed paths when using upstream repositories

Having a separate 3rdparty_upstream might not be the best solution
after all, but oh well.

Change-Id: Ib834c4d9d56669a3f4308eb614cec787116d6d4c
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Use QObject::d_ptr for public API classes

This follows the model used by the rest of Qt, potentially
avoiding binary compatibility issues.

The compromise is that we now depend on core-private, thus
forcing us to follow Qt's release cycle.

Change-Id: Ib2df51071fc35935ac99edf7b9c5562949cb43e2
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Import QtWebKit public headers.

This is the first step toward re-implementing part of the QWebView
API on top of QtWebEngine. The plan is to import the complete headers
to facilitate diffs and progress tracking.

Changes squashed in this commit:
- Use the QWebEngine prefix for class names
- Strip out non-public members and directives
- Allow building using those headers by disabling the Q_PROPERTY
  macros and by adding a dummy implementation for virtual methods
  directly in the header
- Update the widgetsnanobrowser example to comply with the slight
  changes from the previous API

Change-Id: Ia7efa5430f775d09b493544430a04856cc7928f6
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Merge QWebEngineFrame into QWebEnginePage.

Chromium doesn't allow managing sub-frames from the contents API.
To support operations that were made on the main frame, merge the frame
API into the page. Methods should be later either be removed or
implemented one by one.

Change-Id: I52de89a48c00efb9dd0cf0a2c1fdf09d735d2381
Reviewed-by: Andras Becsi <andras.becsi@digia.com>