Disable the build on Windows RT / Windows Phone

Change-Id: I594737c60ed2d4c08de662b8ca534e5abbbffd60
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Do not enumerate plugins when plugins are disabled

Even if plugins were disabled through QWebSettings::PluginsEnabled, WebKit would
still enumerate the on-disk NPAPI plugins and attempt to load them. This caused
all sorts of havoc especially when loading plugins linked to Qt4. Even if that
wasn't the case, plugins should *not* be loaded unless there's a compelling
reason to do so. Loading plugins needlessly takes time and it might even have
security implications -- it sounds like a good practice to not execute random
code, even though it comes from trusted locations, when that code is not needed.

After this change, the code still passes the tst_qwebpage tests which are
related to plugin loading. As it turns out, the "QtWebKit application plugins"
(application/x-qt-plugin and application/x-qt-styled-widget) do not use this
code path at all, they instead go through a path like this one:

  #0  PluginPage::createPlugin ...
  #1  QWebPagePrivate::createPlugin ...
  #2  WebCore::FrameLoaderClientQt::createPlugin ...
  #3  WebCore::SubframeLoader::loadPlugin ...
  #4  WebCore::SubframeLoader::requestPlugin ...
  #5  WebCore::SubframeLoader::requestObject ...
  #6  WebCore::HTMLObjectElement::updateWidget ...
  #7  WebCore::HTMLPlugInImageElement::updateWidgetIfNecessary ...
  #8  WebCore::HTMLPlugInImageElement::updateWidgetCallback ...
  #9  WebCore::ContainerNode::dispatchPostAttachCallbacks ...
  #10 WebCore::ContainerNode::resumePostAttachCallbacks ...
  #11 WebCore::PostAttachCallbackDisabler::~PostAttachCallbackDisabler ...
  #12 WebCore::Document::recalcStyle ...
  #13 WebCore::Document::updateStyleIfNeeded ...
  #14 WebCore::Document::finishedParsing ...
  #15 WebCore::HTMLConstructionSite::finishedParsing ...
  #16 WebCore::HTMLTreeBuilder::finished ...
  #17 WebCore::HTMLDocumentParser::end ...
  #18 WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd ...
  #19 WebCore::HTMLDocumentParser::prepareToStopParsing ...
  #20 WebCore::HTMLDocumentParser::attemptToEnd ...
  #21 WebCore::HTMLDocumentParser::finish ...
  #22 WebCore::DocumentWriter::end ...
  #23 WebCore::DocumentLoader::finishedLoading ...

Task-number: QTBUG-36349
Change-Id: Id8f37fb16bb295781c22f439fd54a65486deef8e
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Do not use floating point instructions in float-abi=soft

Pretend VFP doesn't exist when the ABI forbids floating
point instructions.

Task-number: QTBUG-38371
Change-Id: Id0552201e6bf98812198c0028e2c85107e967a81
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Use INLINE_ARM_FUNCTION in OFFLINE_ASM_GLOBAL_LABEL

We can get rid of an ifdef in LowLevelInterpreter by reusing logic
from InlineAsm.h. This also fixes ARM_TRADITIONAL when forced on when
thumb2 is available to the compiler.

Change-Id: Iac5ad22a4a41757fa03c3cbc2e8f68e44d085bae
Reviewed-by: Julien Brianceau <jbriance@cisco.com>
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
LLInt is not built with ARM softfp ABI

In fixing QTBUG-35681 we disabled LLInt when hard fp is not set. This
is however too strong a condition as we only need to be allowed to use
floating point instructions, not use the hard floating point ABI.

LLInt is also disabled on Android because it currently doesn't build.

Task-number: QTBUG-35681
Change-Id: Ibe109b0f8fe6acaec90d42305c6151a440141ea9
Reviewed-by: Julien Brianceau <jbriance@cisco.com>
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Fix preloading of video when using QtMultimedia backend.

Based on a patch by Yoann Lopes (yoann.lopes@theqtcompany.com).

