qt:qtwebkit.git
3 years agoFix crossbuilding QtWebKit from Windows v5.4.0-alpha1
Allan Sandfeld Jensen [Wed, 3 Sep 2014 12:27:42 +0000 (14:27 +0200)]
Fix crossbuilding QtWebKit from Windows

A number of checks needed for the building process was checking the
target instead of the host environment, making them fail to work when
crossbuilding from windows to a non-windows target.

Change-Id: Iba61016471a6fadf8fc34012f4a323bc7264c945
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
3 years ago[mips] Fix unaligned access in Low Level Interpreter (LLINT).
Julien Brianceau [Fri, 5 Sep 2014 08:44:35 +0000 (10:44 +0200)]
[mips] Fix unaligned access in Low Level Interpreter (LLINT).

Address loads used with btbxx opcodes were wrongly converted to lw instruction
instead of lbu, leading to unaligned access on mips platforms.

Change-Id: I7b14aa40215affe582bcadade2f783769a97a7d3
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
3 years ago[mips] Handle properly halfword load in JavaScriptCore.
Julien Brianceau [Wed, 3 Sep 2014 17:16:20 +0000 (19:16 +0200)]
[mips] Handle properly halfword load in JavaScriptCore.

This patch improves YarrJIT efficiency on mips platforms.
SunSpider's regexp-dna test can be used to monitor performance impact.

Change-Id: I28d99fb01628bc72f29c120caf8bc53c5d06e3ff
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoImprove layout and rendering speed of complex font path
Allan Sandfeld Jensen [Mon, 1 Sep 2014 13:02:07 +0000 (15:02 +0200)]
Improve layout and rendering speed of complex font path

This patch enables the use of the TextLayout object previously only used
by the Mac port. This caches a line of laid out text making reflowing
text much faster when using the complex font path.

The patch also enables caching in the QTextLayout, this improves also
drawing and measuring of complex fonts, since previously we would throw
away details of the layout after calculating a line, but then
recalculate it for drawing or measuring.

Change-Id: I9db40cdb5a35d28072204f950a8aa50669ac643b
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
3 years agoUse Qt's qt_gl_read_framebuffer method instead of reimplementing it
Allan Sandfeld Jensen [Wed, 27 Aug 2014 10:51:20 +0000 (12:51 +0200)]
Use Qt's qt_gl_read_framebuffer method instead of reimplementing it

The fallback for rending a 3D graphics context was using an inefficient
read_framebuffer implementation. This patch instead uses the internal
Qt version which is exported for exactly this purpose.

Change-Id: Icf38d072feea7b5dec6c6ff568d42136943674bc
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
3 years agoMerge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4
Frederik Gladhorn [Thu, 28 Aug 2014 21:12:12 +0000 (23:12 +0200)]
Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4

3 years agoCorrect GC length unit and prevent division by 0 in showObjectStatistics.
Julien Brianceau [Thu, 28 Aug 2014 14:32:15 +0000 (16:32 +0200)]
Correct GC length unit and prevent division by 0 in showObjectStatistics.

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

Reviewed by Mark Hahnenberg.

Change-Id: I20483be1225d674160bbdab183bc52121fe4411c
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@173062 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
3 years agoMerge remote-tracking branch 'origin/5.3' into 5.4
Frederik Gladhorn [Thu, 28 Aug 2014 14:19:08 +0000 (16:19 +0200)]
Merge remote-tracking branch 'origin/5.3' into 5.4

Change-Id: Ideed7a2c21b448633c32f690918eb1ae40355819

3 years agoTake advantage of 3 parameters or32() calls
Julien Brianceau [Wed, 27 Aug 2014 16:32:40 +0000 (18:32 +0200)]
Take advantage of 3 parameters or32() calls

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

Reviewed by Michael Saboff.

For specific architectures (arm and mips for instance), or32() calls
with 3 parameters are likely to produce a single instruction.

Change-Id: I1c56f5b8229dd2d82d96c56cb10b1ac8dc9ba0b0
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@173006 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoDo not use graphics surface when painting WebGL in WebKitWidgets
Allan Sandfeld Jensen [Tue, 26 Aug 2014 14:07:18 +0000 (16:07 +0200)]
Do not use graphics surface when painting WebGL in WebKitWidgets

Copying the texture to a surface and then painting the surface to the
texture mapper is needlessly complicated when we can paint the texture
directly.

This reduces overhead and fixes issues on drivers where graphics
surfaces do not work.

Change-Id: I6d2c935f7f2f98c56b66748f70eb37cc9c720f8d
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
3 years agoUse new QOpenGLFramebufferObject::toImage without flipping
Allan Sandfeld Jensen [Tue, 26 Aug 2014 14:15:49 +0000 (16:15 +0200)]
Use new QOpenGLFramebufferObject::toImage without flipping

An option to not flip the image was added to QOpenGLFramebufferObject's
toImage() method. This means we no longer need to implement our own.

Change-Id: Ic23b22dbd5bf3b59189651dd207fdc83018fe95e
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
3 years ago[mips] Use shorter j <address> jump in MacroAssembler::replaceWithJump
Balazs Kilvady [Mon, 25 Aug 2014 13:33:09 +0000 (15:33 +0200)]
[mips] Use shorter j <address> jump in MacroAssembler::replaceWithJump

Patch taken from https://bugs.webkit.org/show_bug.cgi?id=125920

Change-Id: I6583ea37e00f4dff80971bd44906936229540171
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoUpdate license headers and add new license files
Antti Kokko [Thu, 21 Aug 2014 07:43:35 +0000 (10:43 +0300)]
Update license headers and add new license files

- Added LICENSE.LGPLv3, LICENSE.GPLv2 & LICENSE.LGPLv21

Change-Id: Ic5dc1e41d623e73068faf3683dd8e8c3a0ae8864
Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
3 years ago[mips] Take advantage of integer divide instruction for ArithDiv and ArithMod.
Julien Brianceau [Fri, 22 Aug 2014 09:09:51 +0000 (11:09 +0200)]
[mips] Take advantage of integer divide instruction for ArithDiv and ArithMod.

Added MIPS integer divide path for ArithDiv and ArithMod where operands and results are integer.

Change-Id: I00d5b58e6e0be39f083676fb0c435b3545d3aca1
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoFix key identifier for comma key ("Separator") 5.3.2 v5.3.2
Olivier Blin [Fri, 13 Dec 2013 13:30:35 +0000 (14:30 +0100)]
Fix key identifier for comma key ("Separator")

Change-Id: Ib450ba08d1bf53e2f7879560cb8ec764997570db
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoFix non production_build builds
Allan Sandfeld Jensen [Thu, 14 Aug 2014 12:13:46 +0000 (14:13 +0200)]
Fix non production_build builds

Merges upstream r156535 fixing force_static_libs_as_shared and new
build issue added, and a number of warnings that prevents building with
-Werror.

Change-Id: Ie8f96fa93bc808b2c8c45850fe2951678235cfac
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
3 years agoMerge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4
Allan Sandfeld Jensen [Sat, 16 Aug 2014 11:02:08 +0000 (13:02 +0200)]
Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4

3 years agoIntegrate QWebChannel with QtWebKit.
Milian Wolff [Thu, 3 Jul 2014 17:12:37 +0000 (19:12 +0200)]
Integrate QWebChannel with QtWebKit.

WebView.experimental gets a new webChannel property. By default, this
is initialized to a QQmlWebChannel internal to the WebView. By setting
it from the outside, it is possible to share the same WebChannel
between different WebViews. The webChannel property can be set to null
to disable this new feature.

