Do not notifyFinished on resources never loaded

If autoload images is disabled, the CachedImage element never starts
loading but still needs loading. We therefore need to check both
isLoading() and stillNeedsLoad() to determine if loading is complete.

This fixes a serious memory leak when autoload images is disabled.

Task-number: QTBUG-34494
Change-Id: I36811179d95e23651fabe484fbde08e2881d822b
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Forward devicePixelRatio to WebCore Page

The device pixel ratio must be set on Page for CSS image set and CSS
media queries to work correctly.

Task-number: QTBUG-36190
Change-Id: I76694c1375194f35df7f62e942bc8565f065a3bc
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Apply device pixel ratio to transparency layers

The transparency layers are currently created with taking hiDPI into
account. This means that any CSS opacity causes a shift in rendering
quality.

This patch forwards the device pixelratio for any QPaintDevice to
transparency layers created for that device.

Change-Id: Ie65f76771a4cc59bc714a9b89511cab1f7617abc
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Don't pollute .prl & .pc files with private dependencies

Also change the creating_module check in needToLink to make sure that
only the main module will try to link directly with the WebCore and
JavaScriptCore static libraries.

Task-number: QTBUG-35774
Initial-patch-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Change-Id: Ib5992e112803679837249400e98cb8c22636096d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Fix RenderGeometryMap.cpp ASSERT on Google Plus

The assert roundedIntPoint(result) == roundedIntPoint(rendererMappedResult)
is triggered on Google Plus. The cause appears to be premature rounding
leading a wrong result.

The fix is a to remove the early rounding. This follows a similar fix
in upstream WebKit r142638 where the same problem was fixed for the
other mapToContainer method.

Change-Id: Ifae91c204f2043b3f07682dc7bed711a6cb38c91
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Fix assert in BitmapTextureImageBuffer::applyFilters()

While WebCore should not give a BitmapTextureImageBuffer any filters
applyFilters() will still be called with an empty list of filters.

We should therefore not assert that applyFilters is never called by
that is only ever called with an empty list of filters to apply.

Change-Id: Ic24b735f1fc92e2a57c7ef068a8c7d712f0fc31f
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Fix assert in m_stack.isEmpty() in GraphicsContext::~GraphicsContext()

Save and restore is not balanced in GraphicsContext. This causes
the log error "ERROR void GraphicsContext::restore() stack is empty"
and assert in the GraphicsContext destructor.

The cause is a mismatch of GraphicsContexts being saved and restored by
TextureMapperImageBuffer beginClip and endClip. This patch fixes endClip
to restore the currentContext beginClip saved.

Change-Id: Ief0100dd26c7eded04734167e86712a81f1a7674
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Fix transform of accelerated layers on hiDPI painters

A mismatch of reading combinedTransform but setting worldTransform
means that the pattern of only storing and restoring the transform
when temporarily overriding it, causes the hiDPI transform that
combinedTransform contains to be applied multiple times.

Task-number: QTBUG-36508
Change-Id: I512f0752016f55935595ef259913660b4ee78ae7
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
TextureMapperGL must take hiDPI transform into account

Since TextureMapperGL does its own native rendering it must itself
apply the all transforms QPainter would normally do behind the scenes.

Task-number: QTBUG-36508
Change-Id: Id4a0ee64ff7ac5c5cb51e45ffd2e4e25ed7fce74
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
8 bytes memory leaks in WebProcessMainQt.cpp when proxy is initialized

https://bugs.webkit.org/show_bug.cgi?id=118515

Patch by Minju Kim <pmuarteo@gmail.com> on 2013-09-25
Reviewed by Christophe Dumez.

* WebProcess/qt/WebProcessMainQt.cpp:
(WebKit::initializeProxy): Handled EnvHttpProxyFactory by using OwnPtr
to avoid memory leak when it isn't handled by NetworkProxyFactory

Change-Id: I51833871d8e11441ffe60d51629814e64f77d792
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156449 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Fix memory leaks in platform/image-encoders/JPEGImageEncoder.cpp

https://bugs.webkit.org/show_bug.cgi?id=118781

Reviewed by Brent Fulgham.

We can find the function "jpeg_finish_compress" call the function "jpeg_abort" at the end.
And the comments of "jpeg_abort" is "Abort processing of a JPEG compression operation,
but don't destroy the object itself". (We can find these in the "jcapimin.c" of jpeg)
So the compression object destroy need be called.
No new tests because this doesn't change functionality.

* platform/image-encoders/JPEGImageEncoder.cpp:
(WebCore::compressRGBABigEndianToJPEG):

Change-Id: Ic58b53c4e6bada7e92e09825be9e770f1c5445c1
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158280 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Update device pixel ratio on screen change

This patch makes QWebPage listen to QWindow::screenChangedEvent
and update the device pixel ratio when it is received.

Task-number: QTBUG-36190
Change-Id: Ia28571ef241a3a2f970876f6e474b01c1ac001e1
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Fix build with QT_NO_GRAPHICSVIEW

Change-Id: Ia909a560db58d6cdc6ec4bbac879249eb5e286ef
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
[mips] Wrong register usage in LLInt.

Fix register usage and add PIC header to all LLInt operations.
This patch is taken from https://bugs.webkit.org/show_bug.cgi?id=125168.

It fixes the crash of fast/js/exception-propagate-from-dfg-to-llint test
on mips architecture.

Change-Id: I98ad3b5766451cab48a76f7e028b210f9ebe99ed
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Merge remote-tracking branch 'origin/stable' into dev

Change-Id: Iea6cf3f34fb33f2d138b72243b0e688958d9424e
Fix linker errors when Qt is built statically.

moc_qwebkitplatformplugin.o was both present in libWebKit1.a and
libQt5WebKitWidgets.a resulting in "multiple definition of" errors
when building apps against a static webkit.

Change-Id: I180b6288f39d9862a1b828f1bf295889b8e99955
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Fix ASSERT on QtWebEngine TP blog post

When loading the blog post about QtWebEngine TP1, QtWebKit hits an
assert when an already loaded script stops the load of resource being
processed.

This patch changes the handling of revalidated sources so that
didAddClient and thereby notifyFinished are called from a timer event
instead of synchronously during handling of the load event.

Change-Id: I33480a7216117fa19eb6cc57d1ccac1f2886b3ae
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Enable HTML5 Indexed Database API

Enable the HTML5 indexed database API which is now a W3C candidate
recommendation and supercedes WebSQL.

[ChangeLog][QtWebKit][New Features] Indexed Database API (not available on windows)

Change-Id: I924ba9cc2218658822380577dbd23ab010ef1f76
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Don't use thin archives when building static webkit.

For a static build, we need normal .a files since we're not
going to install .o files. Otherwise we can't use the libs
once the build-dir is cleaned.

Change-Id: I4cbde310cbdb0f24e3397e970a4aea9c8572f6c7
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Bump module version to 5.4.0

Change-Id: I3296c726f9e72b1d58da96c150d47487034fc9ec
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>