Task-number: QTBUG-37381
Change-Id: I8647c578399a592f8feef0d4028187afd3726b2d
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Do not use unaligned access when disabled

Use the GCC feature defines to check for support for ARMv6 style
unaligned access support. This fixes configurations where it was
disabled and the ARMv6-M processors where it is not supported.

Change-Id: I00c9bb19ba582b64ecb9eaa6da9887ba0df8fd3c
Reviewed-by: Julien Brianceau <jbriance@cisco.com>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Do not send focus event to missing plugins on OS X

Fix a crash when trying to focus a pluginview that doesn't have a loaded
plugin.

Task-number: QTBUG-40273
Change-Id: I0875cab81a3484094fc705d59df80b87ca83a9ff
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Fix assert after makerope boundary check

The browser demo asserts on qt-project.org after the makerope security
fix.

Port of http://trac.webkit.org/changeset/169397

Change-Id: I19c98737735d9b17133742752928d4ce6349de13
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Add mappings from new Qt key values to key identifiers

Change-Id: Iab57bbe15c6fd4d33dfe6e36cd0bd01ca6644841
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
avoid creation of empty qmltypes for qtquick1

Change-Id: Ic28043a94151d3878219e5808075ce6ae663c316
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Merge remote-tracking branch 'origin/5.3' into 5.4

Change-Id: I11f35f205d2ded597d54650a948bec3e1e52b419
Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4
Fix merge error

The change 4a39158368f6184c8d56e1d65866ba99f83297e0 merged a part of
the diff for prepend to append. This patch moves the wrongly merged line.

Task-number: QTBUG-40284
Change-Id: I32d1b2f8e730aca38964d3675d3dec94512e0026
Reviewed-by: Julien Brianceau <jbriance@cisco.com>
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Fix build of leveldb with old Qt versions

Applies a missing patch to leveldb that fixed building with older Qt
versions.

Change-Id: Ie894127d265140cbb8524e271e5779c92ab8e393
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Fixed crash in QGraphicsWebView when clicking on links

The mouse event passed to this function is allocated on the stack, so
we can't delete it. Also, it doesn't make sense to allocate a new one
which immediately gets leaked. The intent must have been to use the ev
parameter as a return parameter - that's what it looks like on the
caller side.

Change-Id: I023cd7895a278eada4ad4acd233741aff837fed6
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Fixed self-drawing of 2D canvas with accelerated 2D canvas enabled.

The canvas 2D API allows drawing the canvas onto itself, however with
accelerated 2D canvas enabled the canvas is implemented in terms of
rendering to a texture using framebuffer objects. OpenGL does not allow
having the same texture be both a source and a destination in the same
rendering operation, so the results are undefined.

Instead, we need to blit the texture into a temporary framebuffer
object, before using that as the source of the final drawing operation.

Task-number: QTBUG-42275
Change-Id: I8114814dab2c8c6ca90b8d35a37b383b79923cb3
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Fixed upside down drawing of accelerated 2d canvas

The convention used by the Qt OpenGL paint engine's internal
drawTexture() function didn't match the texture layout of the
accelerated 2D canvas. We need to adjust the coordinates according to
whether flipped painting is in effect.

Task-number: QTBUG-42376
Change-Id: I787a2deb5f26df532f2e7c475754f0fd2189132c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Fix selections after leave event

We were sending a bad fake mouse event on leave events that caused
WebCore to stop tracking mousepresses correctly. Since we continue
to receive mouse-events after leave if a mouse button is down, we
don't need the fake mouse event to unset hover states and can skip, and
can skip sending it.

Task-number: QTBUG-41419
Change-Id: I8d50c440f7556f7e34bb0c05248577583c2550b4
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Use fixed executable allocator on x64

Since the x86-64 assembler generator depends on jumps being expressable
as 32bit offsets we need to use the fixed size executable allocator and
not the on demand allocator. This patch removes its exclusion from being
used on Windows.

Task-number: QTBUG-42417
Change-Id: Ie6b127e9b4291869566fd99cc7efe05b566c8e66
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>