For IPC, a navigator.qtWebChannelTransport property is added, which is
essentially a copy of navigator.qt. This is required to be able to use
both independently. The transport is implicitly connected to the
WebView's webChannel.

On the JavaScript client side, some manual boiler plate code is still
required. Potentially, this can be adapted in the future to preload
the qwebchannel.js. Furthermore, we might be able to instantiate and
initialize the QWebChannel before we emit window.onload.

A basic test is added which verifies that this basic integration works.

Change-Id: I5eb0389e6edd6d0c978917e441365e11a02b5c3f
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoRemove dead code for support Qt 5.0 and 5.1
Allan Sandfeld Jensen [Thu, 7 Aug 2014 11:20:53 +0000 (13:20 +0200)]
Remove dead code for support Qt 5.0 and 5.1

QtWebKit can not build with Qt 5.0 or 5.1, so the code for those
version is dead and should be removed.

Change-Id: Ief9e08bed372ba9e9f2e0dd115763ad0b8812bfa
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
3 years agoRemove unnecessary includes
Allan Sandfeld Jensen [Thu, 14 Aug 2014 10:52:03 +0000 (12:52 +0200)]
Remove unnecessary includes

Removes two includes that hasn't been needed since Qt 4.

Change-Id: I90c83f49b02ca71e3b927f9845c7293db43a582e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
3 years agoFix fallback conversion of recognized objects
Allan Sandfeld Jensen [Fri, 15 Aug 2014 14:03:47 +0000 (16:03 +0200)]
Fix fallback conversion of recognized objects

All objects are added the list of visited objects, but only those
that were not recognized more specific than 'Object' are removed before
trying the fallback conversion. This prevents the fallback from working
as the algorithm will assume we are looping.

Task-number: QTBUG-39951
Change-Id: I1d538c452092485b371c335e53f16db162bd4fb1
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
3 years agoFix regression in QQuickWebView's transparent backgound
Allan Sandfeld Jensen [Wed, 13 Aug 2014 13:03:23 +0000 (15:03 +0200)]
Fix regression in QQuickWebView's transparent backgound

We need to set both setDrawsTransparentBackground and setDrawsBackground
to get the full correct behavior of transparent backgrounds.

Task-number: QTBUG-40063
Change-Id: Iaa276a6a12e3cff40d8bc2892fb0667242afb88b
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
3 years agoFix crash in DeviceOrientationController when !HAVE(QTSENSORS)
Julien Brianceau [Wed, 13 Aug 2014 09:07:58 +0000 (11:07 +0200)]
Fix crash in DeviceOrientationController when !HAVE(QTSENSORS)

Regression introduced by QSensors leak fix (QTBUG-38857).

Change-Id: I22dd4f774012ef9b8af9ba8b59e1e4603a3ebbf4
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoMerge remote-tracking branch 'origin/5.3' into 5.4
Frederik Gladhorn [Tue, 12 Aug 2014 10:50:46 +0000 (12:50 +0200)]
Merge remote-tracking branch 'origin/5.3' into 5.4

Change-Id: Ie925a50b94d06e7012a7458549aa2afe6f33a402

3 years agoFix case in documentation of qobjectbridge bindings
Allan Sandfeld Jensen [Tue, 12 Aug 2014 08:06:25 +0000 (10:06 +0200)]
Fix case in documentation of qobjectbridge bindings

The method toDataURL does not work, but calling toDataUrl does. This
patch updates the documentation to match the exported method name.

Task-number: QTBUG-40268
Change-Id: Icf0ee233df141d43367da045834e6a42c9afb31a
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
3 years agoSupport QOpenGLWidget for accelerated compositing
Allan Sandfeld Jensen [Wed, 6 Aug 2014 10:07:59 +0000 (12:07 +0200)]
Support QOpenGLWidget for accelerated compositing

This patch enables the use of QOpenGLWidget for the same role
QGLWidget can be used to enable accelerated compositing in QtWebKit.

Change-Id: I7ac5c00c3a4b411637544128fc5d805781b9da4d
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
3 years agoSupport -webkit-font-smoothing: antialiased
Allan Sandfeld Jensen [Thu, 24 Jul 2014 12:38:39 +0000 (14:38 +0200)]
Support -webkit-font-smoothing: antialiased

Adds support for disabling subpixel antialiasing. This is mainly useful
on Mac where it disables the aggressive LCD font smoothing.

Task-number: QTBUG-40396
Change-Id: I22d9b1692270f6b47941493c6257174bff71adab
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
3 years agoDo not add QStyle padding on top of default padding
Allan Sandfeld Jensen [Thu, 31 Jul 2014 09:40:23 +0000 (11:40 +0200)]
Do not add QStyle padding on top of default padding

The recent change to follow CSS padding value, added the CSS padding
to the default QStyle. This however needlessly changes the default
size of input elements.

This change instead uses the maximum of CSS padding and QStyle padding.

Change-Id: I23a39c76db837409ea11915f69ebbfefa2d25548
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
3 years ago[WK2] Update text upon item selection for menu lists
Pierre Rossi [Tue, 24 Jun 2014 15:40:05 +0000 (17:40 +0200)]
[WK2] Update text upon item selection for menu lists

While RenderListBox repaints itself on selection changes, RenderMenuList
lacks this logic when it's used for multiple selections (acting as a listbox).
Make sure we properly update the element's text as the options are toggled.

Originally reported and proposed fix in http://wkb.ug/91862

Task-number: QTBUG-39675
Change-Id: I09f17ff03577fc6f65875674d632684b560fffb7
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoMerge remote-tracking branch 'origin/5.3' into dev
Frederik Gladhorn [Tue, 29 Jul 2014 11:37:26 +0000 (13:37 +0200)]
Merge remote-tracking branch 'origin/5.3' into dev

Change-Id: I488a1ee13117760781019a2f4bc6f6dff64c6871

3 years agoDo not use title as the primary text of dragged or copied links
Allan Sandfeld Jensen [Tue, 22 Jul 2014 10:40:20 +0000 (12:40 +0200)]
Do not use title as the primary text of dragged or copied links

In trying to preserve the link title, we set the title in the text part
of dragged or copied mimedata. This has caused a number of undesired
changes in behavior.

This patch reverts to placing the url in the text field, but instead
stores the rich part of the link as HTML. This is consistent with GTK,
and Chromium.

Task-number: QTBUG-39995
Change-Id: Id5f2587a93fb9721c728299340f2e3562f3456ca
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
3 years agoShow placeholder text when focused
Allan Sandfeld Jensen [Wed, 23 Jul 2014 13:51:56 +0000 (15:51 +0200)]
Show placeholder text when focused

Change the default behavior of placeholder text, so that it continues
to be shown when the element has focus but is still empty.

Task-number: QTBUG-40171
Change-Id: Ide37c3b28488cb6c24f7823a41fb62c8920a71f6
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
3 years agoDo not override padding in textfields
Allan Sandfeld Jensen [Tue, 22 Jul 2014 08:43:03 +0000 (10:43 +0200)]
Do not override padding in textfields

We currently override any defined padding on textfields with the Qt
style framewidth.

This patch instead adds the framewidth to any existing fixed padding.
This fixes textfield text from overlapping icons absolutely placed in
its padding.

Task-number: QTBUG-40257
Change-Id: I73feb3f9e4630f7c7813a1b2a16f1c525c84386f
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
3 years agoAvoid crash when hidePopup is called multiple times
Allan Sandfeld Jensen [Tue, 22 Jul 2014 06:56:11 +0000 (08:56 +0200)]
Avoid crash when hidePopup is called multiple times

