Use a relative submodule url for src/3rdparty

Now that the CI configuration has been updated to support them,
use a relative submodule URL to make sure that we use the same
mirror for our submodule that was used for qtwebengine.

Change-Id: I92215bd3caef2bb33820185572f5bb088718f61f
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Update the src/3rdparty submodule

This includes the XCode 5.0 build fix.

Change-Id: I99a5a9b64cc4b31f41cc94eea380a1d61d7f7218
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Doc: Added some links among the pages.

-increases visibility to those pages.

Change-Id: I6b776157eee991907c8e2bc16c63df90a85663a3
Task-number: QTBUG-40757
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Enable 64 bit builds on Windows.

Ninja needs to have an _x64 appended to the configuration in order
to build the 64 bit targets on Windows, as opposed to Linux and OS X.

Change-Id: Idc9888c9f80ccb27d26fb86588ed39fba92a2c71
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
When comparing paths in python we have to use normcase.

Chromium requires relative paths for output-dir and
for generator-output. Also output-dir is expected to
be a subdirectory of generator-output.

This now allows building on windows without running
qmake in recursive mode.

Change-Id: Ie0f9965c1fbfd63eb3cb9c360b29f210128a5c3e
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
[Win64] Make sure ninja is built in 64bit mode as well.

Change-Id: If1665b5bb7a6db07ca737aa00d0ddba964e418aa
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Update license headers.

Because the files were recent additions or for other unclear reasons,
not all the files were updated to reflect the license change.

Change-Id: I6898f6f4f993f1efa9489382f0b94af285f8c4f5
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Cleanup use of QJSValue::engine()

Not only this causes warnings because it is deprecated, it lead to a
crash in our QML tests when the callback fails to return a valid
engine instance.

Change-Id: I9412f138f87c39fbee8dbb6121a5bf0a69dcfbb4
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Fix callback mechanism in the WebContentsAdapter

When we dispatch a request, we register it's callback with
different ID in the QWebEnginePagePrivate.

Change-Id: I1fa1f778de66fbedbd6cce35f6c823d5640dbe5e
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Add Qt WebEngine Widgets API for allowing certificate errors

This adds API for overriding some certificate errors. Once overridden
any identical error for the same hostname and certificate will use
the same override.

Similar API for QtWebEngine QML should be added in a later patch.

Change-Id: I144147b86d9b592e3f87346a1e48890acee0c670
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Fix crashes when running in debug on OSX

When building debug-and-release, only the release version of
core_generated.gyp, defining NDEBUG, would be generated by
gyp_generator.prf.

Both the debug and release ninja files would be generated by gyp from
that same file and we would end up defining NDEBUG for src/core
source files even in debug while the rest of the content layer would
be properly built without it, causing crashes with object having
unexpected sizes and non-symetrical clean-up routines.

Skia doesn't seem to complain anymore if I build in release without
this so simply remove it.

Change-Id: I021f87f2dac5aa21831992824d39dc44216b5f58
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
React to Accessibility being enabled/disabled globally

Change-Id: I57a85682d132bfefcdb0e3d1b3065f0474317e32
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Wait on sync point fences instead of creating a new fence

Posting a runnable on the GPU thread's message loop and creating a GL
fence sync there assumes that there is a current GL context, and that
synchronizing with this context will make sure that we wait for all
GL context producing any of our consumed texture mailboxes.

This is however not always the case like when:
- The current GL context on the GPU thread is destroyed right before
  our runnable is handled, displaying errors on the console that
  glFlush needs a current context.
- The GL driver will do extra scheduling and let the scene graph
  thread synchronize its GL command stream only with the GL context
  in which the fence sync was created.

To remedy the situation, make sure that Chromium creates a fence sync
for every sync points associated with a mailbox that we consume and
do so directly in the GL context associated with the originating
glInsertSyncPointCHROMIUM call. Wait for all those syncs on the Qt
side afterward.

This might also help with a few erratic behaviors noticed on some
embedded GL drivers.

Change-Id: I5fc60fcf51497477b2e1b3a535d0a141954fc6e5
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Support using MessagePumpForUIQt in standalone base::Threads

We currently assume that MessagePumpForUIQt will only be used on Qt's
GUI thread but OSX and Windows do have some cases where TYPE_UI is
used for non-UI threads. This currently causes asserts in debug on
OSX since the DNS thread quits prematurely.

Instead of overriding all those edge cases to use TYPE_DEFAULT,
properly support MessagePumpForUIQt::Run by using a QEventLoop.

Change-Id: Icdb65966867ca6fd3679c75a698007f63848babc
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Avoid duplicating timers in MessagePumpForUIQt

Since DoDelayedWork always returns the time of the next delayed work
to process, we would create a new timer for the same event every
time we process an event. This would cause a timer starvation on
Windows for example.

Instead of blindly creating timers, keep track of the requested delay
and create a new timer only if the new delay is shorted than the
currently scheduled one.

Change-Id: I2606231f0a48b8feb85f058a78eb772d26b222f3
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Revert "Revert "Improve roles""

This reverts commit 0540dc569e5761378182485aadf4c91641f67d56.
The change in qtbase is in and qt5.git has been updated.

Change-Id: I6c44d2d8316e4f05a4f480ed276967d026c7a130
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Try harder to return accessible names

Always check if there is another accessible set as title for the one
queried. For text fields also return the placeholder property if nothing
else is set.

Change-Id: I3f10ff04338a405ad8de00e75e15dded4aaeed3b
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Settings for Qt quick

Expose settings in experimental for now.
Simply use the global/per-view mechanism as a group level
in between seems like overkill.

Change-Id: I7610e9c7765ccb41674702acdd24a52b87716da8
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
[Win] Enable multiple processes again.

This seems to work well with the Chromium 37-based snapshot.

Change-Id: If7640bf7f2428db12eb2bd01707ef82df9014cf2
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Settings in test browser

Expose some "testable" settings as well as test the integration with
the QML Settings API.

Change-Id: I7ec6a7e695f60338b2c16a648e9a93b64ea29a94
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>