If hidePopup is called twice it may cause access to a deleted version of itself

Task-number: QTBUG-38998
Change-Id: Iee967eb51c403420779ea502610b58383d07963f
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
3 years agoAdded support for appending an escaped SegmentedString to another.
Oystein [Tue, 22 Jul 2014 07:05:08 +0000 (09:05 +0200)]
Added support for appending an escaped SegmentedString to another.

Merge of blink r174725

This was previously an assert which triggers in the situation where the
HTMLEntityParser is parsing a potential named entity, but only has one or two
characters of data available due to being at the end of a network packet
boundary, so it 'unconsumes' them from the SegmentedString which has some
special handling when only one or two characters needs unconsuming to avoid
string creation. Next time the tokenizer is pumped, the SegmentedString is
then appended to the HTMLSourceTracker right before the actual parsing happens
(i.e. when we'd consume the previously unconsumed characters).
SegmentedString::append mostly assumes the parameter string hasn't been
consumed from and had an assert instead of handling this case, which hits.

Task-number:  QTBUG-40284
Change-Id: Ifcf9af6f6e2e5a9750af4297cfda2f55f3bb274e
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
3 years agoQWebPage crashes on drag without QWidget view
David Fries [Fri, 11 Jul 2014 15:59:44 +0000 (10:59 -0500)]
QWebPage crashes on drag without QWidget view

QWebPage can be used without a widgets and has a documentation section
on how to do so, but if QWegPage hasn't been given a QWidget in setView
a drag operation will crash.  To reproduce select a section of the web page
click and drag from within the selection and it will crash.

Add a check to avoid a NULL dereference, the existing code already has
a check for not having a QWidget set as the view.
DragClientQt::startDrag
m_chromeClient->platformPageClient() is NULL

Task-number: QTBUG-40204
Change-Id: I5739285696ab57c05ee59c10ae00a1cf652ff494
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoMerge remote-tracking branch 'origin/5.3' into dev
Frederik Gladhorn [Thu, 10 Jul 2014 08:16:41 +0000 (10:16 +0200)]
Merge remote-tracking branch 'origin/5.3' into dev

Change-Id: Ic15a117b8136e64fd4268583f1220d0e9d381497

3 years agoCrash during exception unwinding
Oliver Hunt [Fri, 4 Jul 2014 12:15:56 +0000 (14:15 +0200)]
Crash during exception unwinding

https://webkit.org/b/119860

Reviewed by Filip Pizlo.

Add an "Unreachable" NodeType, and then rearrange op_throw and op_throw_reference_error
to plant Throw or ThrowReferenceError followed by a flush and then the Unreachable node.

We need this so that Throw and ThrowReferenceError no longer need to be treated as
terminals and the subsequent flush keeps the activation (and other registers) live.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGNode.h:
(JSC::DFG::Node::isTerminal):
* dfg/DFGNodeType.h:
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):

Change-Id: Idb894e780cd3ebe15515d1796c58a339ae54d55f
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154290 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
3 years agoDoc: Removing url variable from qdocconf file.
Jerome Pasion [Fri, 4 Jul 2014 12:50:11 +0000 (14:50 +0200)]
Doc: Removing url variable from qdocconf file.

-url inherited from the url variable set in qtbase/doc/global

Change-Id: I67b5f39429c42b59bf93d6fe71074e586d767a79
Reviewed-by: Martin Smith <martin.smith@digia.com>
3 years agoBad cast from CSSInitialValue to CSSValueList
Ryosuke Niwa [Fri, 4 Jul 2014 08:31:31 +0000 (10:31 +0200)]
Bad cast from CSSInitialValue to CSSValueList

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

Reviewed by Beth Dakin.

Add a regression test. This is not a merge since the test in the Blink change involves
superfluous execCommand calls.

Change-Id: I13e08031516548a5915f8ad4c42486e9ba0e3d96
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156222 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
3 years agouse after free in WebCore::DocumentOrderedMap::remove / WebCore::TreeScope::removeEle...
Zalan Bujtas [Fri, 4 Jul 2014 08:30:16 +0000 (10:30 +0200)]
use after free in WebCore::DocumentOrderedMap::remove / WebCore::TreeScope::removeElementById

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

Reviewed by Ryosuke Niwa.

Update the document ordered map for an image element before dispatching
load or error events
when it's inserted into a document.

Source/WebCore:

Test: fast/dom/modify-node-and-while-in-the-callback-too-crash.html

* dom/DocumentOrderedMap.cpp: defensive fix to avoid use after free
issues.
(WebCore::DocumentOrderedMap::remove):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::insertedInto):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement): setting m_failedLoadURL makes
repeated updateFromElement calls return early.

Change-Id: I305e56de969d0efe3dc67930cdf585a201e8c6a5
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159481 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
3 years agoImplement Accelerated 2D Canvas
Allan Sandfeld Jensen [Fri, 20 Jun 2014 14:03:48 +0000 (16:03 +0200)]
Implement Accelerated 2D Canvas

Implements accelered 2d canvas and makes it an setting. Accelerated 2D
canvas can especially speed up image blitting and complex transforms on
embedded devices when using a QGLWidget viewport.

Change-Id: I98a03f3c76d4e87799830171c6df101ed9908de3
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
3 years agodefine DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS on HPPA
Lisandro Damián Nicanor Pérez Meyer [Wed, 2 Jul 2014 13:29:09 +0000 (10:29 -0300)]
define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS on HPPA

Solves building WebKit on HPPA.

Change-Id: I00a455ad03d3f896de589aaf6e6f4dc0e71398ac
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoActually load icc.prf for the Intel compiler
Thiago Macieira [Thu, 24 Jan 2013 05:27:28 +0000 (21:27 -0800)]
Actually load icc.prf for the Intel compiler

Nothing sets CONFIG += icc, so the .prf file was not getting loaded at
all. So force it on both Windows and Unix.

Change-Id: I0c9a0ab07b5637716e37fb2066d6013fa28c4012
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoPrevent interpreting URL parameter for Qt plugins as content URLs.
Michael Brüning [Wed, 18 Jun 2014 12:40:09 +0000 (14:40 +0200)]
Prevent interpreting URL parameter for Qt plugins as content URLs.

This prevents a compatibility workaround for NPAPI plugins from
interfering with the Qt plugins.

Task-number: QTBUG-39483
Change-Id: Ic9342d3bdeec4c26c21f56b475d3d3751b30f057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoFix android build error about already defined struct.
Sergio Martins [Mon, 14 Apr 2014 21:06:50 +0000 (22:06 +0100)]
Fix android build error about already defined struct.

Minimum API version is 9, which already defines this struct in elf.h

Also see qtscript/49ab1bd9838dc3c069be780ff6d69a2543c06ed6 which does
the same thing there.

Change-Id: Ia56f8399156a93edc569e7bb982bd7186a16a445
Reviewed-by: BogDan Vatra <bogdan@kde.org>
3 years agoMerge remote-tracking branch 'origin/5.3' into dev
Frederik Gladhorn [Thu, 26 Jun 2014 15:28:36 +0000 (17:28 +0200)]
Merge remote-tracking branch 'origin/5.3' into dev

Conflicts:
.qmake.conf

Change-Id: I60f650c77f74c20c23c07644a2d3c3d55ff27607

3 years agoFix SpeculateCellOperand ASSERT failure in DFG for 32-bit builds.
Julien Brianceau [Wed, 25 Jun 2014 14:30:34 +0000 (16:30 +0200)]
Fix SpeculateCellOperand ASSERT failure in DFG for 32-bit builds.

Original patch by Filip Pizlo <fpizlo@apple.com> on 2013-08-28
taken from WebKit r154804 (http://trac.webkit.org/changeset/154804).

Task-number: QTBUG-39768
Change-Id: I239f2ee2ec5d1c21f7e50709b8989e744fd87995
Reviewed-by: Zhang Zengbo <zengbo.zhang@gmail.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoQtWebKitWidgets should not depend directly on QtQuick
Allan Sandfeld Jensen [Wed, 25 Jun 2014 12:10:47 +0000 (14:10 +0200)]
QtWebKitWidgets should not depend directly on QtQuick

A left-over from the split of the QtWebKit and QtWebKitWidgets libraries
meant that QtWebKitWidgets still linked directly to QtQuick, though it
doesn't use it.

Change-Id: I16ebc0020610ee17edde39dcf0a5caeca15a3ef8
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
3 years agoQWebHitTestResult::element() should return the inner element
Allan Sandfeld Jensen [Tue, 24 Jun 2014 12:04:39 +0000 (14:04 +0200)]
QWebHitTestResult::element() should return the inner element

QWebHitTestResult::element() currently only returns a non-null result
if the innernode happens to be an element. This means it will never
contain anything when hittesting over text.

This patch changes QWebHitTestResult::element() to instead return the
inner element.

Task-number: QTBUG-39591
Change-Id: Ic00f30d0b6429f2bcfb47f6e386be7d890d45bfb
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
3 years agoSpecify location of CMake tests
Stephen Kelly [Wed, 25 Jun 2014 11:49:31 +0000 (13:49 +0200)]
Specify location of CMake tests

The create_cmake.prf file now checks for the existence of tests, so
ensure that they are searched for in the correct path.

Change-Id: Ibac09b01e1d2546b5ee553990e6257fd92d453bf
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
3 years agoFix WebView crash when using gcc 4.9.
Sergio Martins [Mon, 16 Jun 2014 14:44:34 +0000 (15:44 +0100)]
Fix WebView crash when using gcc 4.9.

Fix copied from https://code.google.com/p/angleproject/issues/detail?id=651

Task-number: QTBUG-39723
Change-Id: I8ee694079c263bf6d21e2a0eadc2234a2c69cae2
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoFix debug builds of qtwebkit on linux-icc
Allan Sandfeld Jensen [Tue, 17 Jun 2014 09:20:01 +0000 (11:20 +0200)]
Fix debug builds of qtwebkit on linux-icc

The thin archives are available for all compilers on Linux, and are
also required by the intel compiler for debug builds. Clang does not
need thin archives but it still helps.

Task-number: QTBUG-39632
Change-Id: I24f108e87492bd5b5dceb3c62126756f3976b88b
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
3 years agoQt5WebKitWidgets should keep private dependencies private
Allan Sandfeld Jensen [Tue, 17 Jun 2014 14:45:01 +0000 (16:45 +0200)]
Qt5WebKitWidgets should keep private dependencies private

The qmake file webkit_modules was not loaded, which meant we never
separated private Qt dependencies from public Qt dependencies in the QT
qmake variable.

Task-number: QTBUG-39249
Change-Id: Iadad6b652cee5a51894c4ac2e9979d7d41619d27
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
3 years agoPrevent crashes when the QWebView gets reparented.
Michael Brüning [Mon, 23 Jun 2014 10:17:14 +0000 (12:17 +0200)]
Prevent crashes when the QWebView gets reparented.

Wrap the QWindow pointer in a QPointer so it gets set to NULL
when the QWindow gets deleted without notification.

Task-number: QTBUG-39524
Change-Id: I7c8fbe0f6f1921a7b48c58dc502d6a0a3409d084
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoFix build with gcc 4.4
Allan Sandfeld Jensen [Tue, 17 Jun 2014 12:04:27 +0000 (14:04 +0200)]
Fix build with gcc 4.4

Gcc 4.4 does not have the unused-but-set-variable warning flag and
fails when building leveldb which tries to set it.

This patch only sets it on gcc versions that supports it.

Change-Id: Iea4fb5bab062729fc0518d644122f13502967cfb
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
3 years agoAdd qtxmlpatters to sync.profile
Sergio Ahumada [Tue, 24 Jun 2014 12:39:13 +0000 (14:39 +0200)]
Add qtxmlpatters to sync.profile

Indirect dependencies should also be listed in sync.profile

qtwebkit depends on qtdeclarative which depends on qtxmlpatterns, so
adding the latter as the CI system uses the information in sync.profile
to clone the required repositories.

Change-Id: I52f34b4ff1656aa20e0ceeacc4f42689f1505306
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoA fractional value of the css letter-spacing property is not rendered as expected
mmaxfield@apple.com [Wed, 8 Jan 2014 22:22:50 +0000 (22:22 +0000)]
A fractional value of the css letter-spacing property is not rendered as expected

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

Reviewed by Simon Fraser.

Source/WebCore:

This turns on fractional letter-spacing and word-spacing CSS values.
It is taken mostly from Blink r153727 and iOS. Updating the relevant
types is all that is necessary

* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
* platform/graphics/Font.cpp:
(WebCore::Font::Font):
(WebCore::Font::width):
* platform/graphics/Font.h:
(WebCore::Font::wordSpacing):
(WebCore::Font::letterSpacing):
(WebCore::Font::setWordSpacing):
(WebCore::Font::setLetterSpacing):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::wordSpacing):
(WebCore::RenderStyle::letterSpacing):
(WebCore::RenderStyle::setWordSpacing):
(WebCore::RenderStyle::setLetterSpacing):
* rendering/style/RenderStyle.h:

Change-Id: I49cedbf555426f3fae3fe58ec4eb25569d358997
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161521 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoGraphicsContext for Qt: add popTransparencyLayerInternal method.
Zhang Zengbo [Tue, 17 Jun 2014 10:12:24 +0000 (18:12 +0800)]
GraphicsContext for Qt: add popTransparencyLayerInternal method.

It is harmful to just call endPlatformTransparencyLayer inside
GraphicsContextQt.cpp,because the three calling sequences:

 1. beginPlatformTransparenceyLayer
    endPlatformTransparencyLayer

 2. pushTransparencyLayerInternal

 3. savePlatformState
    restorePlatformState

may interleave, which makes unexpected result.

Task-number: QTBUG-39577
Change-Id: I676a85cd5210e0f944cf6b522dd21deec06f03bc
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoBump version
Oswald Buddenhagen [Tue, 17 Jun 2014 22:36:58 +0000 (00:36 +0200)]
Bump version

Change-Id: I2522e10d7710331b57ace5d0a4e5b6e871987600

3 years agoDoc: Fix qmlclass selector used in documentation config
Topi Reinio [Wed, 11 Jun 2014 15:15:28 +0000 (17:15 +0200)]
Doc: Fix qmlclass selector used in documentation config

A recent change (46959875) in qdoc raised QML types from
subnodes to top-level nodes. This change modifies the
documentation configuration file(s) accordingly.

Change-Id: Ie4fbbceffae9e1b97ef6cfcdecd48699ca8d6a38
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
3 years agoMerge remote-tracking branch 'origin/stable' into 5.3 v5.3.1
Sergio Ahumada [Tue, 17 Jun 2014 11:36:15 +0000 (13:36 +0200)]
Merge remote-tracking branch 'origin/stable' into 5.3

Change-Id: I182d18383f82025fa7b9cfe7f136cf590c01fb14

3 years agoDoc: Added detailed description for WebView stable
Venu [Tue, 3 Jun 2014 13:51:15 +0000 (15:51 +0200)]
Doc: Added detailed description for WebView

Moved the description from the overview page
to the WebView type documentation. Also added an
image corresponding to the snippet used.

Task-number: QTBUG-36179
Change-Id: Iaf4207a36f774d93af9a881eae2162d44837eeee
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
3 years agoMerge remote-tracking branch 'origin/5.3' into dev
Sergio Ahumada [Sat, 14 Jun 2014 19:52:49 +0000 (21:52 +0200)]
Merge remote-tracking branch 'origin/5.3' into dev

Conflicts:
.qmake.conf

Change-Id: I8b5c89466108ab0302cd1841f0781471aefeb113

3 years agoFix letter-spacing in SVG
Allan Sandfeld Jensen [Fri, 13 Jun 2014 14:26:07 +0000 (16:26 +0200)]
Fix letter-spacing in SVG

Qt incorrectly included letter-spacing when WebCore asked us to ignore
it which broke SVG rendering of letter-spaced text in the complex
font path.

Task-number: QTBUG-39601
Change-Id: Ia951e12ac5503955eb0e34e214219f9136c71465
Reviewed-by: Julien Brianceau <jbriance@cisco.com>
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
3 years agoFix clang debug-and-release build
Allan Sandfeld Jensen [Fri, 13 Jun 2014 09:31:43 +0000 (11:31 +0200)]
Fix clang debug-and-release build

Under circumstances clang will leave code that calls the dead default
constructor of Attribute, which causes link time errors.

Change-Id: I265f5b6ee864737c8261cff1439d525000eed1ba
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
3 years agoMerge remote-tracking branch 'origin/stable' into 5.3
Sergio Ahumada [Wed, 11 Jun 2014 08:07:27 +0000 (10:07 +0200)]
Merge remote-tracking branch 'origin/stable' into 5.3

Change-Id: I09992d60034fccf74c5f754ab88bebe8b8de5e45

3 years ago[mips] Add floating point absolute support in JavaScriptCore.
Julien Brianceau [Tue, 10 Jun 2014 07:42:31 +0000 (09:42 +0200)]
[mips] Add floating point absolute support in JavaScriptCore.

Change-Id: I8b03fb0380fa444a6da239d8ddb19bdbe6b3d061
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoPrevent register clobbering to fix negative zero check in SoftModulo.
Julien Brianceau [Fri, 6 Jun 2014 09:44:40 +0000 (11:44 +0200)]
Prevent register clobbering to fix negative zero check in SoftModulo.

This fix is not relevant for x86 architectures.
Covered by integer-division-neg2tothe32-by-neg1 JavaScript test.

Change-Id: I8ffd1280063305bc98c564f5df57c76cc5b1d7a6
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years ago[mips] Fix branchTruncateDoubleToUint32 implementation in macro assembler.
Julien Brianceau [Thu, 5 Jun 2014 15:42:13 +0000 (17:42 +0200)]
[mips] Fix branchTruncateDoubleToUint32 implementation in macro assembler.

Test dfg-uint32array-overflow-values fails without this patch.

Change-Id: Ia186ab5c3fbc19fd7621f5cc60678b82a6424641
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoDo not crash or assert on SVG font fallbacks
Allan Sandfeld Jensen [Thu, 5 Jun 2014 11:53:12 +0000 (13:53 +0200)]
Do not crash or assert on SVG font fallbacks

Fonts falling back to SVG fonts may not have a rendering context, so
just skip kerning in this case.

Task-number: QTBUG-38356
Change-Id: I9d1473bbb8517bfae927e7b020a9c2102c6497b4
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
3 years agoAvoid deep copy when updating BitmapTextureGL
Allan Sandfeld Jensen [Thu, 5 Jun 2014 11:19:02 +0000 (13:19 +0200)]
Avoid deep copy when updating BitmapTextureGL

Since we use a ImageBuffer to paint into a BitmapTextureGL, and
ImageBuffer's always have an active painter, the convertion from QPixmap
to QImage causes a deep copy of the content before it is uploaded to
OpenGL. This copy is unnecessary and can be avoided by temporarily
redirecting the QPaintDevice.

Change-Id: I0106c0f6dfb9cc3fbbee943411fc8f6853df4f98
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
3 years agoEnsure replaced tiles are repainted
Allan Sandfeld Jensen [Wed, 4 Jun 2014 11:35:27 +0000 (13:35 +0200)]
Ensure replaced tiles are repainted

If a layer with a backing store is resized, we may replace some tiles
that were not at maximum size. When that happens we need to ensure the
replaced area is repainted, otherwise the content disappears until
refreshed.

Change-Id: Ie2f7796a2493a56ed5fc6cc4cea55f4ab9f38bbe
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
3 years agoAccount for extra uncommitted memory size also in ASSERTs.
Michael Brüning [Fri, 23 May 2014 12:00:58 +0000 (14:00 +0200)]
Account for extra uncommitted memory size also in ASSERTs.

The fix for the stack layout in applications that are loading .NET
libraries in addition did not update the assertions that make sure
that the actual end of the stack is where it should be.

Task-number: QTBUG-38067
Change-Id: Ib8be1228bc9f10baf8d3484bb280a3a5c8021ab8
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
3 years agoCopyLinkToClipboard should copy the URL only
Allan Sandfeld Jensen [Mon, 2 Jun 2014 15:28:12 +0000 (17:28 +0200)]
CopyLinkToClipboard should copy the URL only

The addition of title information to the dragged or copied links, has
caused the clipboard after CopyLinkToClipboard to paste the link title
instead of the link URL when doing a simple paste.

This paste removes the title from the MimeData so that QMimeData must
return the text version of the URL when pasting text.

Task-number: QTBUG-39341
Change-Id: Ia28ea0f0eda07a4133c5628b60db624a16ed9931
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
3 years ago[CoordinatedGraphics] Segmentation fault at CoordinatedGraphicsScene::clearImageBack...
Edit Balint [Mon, 20 Jan 2014 11:14:04 +0000 (11:14 +0000)]
[CoordinatedGraphics] Segmentation fault at  CoordinatedGraphicsScene::clearImageBackingContents

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

Patch by Edit Balint <edbalint@inf.u-szeged.hu> on 2014-01-20
Reviewed by Csaba Osztrogonác.

Unexpected behavior occurs in some test cases which leads to segmentation fault.

* platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
(WebCore::CompositingCoordinator::removeImageBacking):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@162329 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Task-number: QTBUG-38841
Change-Id: I85699c26f9ec78d97d66cf734188ba7da7e2233e
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
4 years agoDeploy QML plugin type information to correct directory.
Michael Brüning [Thu, 15 May 2014 12:27:55 +0000 (14:27 +0200)]
Deploy QML plugin type information to correct directory.

This adds the plugins.qmltypes file to the list of files that are
deployed to the qml/QtWebKit directory.

This is needed e.g. for auto-completion in Creator.

Patch co-authored with Fawzi Mohamed.

Task-number: QTBUG-39013
Change-Id: Icce9a168a0558652b810ad16c89895e24a6fc6ef
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
4 years agoImages wastes time on prescaling before OpenGL painting
Allan Sandfeld Jensen [Wed, 14 May 2014 14:15:05 +0000 (16:15 +0200)]
Images wastes time on prescaling before OpenGL painting

WebCore prescale images under cirtain circumstances to work-around poor
downscaling in the raster QPainter. This is however unnecessary and
harmful to performance when using a OpenGL paint engine.

This patch makes sure the prescaling logic is only used for the raster
paint engine.

Change-Id: I321894ee6adec097d827e9997ebf951960ee91a4
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
4 years agoFix animation errors with radio buttons and checkboxes on Windows.
Michael Brüning [Tue, 13 May 2014 16:43:56 +0000 (18:43 +0200)]
Fix animation errors with radio buttons and checkboxes on Windows.

The QWindowsVistaStyle used the animation state of the control's
style object. Since this is the QWebView for controls used in
QtWebKit, this leads to unpredictable painting behavior.

Task-number: QTBUG-30072
Change-Id: I1ba572bfbf56745b8e85fd631a596c43aa2ba25a
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
4 years agoFix scrollbar handles so it follows cursor position when on a page
Andy Shaw [Sun, 11 May 2014 21:08:07 +0000 (23:08 +0200)]
Fix scrollbar handles so it follows cursor position when on a page

When a webpage contains a scrollbar as part of an element inside it
then the scrollbar handle should be in sync with the cursor when
the handle is moved.

Task-number: QTBUG-38360
Change-Id: I1f5474ad9b5e8dc232b307f4c5927833577afe1b
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
4 years agoStop the clearContentsTimer when removing an image backing.
Michael Brüning [Fri, 9 May 2014 13:07:04 +0000 (15:07 +0200)]
Stop the clearContentsTimer when removing an image backing.

It creates a race condition that can lead to crashes when the WebView's
visible property is set to false and the image backing is removed
shortly after.

Task-number: QTBUG-38841
Change-Id: I0775ba33fda9cee5f86ef50a4fbe048602564296
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
4 years agoFix leak of QSensors on QWebPage creation
Allan Sandfeld Jensen [Thu, 8 May 2014 13:54:18 +0000 (15:54 +0200)]
Fix leak of QSensors on QWebPage creation

The WebCore page supplements are not deleted when the page is, so we
need to track them in QWebPageAdapter and delete them there.

Task-number: QTBUG-38857
Change-Id: Ib3e41074de3bebf00f017523d28efc1c923250f3
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
4 years agoFix crash in pixmapToImageData binding
Allan Sandfeld Jensen [Wed, 7 May 2014 15:01:32 +0000 (17:01 +0200)]
Fix crash in pixmapToImageData binding

The result of JSContextGetGlobalObject is a wrapper-object not a
direct pointer to the global object. Instead access the global object
directly since we are already using other parts of the internal JS API.

The patch also adds a missing API shim that should be held when using the
internal JS API.

Task-number: QTBUG-38809
Change-Id: I76eccbbd6cb1b9fd3322596bb7d6a3f9b0e694b8
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
4 years agoOrigin spoofing possible due to inappropriate URL escape sequence decoding
darin@apple.com [Tue, 6 May 2014 11:29:14 +0000 (13:29 +0200)]
Origin spoofing possible due to inappropriate URL escape sequence decoding

https://bugs.webkit.org/show_bug.cgi?id=131837
rdar://problem/15211936

Reviewed by Anders Carlsson and Dave Hyatt.

Tests: fast/dom/DOMURL/parsing.html
       fast/dom/HTMLAnchorElement/anchor-element-href-parsing.html

* platform/URL.cpp:
(WebCore::URL::host): Removed unnecessary call to
decodeURLEscapeSequences, which caused
problems and was not needed.

Change-Id: Idddc6efe310389b8e68db2d8c312c2098121e6d9
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167480 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
4 years agoFix problems with divot and lineStart mismatches.
Mark Lam [Mon, 5 May 2014 16:08:53 +0000 (18:08 +0200)]
Fix problems with divot and lineStart mismatches.

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

Reviewed by Oliver Hunt.

Source/JavaScriptCore:

r152494 added the recording of lineStart values for divot positions.
This is needed for the computation of column numbers. Similarly, it also
added the recording of line numbers for the divot positions. One problem
with the approach taken was that the line and lineStart values were
recorded independently, and hence were not always guaranteed to be
sampled at the same place that the divot position is recorded. This
resulted in potential mismatches that cause some assertions to fail.

The solution is to introduce a JSTextPosition abstraction that records
the divot position, line, and lineStart as a single quantity. Wherever
we record the divot position as an unsigned int previously, we now record
its JSTextPosition which captures all 3 values in one go. This ensures
that the captured line and lineStart will always match the captured divot
position.

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::emitCallEval):
(JSC::BytecodeGenerator::emitCallVarargs):
(JSC::BytecodeGenerator::emitConstruct):
(JSC::BytecodeGenerator::emitDebugHook):
- Use JSTextPosition instead of passing line and lineStart explicitly.
* bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::emitExpressionInfo):
- Use JSTextPosition instead of passing line and lineStart explicitly.
* bytecompiler/NodesCodegen.cpp:
(JSC::ThrowableExpressionData::emitThrowReferenceError):
(JSC::ResolveNode::emitBytecode):
(JSC::BracketAccessorNode::emitBytecode):
(JSC::DotAccessorNode::emitBytecode):
(JSC::NewExprNode::emitBytecode):
(JSC::EvalFunctionCallNode::emitBytecode):
(JSC::FunctionCallValueNode::emitBytecode):
(JSC::FunctionCallResolveNode::emitBytecode):
(JSC::FunctionCallBracketNode::emitBytecode):
(JSC::FunctionCallDotNode::emitBytecode):
(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):
(JSC::PostfixNode::emitResolve):
(JSC::PostfixNode::emitBracket):
(JSC::PostfixNode::emitDot):
(JSC::DeleteResolveNode::emitBytecode):
(JSC::DeleteBracketNode::emitBytecode):
(JSC::DeleteDotNode::emitBytecode):
(JSC::PrefixNode::emitResolve):
(JSC::PrefixNode::emitBracket):
(JSC::PrefixNode::emitDot):
(JSC::UnaryOpNode::emitBytecode):
(JSC::BinaryOpNode::emitStrcat):
(JSC::BinaryOpNode::emitBytecode):
(JSC::ThrowableBinaryOpNode::emitBytecode):
(JSC::InstanceOfNode::emitBytecode):
(JSC::emitReadModifyAssignment):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::AssignDotNode::emitBytecode):
(JSC::ReadModifyDotNode::emitBytecode):
(JSC::AssignBracketNode::emitBytecode):
(JSC::ReadModifyBracketNode::emitBytecode):
(JSC::ForInNode::emitBytecode):
(JSC::WithNode::emitBytecode):
(JSC::ThrowNode::emitBytecode):
- Use JSTextPosition instead of passing line and lineStart explicitly.
* parser/ASTBuilder.h:
- Replaced ASTBuilder::PositionInfo with JSTextPosition.
(JSC::ASTBuilder::BinaryOpInfo::BinaryOpInfo):
(JSC::ASTBuilder::AssignmentInfo::AssignmentInfo):
(JSC::ASTBuilder::createResolve):
(JSC::ASTBuilder::createBracketAccess):
(JSC::ASTBuilder::createDotAccess):
(JSC::ASTBuilder::createRegExp):
(JSC::ASTBuilder::createNewExpr):
(JSC::ASTBuilder::createAssignResolve):
(JSC::ASTBuilder::createExprStatement):
(JSC::ASTBuilder::createForInLoop):
(JSC::ASTBuilder::createReturnStatement):
(JSC::ASTBuilder::createBreakStatement):
(JSC::ASTBuilder::createContinueStatement):
(JSC::ASTBuilder::createLabelStatement):
(JSC::ASTBuilder::createWithStatement):
(JSC::ASTBuilder::createThrowStatement):
(JSC::ASTBuilder::appendBinaryExpressionInfo):
(JSC::ASTBuilder::appendUnaryToken):
(JSC::ASTBuilder::unaryTokenStackLastStart):
(JSC::ASTBuilder::assignmentStackAppend):
(JSC::ASTBuilder::createAssignment):
(JSC::ASTBuilder::setExceptionLocation):
(JSC::ASTBuilder::makeDeleteNode):
(JSC::ASTBuilder::makeFunctionCallNode):
(JSC::ASTBuilder::makeBinaryNode):
(JSC::ASTBuilder::makeAssignNode):
(JSC::ASTBuilder::makePrefixNode):
(JSC::ASTBuilder::makePostfixNode):
- Use JSTextPosition instead of passing line and lineStart explicitly.
* parser/Lexer.cpp:
(JSC::::lex):
- Added support for capturing the appropriate JSTextPositions instead
    of just the character offset.
* parser/Lexer.h:
(JSC::Lexer::currentPosition):
(JSC::::lexExpectIdentifier):
- Added support for capturing the appropriate JSTextPositions instead
    of just the character offset.
* parser/NodeConstructors.h:
(JSC::Node::Node):
(JSC::ResolveNode::ResolveNode):
(JSC::EvalFunctionCallNode::EvalFunctionCallNode):
(JSC::FunctionCallValueNode::FunctionCallValueNode):
(JSC::FunctionCallResolveNode::FunctionCallResolveNode):
(JSC::FunctionCallBracketNode::FunctionCallBracketNode):
(JSC::FunctionCallDotNode::FunctionCallDotNode):
(JSC::CallFunctionCallDotNode::CallFunctionCallDotNode):
(JSC::ApplyFunctionCallDotNode::ApplyFunctionCallDotNode):
(JSC::PostfixNode::PostfixNode):
(JSC::DeleteResolveNode::DeleteResolveNode):
(JSC::DeleteBracketNode::DeleteBracketNode):
(JSC::DeleteDotNode::DeleteDotNode):
(JSC::PrefixNode::PrefixNode):
(JSC::ReadModifyResolveNode::ReadModifyResolveNode):
(JSC::ReadModifyBracketNode::ReadModifyBracketNode):
(JSC::AssignBracketNode::AssignBracketNode):
(JSC::AssignDotNode::AssignDotNode):
(JSC::ReadModifyDotNode::ReadModifyDotNode):
(JSC::AssignErrorNode::AssignErrorNode):
(JSC::WithNode::WithNode):
(JSC::ForInNode::ForInNode):
- Use JSTextPosition instead of passing line and lineStart explicitly.
* parser/Nodes.cpp:
(JSC::StatementNode::setLoc):
- Use JSTextPosition instead of passing line and lineStart explicitly.
* parser/Nodes.h:
(JSC::Node::lineNo):
(JSC::Node::startOffset):
(JSC::Node::lineStartOffset):
(JSC::Node::position):
(JSC::ThrowableExpressionData::ThrowableExpressionData):
(JSC::ThrowableExpressionData::setExceptionSourceCode):
(JSC::ThrowableExpressionData::divot):
(JSC::ThrowableExpressionData::divotStart):
(JSC::ThrowableExpressionData::divotEnd):
(JSC::ThrowableSubExpressionData::ThrowableSubExpressionData):
(JSC::ThrowableSubExpressionData::setSubexpressionInfo):
(JSC::ThrowableSubExpressionData::subexpressionDivot):
(JSC::ThrowableSubExpressionData::subexpressionStart):
(JSC::ThrowableSubExpressionData::subexpressionEnd):
(JSC::ThrowablePrefixedSubExpressionData::ThrowablePrefixedSubExpressionData):
(JSC::ThrowablePrefixedSubExpressionData::setSubexpressionInfo):
(JSC::ThrowablePrefixedSubExpressionData::subexpressionDivot):
(JSC::ThrowablePrefixedSubExpressionData::subexpressionStart):
(JSC::ThrowablePrefixedSubExpressionData::subexpressionEnd):
- Use JSTextPosition instead of passing line and lineStart explicitly.
* parser/Parser.cpp:
(JSC::::Parser):
(JSC::::parseInner):
- Use JSTextPosition instead of passing line and lineStart explicitly.
(JSC::::didFinishParsing):
- Remove setting of m_lastLine value. We always pass in the value from
    m_lastLine anyway. So, this assignment is effectively a nop.
(JSC::::parseVarDeclaration):
(JSC::::parseVarDeclarationList):
(JSC::::parseForStatement):
(JSC::::parseBreakStatement):
(JSC::::parseContinueStatement):
(JSC::::parseReturnStatement):
(JSC::::parseThrowStatement):
(JSC::::parseWithStatement):
(JSC::::parseTryStatement):
(JSC::::parseBlockStatement):
(JSC::::parseFunctionDeclaration):
(JSC::LabelInfo::LabelInfo):
(JSC::::parseExpressionOrLabelStatement):
(JSC::::parseExpressionStatement):
(JSC::::parseAssignmentExpression):
(JSC::::parseBinaryExpression):
(JSC::::parseProperty):
(JSC::::parsePrimaryExpression):
(JSC::::parseMemberExpression):
(JSC::::parseUnaryExpression):
- Use JSTextPosition instead of passing line and lineStart explicitly.
* parser/Parser.h:
(JSC::Parser::next):
(JSC::Parser::nextExpectIdentifier):
(JSC::Parser::getToken):
(JSC::Parser::tokenStartPosition):
(JSC::Parser::tokenEndPosition):
(JSC::Parser::lastTokenEndPosition):
(JSC::::parse):
- Use JSTextPosition instead of passing line and lineStart explicitly.
* parser/ParserTokens.h:
(JSC::JSTextPosition::JSTextPosition):
(JSC::JSTextPosition::operator+):
(JSC::JSTextPosition::operator-):
(JSC::JSTextPosition::operator int):
- Added JSTextPosition.
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::makeFunctionCallNode):
(JSC::SyntaxChecker::makeAssignNode):
(JSC::SyntaxChecker::makePrefixNode):
(JSC::SyntaxChecker::makePostfixNode):
(JSC::SyntaxChecker::makeDeleteNode):
(JSC::SyntaxChecker::createResolve):
(JSC::SyntaxChecker::createBracketAccess):
(JSC::SyntaxChecker::createDotAccess):
(JSC::SyntaxChecker::createRegExp):
(JSC::SyntaxChecker::createNewExpr):
(JSC::SyntaxChecker::createAssignResolve):
(JSC::SyntaxChecker::createForInLoop):
(JSC::SyntaxChecker::createReturnStatement):
(JSC::SyntaxChecker::createBreakStatement):
(JSC::SyntaxChecker::createContinueStatement):
(JSC::SyntaxChecker::createWithStatement):
(JSC::SyntaxChecker::createLabelStatement):
(JSC::SyntaxChecker::createThrowStatement):
(JSC::SyntaxChecker::appendBinaryExpressionInfo):
(JSC::SyntaxChecker::operatorStackPop):
- Use JSTextPosition instead of passing line and lineStart explicitly.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153477 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Task-number: QTBUG-38708
Change-Id: Ic6a65e8915c634dffe76b7181b38d6be0ab4a45d
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
4 years agoUpdate RenderImage when the image src is cleared
spartha [Tue, 6 May 2014 08:49:12 +0000 (10:49 +0200)]
Update RenderImage when the image src is cleared

When the src is removed via JavaScript, the image loader now
updates the renderer.

BUG=123017

Review URL: https://chromiumcodereview.appspot.com/20473002

git-svn-id: svn://svn.chromium.org/blink/trunk@155294 bbb929c8-8fbe-4397-9dbb-9b2b20218538

Task-number: QTBUG-38287
Change-Id: I49c353cfa4ad1f7c1ceac80df81b8cb713d291df
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
4 years agoZooming transforms results in blurry backgrounds
Allan Sandfeld Jensen [Tue, 29 Apr 2014 16:59:31 +0000 (18:59 +0200)]
Zooming transforms results in blurry backgrounds

An optimization to speedup pattern transforms results in blurry
background images when using CSS transforms.

This patch disables the optimization when QPainter already has a
transform, and the optimization would be both wrong and probably slower.

Test: svg/as-background-image/svg-transformed-background.html

Task-number: QTBUG-38588
Change-Id: I58739e21fd925048bc91f0ac973fae2036bcf713
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
4 years agoReduce the command line length when generating bindings
Jocelyn Turcotte [Mon, 5 May 2014 16:22:30 +0000 (18:22 +0200)]
Reduce the command line length when generating bindings

With a working directory of only a few characters longer than our
build machines it's easy to end up getting a
"NMAKE : fatal error U1095" on Windows.

Unlike when invoking the compiler or the linker, we do not use
response files to pass to perl when generating JavaScript bindings.

Reduce the likeliness of getting this error for people building
QtWebKit themselves by avoiding specifying disabled features.
The binding generators do not include Platform.h like the normal
code does.

Task-Number: QTBUG-38632
Change-Id: Iaa1a1c75e8f6a6391f896067adbc5f3b55b59007
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
4 years agoFix stack initialization when running under .NET.
Sergio Martins [Tue, 8 Apr 2014 12:23:34 +0000 (13:23 +0100)]
Fix stack initialization when running under .NET.

Under .NET, on WinXP and sometimes on Win7 we will have two blocks
of uncommited memory before the guard page, so look one block further.

In debug mode it would crash due to assert
guardPage.Protect & PAGE_GUARD

In release mode it would crash due to only using a 4K stack.

Change-Id: If9f2c84122ba95a18403a8f413d080dd5cc58250
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
4 years agoMerge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging...
Jani Heikkinen [Thu, 24 Apr 2014 16:37:51 +0000 (18:37 +0200)]
Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable

4 years agoDo not try to create invalid sized XPixmaps
Allan Sandfeld Jensen [Thu, 24 Apr 2014 11:41:14 +0000 (13:41 +0200)]
Do not try to create invalid sized XPixmaps

If a visible plugin is resized to an empty size we request an empty
sized xpixmap which is illegal.

Instead hide and only free the exiting drawable.

Task-number: QTBUG-38541
Change-Id: I2cb3d221d656b1b18391c479168221bcd0aa73b1
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
4 years agoFix build with clang on linux
Allan Sandfeld Jensen [Wed, 23 Apr 2014 11:02:27 +0000 (13:02 +0200)]
Fix build with clang on linux

Fixes a few issues with clang builds using libstdc++

Change-Id: I68d3af2c48bce42e2c5319c517e9b57bed2b729a
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
4 years agoMerge remote-tracking branch 'origin/release' into stable
Jani Heikkinen [Wed, 23 Apr 2014 09:46:58 +0000 (12:46 +0300)]
Merge remote-tracking branch 'origin/release' into stable

Change-Id: Icd2b7e87cdd837d76f9bc11c65f6ee5a90407312

4 years agoBump MODULE_VERSION to 5.3.1
Sergio Ahumada [Thu, 17 Apr 2014 15:33:25 +0000 (17:33 +0200)]
Bump MODULE_VERSION to 5.3.1

Change-Id: Icef24bc1b350ed0e382578b0c6509589097effcd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
4 years agoFix cast from QByteArray to QString v5.3.0 v5.3.0-rc1
Allan Sandfeld Jensen [Thu, 10 Apr 2014 14:35:42 +0000 (16:35 +0200)]
Fix cast from QByteArray to QString

QUrl::toEncoded() returns a QByteArray which we should not try to append
directly to a QString. Instead convert it first from ascii/latin1.

Change-Id: I54fd1ef939cf25c81ad4f4ceab91fc4053b627ba
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
4 years agoFlash of garbage pixels when playing a show on Hulu
Simon Fraser [Mon, 14 Apr 2014 10:16:32 +0000 (12:16 +0200)]
Flash of garbage pixels when playing a show on Hulu

<https://webkit.org/b/119871>

Source/WebCore:

Reviewed by Tim Horton.

When starting a show on Hulu, there's a layer that gets marked as
opaque because it has a child RenderLayer whose background fills the
compositing layer. That child RenderLayer was recently position:fixed
but outside the viewport, so its viewportConstrainedNotCompositedReason
was set to a non-zero value.

However, we failed to clear the viewportConstrainedNotCompositedReason
when the layer became non-fixed. This caused painting the opaque
layer to bail in RenderLayer::paintLayer(), leaving garbage.

Test: compositing/contents-opaque/fixed-to-nonfixed.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayer): Add an assertion to catch this error in future.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateBacking): Make sure we clear the
ViewportConstrainedNotCompositedReason if the layer is no longer fixed.

Change-Id: Ie1aa935b8271cd8cc3159f5337d483a77d74b8a0
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154147 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
4 years agoCrash when submitting form in a document with null encoding
Ryosuke Niwa [Mon, 14 Apr 2014 10:12:30 +0000 (12:12 +0200)]
Crash when submitting form in a document with null encoding

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

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Merge https://chromium.googlesource.com/chromium/blink/+/bba01a7fff09e3053ada96ababac2a6e4261fe5f

The CString object which is passed to normalizeLineEndingsToCRLF() can be
a null string. It is created in FormDataList::appendString(), and it
produces a null CString if FormDataList::m_encoding is a null encoding.

Test: fast/forms/form-submit-in-image-document.html

* platform/text/LineEnding.cpp:
(internalNormalizeLineEndingsToCRLF):

Change-Id: Ia36bcf292fb4d1da7e4bb21e2eddf1146eecd71c
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158868 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
4 years agoFix build on Android
Allan Sandfeld Jensen [Mon, 14 Apr 2014 13:25:11 +0000 (15:25 +0200)]
Fix build on Android

Atomic increment/decrement was defined twice on Android, and gamepad support
doesn't build. This removesthe redundant definition, and disables gamepad
support on android.

Change-Id: I62ceae141564c4dec7a1b941ef832889e82736fb
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
4 years agoMerge remote-tracking branch 'origin/stable' into dev
Frederik Gladhorn [Fri, 11 Apr 2014 12:17:27 +0000 (14:17 +0200)]
Merge remote-tracking branch 'origin/stable' into dev

Change-Id: I42fb7e064fa7cfedf97d0436d406cb379c846ea5

4 years agoFix rendering of WebKit2 QML WebView with ANGLE.
Michael Bruning [Wed, 5 Mar 2014 17:09:38 +0000 (18:09 +0100)]
Fix rendering of WebKit2 QML WebView with ANGLE.

The WebKit2 QML WebView was not rendered on ANGLE builds
due to a precision mismatch for a uniform matrix used in
in both vertex and fragment shaders which made the ANGLE
compiler bail out on linking the shader program.

This was fixed by overriding the precision to highp in
both shaders.

Task-number: QTBUG-37043
Change-Id: I840f8e348d5de1c5900576e7d68c3f8ddcdfa4a7
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>