[Qt] Port meta method/signal/slot handling in run-time bridge to use JSC C API
https://bugs.webkit.org/show_bug.cgi?id=93476

Reviewed by Kenneth Rohde Christiansen.

Source/WebCore:

Based on patch by No'am Rosenthal and lots of good suggestions by Caio Marcelo.

Ported the code that mapped invokable methods (and signals/slots) as
well as the code that provides the connect() and disconnect() functions
over to use the JSC C API. In the process one behavioural change was
implemented: Previously meta methods were actually function objects
that through Function.prototype allowed calling via
object.method.call(object). Through the use of plain JS objects that is
not possible anymore.

If we tried to continue to use function objects (JSObjectMakeFunction)
then we would loose the ability to store the private pointer. An
alternative approach would be to use a regular object and install the
Function prototype (Function.prototype), but unfortunately we cannot do
that without loosing the common prototype for signals and slots.

* bridge/qt/qt_class.cpp:
(JSC::Bindings::QtClass::fallbackObject):
* bridge/qt/qt_instance.cpp:
(JSC::Bindings::QtInstance::~QtInstance):
(JSC::Bindings::QtInstance::newRuntimeObject):
* bridge/qt/qt_instance.h:
(Bindings):
(QtInstance):
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::prototypeForSignalsAndSlots):
(JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
(JSC::Bindings::QtRuntimeMethod::~QtRuntimeMethod):
(JSC::Bindings::QtRuntimeMethod::call):
(JSC::Bindings::QtRuntimeMethod::connect):
(JSC::Bindings::QtRuntimeMethod::disconnect):
(JSC::Bindings::QtRuntimeMethod::jsObjectRef):
(JSC::Bindings::QtRuntimeMethod::connectOrDisconnect):
(Bindings):
(JSC::Bindings::QtConnectionObject::~QtConnectionObject):
* bridge/qt/qt_runtime.h:
(JSC::Bindings::QtRuntimeMethod::name):
(QtRuntimeMethod):
(QtConnectionObject):

Source/WebKit/qt:

Changed semantics of some test expectations. Similarly to r125032 when generating
error exceptions for connect/disconnect, we cannot generate explicit type error
exceptions but only generic errors. Another change is that the meta-method wrapper
doesn't support the call() through Function.prototype anymore. See WebCore changelog
for details.

* tests/qobjectbridge/tst_qobjectbridge.cpp:
(tst_QObjectBridge::connectAndDisconnect):
(tst_QObjectBridge::objectDeleted):
(tst_QObjectBridge::introspectQtMethods):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125428 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove webkitMediaSourceURL from HTMLMediaElement.idl
https://bugs.webkit.org/show_bug.cgi?id=93619

Reviewed by Adam Barth.

The webkitMediaSourceURL attribute is no longer needed now that we use
createObjectURL() to generate a media source URL.

Source/WebCore:

Test: update http/test/media/media-source/media-source.js

* html/HTMLMediaElement.h:
* html/HTMLMediaElement.idl:

LayoutTests:

* http/tests/media/media-source/media-source.js:
(MediaSourceTest.setSrcToMediaSourceTestURL):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125429 268f45cc-cd09-0410-ab3c-d52691b4dbfc
CSS 2.1 failure: Word-spacing affects each space and non-breaking space
https://bugs.webkit.org/show_bug.cgi?id=89826

Reviewed by Eric Seidel.

Source/WebCore:

Add word spacing to consecutive spaces in a run per http://www.w3.org/TR/CSS21/text.html#spacing-props.

Test: fast/css/word-spacing-characters.html
      fast/css/word-spacing-characters-complex-text.html
      fast/css/word-spacing-characters-linebreak.html
      css2.1/20110323/word-spacing-characters-002.htm
      css2.1/20110323/word-spacing-characters-003.htm
      css2.1/20110323/word-spacing-remove-space-001.htm
      css2.1/20110323/word-spacing-remove-space-002.htm
      css2.1/20110323/word-spacing-remove-space-003.htm
      css2.1/20110323/word-spacing-remove-space-004.htm
      css2.1/20110323/word-spacing-remove-space-005.htm
      css2.1/20110323/word-spacing-remove-space-006.htm
      css2.1/20110323/c541-word-sp-001.htm

* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advance): All spaces (ordinary space or &nbsp;) get word-spacing added, even
  if they are consecutive.
* platform/graphics/harfbuzz/HarfBuzzShaperBase.cpp:
(WebCore::HarfBuzzShaperBase::isWordEnd): ditto, but for the complex text case on Chromium. Had to use
  m_run rather than m_normalizedBuffer here as m_normalizedBuffer turns tabs into spaces! Unlike the simple
  text path, '\n' gets word-spacing - I observed this from fast/text/atsui-spacing-features.html but can't
  find it specified anywhere.
* platform/graphics/harfbuzz/HarfBuzzShaperBase.h:
(WebCore::HarfBuzzShaperBase::isCodepointSpace):
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::adjustGlyphsAndAdvances): ditto, but for the complext text case on Mac.
   The change to this file is speculative, I don't have a Mac build.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextLineBreak): Tested by word-spacing-linebreak.html
* rendering/RenderText.cpp:
(WebCore::RenderText::widthFromCache): This code-path is not covered by any existing layout tests!
  I've tried to come up with a test to hit it but have failed.

LayoutTests:

* css2.1/20110323/c541-word-sp-001-expected.html: Added.
* css2.1/20110323/c541-word-sp-001.htm: Added.
  Replaces t1604-c541-word-sp-01-b-a.html below.
* css2.1/20110323/word-spacing-characters-002-expected.html: Added.
* css2.1/20110323/word-spacing-characters-002.htm: Added.
* css2.1/20110323/word-spacing-characters-003-expected.html: Added.
* css2.1/20110323/word-spacing-characters-003.htm: Added.
  These passed already.
* css2.1/20110323/word-spacing-remove-space-001-expected.html: Added.
* css2.1/20110323/word-spacing-remove-space-001.htm: Added.
* css2.1/20110323/word-spacing-remove-space-002-expected.html: Added.
* css2.1/20110323/word-spacing-remove-space-002.htm: Added.
* css2.1/20110323/word-spacing-remove-space-003-expected.html: Added.
* css2.1/20110323/word-spacing-remove-space-003.htm: Added.
* css2.1/20110323/word-spacing-remove-space-004-expected.html: Added.
* css2.1/20110323/word-spacing-remove-space-004.htm: Added.
* css2.1/20110323/word-spacing-remove-space-005-expected.html: Added.
* css2.1/20110323/word-spacing-remove-space-005.htm: Added.
* css2.1/20110323/word-spacing-remove-space-006-expected.html: Added.
* css2.1/20110323/word-spacing-remove-space-006.htm: Added.
  These 6 tests are fixed by this patch.
* css2.1/t1604-c541-word-sp-01-b-a.html: Removed.
  Per http://lists.w3.org/Archives/Public/public-css-testsuite/2010Jan/0029.html t1604-c541-word-sp-01-b-a.htm is
  now invalid and has been replaced by c541-word-sp-001.htm above.
* fast/css/word-spacing-characters-complex-text-expected.html: Added.
* fast/css/word-spacing-characters-complex-text.html: Added.
  This is a complex text version of word-spacing-characters-001.htm
* fast/css/word-spacing-characters-expected.html: Added.
* fast/css/word-spacing-characters.html: Added.
  The original test (word-spacing-characters-001.htm) has two spaces between the non-breaking spaces in the second last case.
  This causes WebKit to split the text into two-runs and drop the second of the two spaces. This entire test can be replaced
  with word-spacing-characters-001.htm from the css test suite when https://bugs.webkit.org/show_bug.cgi?id=89827 is fixed.
* fast/css/word-spacing-linebreak-expected.html: Added.
* fast/css/word-spacing-linebreak.html: Added.
* platform/chromium-linux/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Removed.
* platform/chromium-linux/fast/css/word-space-extra-expected.png:
* platform/chromium-mac-snowleopard/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Removed.
* platform/chromium-mac/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Removed.
* platform/chromium-win/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Removed.
* platform/chromium-win/css2.1/t1604-c541-word-sp-01-b-a-expected.txt: Removed.
* platform/chromium-win/fast/css/word-space-extra-expected.txt:
* platform/chromium/TestExpectations:
* platform/efl/TestExpectations:
* platform/efl/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Removed.
* platform/efl/css2.1/t1604-c541-word-sp-01-b-a-expected.txt: Removed.
* platform/gtk/TestExpectations:
* platform/gtk/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Removed.
* platform/gtk/css2.1/t1604-c541-word-sp-01-b-a-expected.txt: Removed.
* platform/mac/TestExpectations:
* platform/mac/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Removed.
* platform/mac/css2.1/t1604-c541-word-sp-01-b-a-expected.txt: Removed.
* platform/qt/TestExpectations:
* platform/qt/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Removed.
* platform/qt/css2.1/t1604-c541-word-sp-01-b-a-expected.txt: Removed.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125430 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] new test css3/flexbox/line-wrapping.html failing
https://bugs.webkit.org/show_bug.cgi?id=72490

Patch by Lauro Neto <lauro.neto@openbossa.org> on 2012-08-13
Reviewed by Kenneth Rohde Christiansen.

Gardening. Unskip now passing test.

* platform/qt/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125431 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Cairo] canvas/philip/tests/2d.drawImage.self.2.html test failing on ports using Cairo
https://bugs.webkit.org/show_bug.cgi?id=93244

Patch by Dominik Röttsches <dominik.rottsches@intel.com> on 2012-08-13
Reviewed by Kenneth Rohde Christiansen.

Source/WebCore:

Similar to Skia's and Qt's ImageBuffer implementation we need to make sure that buffers
for images are copied when the destination canvas is identical to the
image buffer's context. This happens mostly in JS calls to canvas' drawImage method.
For now fixing the drawImage case, drawPattern case is handled in bug 93854.

No new tests, covered by canvas/philip/tests/2d.drawImage.self.2.html

* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::draw): Making sure buffer is copied when source and destination contexts are identical.

LayoutTests:

Unskipping canvas/philip/tests/2d.drawImage.self.2.html for GTK and EFL now that it's working.

* platform/efl/Skipped:
* platform/gtk/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125432 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Assertion in RenderObject::offsetFromAncestorContainer
https://bugs.webkit.org/show_bug.cgi?id=93845

Reviewed by Kenneth Rohde Christiansen.

Do not attempt to clip using layers that are not containers of the renderer.

* page/GestureTapHighlighter.cpp:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125433 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Rounding error somewhere when translating CompositingLayer 's for in-region scrolling
https://bugs.webkit.org/show_bug.cgi?id=93848
PR #190986

Reviewed by Yong Li.
Patch by Antonio Gomes <agomes@rim.com>

Patch adds a WebKit thread setScrollPosition-like API to InRegionScroller.
It fixes a mismatch we had of setting a layer's scroll positing directly via
::setScrollPosition on the UI thread, but dispatching a coalesceable
scrollBy(delta) message to WebKit thread.

* Api/InRegionScroller.cpp:
(BlackBerry::WebKit::InRegionScroller::setScrollPositionCompositingThread):
Changed the API name to match other thread specific methods naming.
(WebKit):
(BlackBerry::WebKit::InRegionScroller::setScrollPositionWebKitThread):
Added a setScrollPosition-like method to InRegionScroller public API. Used
together with its UI-thread counterpart, it can fix some rounding
errors we have due to mixing ::setScrollPosition and ::scrollBy methods.
(BlackBerry::WebKit::InRegionScrollerPrivate::setScrollPositionCompositingThread):
Method renamed. See reasons above.
(BlackBerry::WebKit::InRegionScrollerPrivate::setScrollPositionWebKitThread):
Calls fowards the call to ::setLayerScrollPosition (below).
(BlackBerry::WebKit::InRegionScrollerPrivate::setLayerScrollPosition):
Sets the scroll position of a given RenderLayer.
* Api/InRegionScroller.h:
(InRegionScroller):
* Api/InRegionScroller_p.h:
(WebCore):
(InRegionScrollerPrivate):
* WebKitSupport/InRegionScrollableArea.cpp:
(BlackBerry::WebKit::InRegionScrollableArea::InRegionScrollableArea):
Cache the RenderLayer object associated to a given scrollable area
instead of its LayerCompositingThread. This way we can use it for
scrolling from both Compositing/UI and WebKit threads.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125434 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Hardware accelerated scrolling of <select> content
https://bugs.webkit.org/show_bug.cgi?id=93856

Reviewed by Rob Buis.
Patch by Antonio Gomes <agomes@rim.com>

Internally reviewed by Matthew Staikos.

* Resources/blackberry/selectControlBlackBerry.css: add -webkit-overflow-scrolling: touch (EOM).
(.select-area):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125435 268f45cc-cd09-0410-ab3c-d52691b4dbfc
FrameLoader::receivedMainResourceError doesn't handle GET cancellations well.
https://bugs.webkit.org/show_bug.cgi?id=93850

Patch by Mike West <mkwst@chromium.org> on 2012-08-13
Reviewed by Adam Barth.

'FrameLoader::cancel' should reset the loader's state, and it mostly
does. In the case of a GET form submission, however, the submitted form
URL that's stored doesn't match the URL that's requested (query string).
This leads to the loader getting a bit confused about what's going on,
and not clearing the stored form submission URL.

This patch moves to storing the form submission's actual request URL
as opposed to the form action URL.

None of the current tests should break, and when issue 93777 lands, it
won't be broken either.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::submitForm):
    Switched to using 'FormSubmission::requestURL', as that matches the
    URL that's actually requested during a form submission via GET.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125436 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r125430.
http://trac.webkit.org/changeset/125430
https://bugs.webkit.org/show_bug.cgi?id=93881

Caused css2.1/t1604-c541-word-sp-00-b-a.html to regress on Mac
builds (Requested by mwenge on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-08-13

Source/WebCore:

* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advance):
* platform/graphics/harfbuzz/HarfBuzzShaperBase.cpp:
(WebCore::HarfBuzzShaperBase::isWordEnd):
* platform/graphics/harfbuzz/HarfBuzzShaperBase.h:
(HarfBuzzShaperBase):
(WebCore::HarfBuzzShaperBase::isCodepointSpace):
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextLineBreak):
* rendering/RenderText.cpp:
(WebCore::RenderText::widthFromCache):

LayoutTests:

* css2.1/20110323/c541-word-sp-001-expected.html: Removed.
* css2.1/20110323/c541-word-sp-001.htm: Removed.
* css2.1/20110323/word-spacing-characters-002-expected.html: Removed.
* css2.1/20110323/word-spacing-characters-002.htm: Removed.
* css2.1/20110323/word-spacing-characters-003-expected.html: Removed.
* css2.1/20110323/word-spacing-characters-003.htm: Removed.
* css2.1/20110323/word-spacing-remove-space-001-expected.html: Removed.
* css2.1/20110323/word-spacing-remove-space-001.htm: Removed.
* css2.1/20110323/word-spacing-remove-space-002-expected.html: Removed.
* css2.1/20110323/word-spacing-remove-space-002.htm: Removed.
* css2.1/20110323/word-spacing-remove-space-003-expected.html: Removed.
* css2.1/20110323/word-spacing-remove-space-003.htm: Removed.
* css2.1/20110323/word-spacing-remove-space-004-expected.html: Removed.
* css2.1/20110323/word-spacing-remove-space-004.htm: Removed.
* css2.1/20110323/word-spacing-remove-space-005-expected.html: Removed.
* css2.1/20110323/word-spacing-remove-space-005.htm: Removed.
* css2.1/20110323/word-spacing-remove-space-006-expected.html: Removed.
* css2.1/20110323/word-spacing-remove-space-006.htm: Removed.
* css2.1/t1604-c541-word-sp-01-b-a.html: Added.
* fast/css/word-spacing-characters-complex-text-expected.html: Removed.
* fast/css/word-spacing-characters-complex-text.html: Removed.
* fast/css/word-spacing-characters-expected.html: Removed.
* fast/css/word-spacing-characters.html: Removed.
* fast/css/word-spacing-linebreak-expected.html: Removed.
* fast/css/word-spacing-linebreak.html: Removed.
* platform/chromium-linux/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Added.
* platform/chromium-linux/fast/css/word-space-extra-expected.png:
* platform/chromium-mac-snowleopard/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Added.
* platform/chromium-mac/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Added.
* platform/chromium-win/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Added.
* platform/chromium-win/css2.1/t1604-c541-word-sp-01-b-a-expected.txt: Added.
* platform/chromium-win/fast/css/word-space-extra-expected.txt:
* platform/chromium/TestExpectations:
* platform/efl/TestExpectations:
* platform/efl/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Added.
* platform/efl/css2.1/t1604-c541-word-sp-01-b-a-expected.txt: Added.
* platform/gtk/TestExpectations:
* platform/gtk/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Added.
* platform/gtk/css2.1/t1604-c541-word-sp-01-b-a-expected.txt: Added.
* platform/mac/TestExpectations:
* platform/mac/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Added.
* platform/mac/css2.1/t1604-c541-word-sp-01-b-a-expected.txt: Added.
* platform/qt/TestExpectations:
* platform/qt/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Added.
* platform/qt/css2.1/t1604-c541-word-sp-01-b-a-expected.txt: Added.
* platform/win/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125437 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: remove commitEditing from the text editor delegate.
https://bugs.webkit.org/show_bug.cgi?id=93858

Reviewed by Vsevolod Vlasov.

This should be up to the source frame.

* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype._registerShortcuts):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame):
(WebInspector.SourceFrame.prototype.scrollChanged):
(WebInspector.SourceFrame.prototype._handleKeyDown):
(WebInspector.SourceFrame.prototype._commitEditing):
* inspector/front-end/TextEditor.js:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125438 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Clean up exception handling
https://bugs.webkit.org/show_bug.cgi?id=93880

Reviewed by Kenneth Rohde Christiansen.

The JSC C API uses a JSValueRef* exception parameter to indicate to the
caller that an exception was thrown. Naturally the caller must store
that ValueRef on the stack in order to get seen and marked by the
garbage collector, otherwise the callee would have to use
JSValueProtect on it.

This patch fixes one such case where in fact the exception pointer was passed as zero to the
callee and thus ignored. The patch also removes an unused exception parameter.

* bridge/qt/qt_class.cpp:
(JSC::Bindings::QtClass::fallbackObject):
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
* bridge/qt/qt_runtime.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125439 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Media(Stream|Element)AudioSourceNode should be guarded by the WEB_AUDIO condition as well
https://bugs.webkit.org/show_bug.cgi?id=93864

Reviewed by Eric Carlson.

Add the WEB_AUDIO to the Conditional attribute in MediaElementAudioSourceNode
IDL file and the ENABLE(WEB_AUDIO) compilation guard to the header files for both
MediaStreamAudioSourceNode and MediaElementAudioSourceNode.

No new tests - no new functionality.

* Modules/webaudio/MediaElementAudioSourceNode.h:
* Modules/webaudio/MediaStreamAudioSourceNode.h:
* Modules/webaudio/MediaStreamAudioSourceNode.idl:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125440 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Update API for spell checking suggestions again.
https://bugs.webkit.org/show_bug.cgi?id=93877

Reviewed by Antonio Gomes.

PR 163283.

Update the spell checking options request API
to include the caret positions.

Reviewed internally by Nima Ghanavatian.

* Api/WebPageClient.h:
* WebKitSupport/InputHandler.cpp:
(BlackBerry::WebKit::InputHandler::shouldRequestSpellCheckingOptionsForPoint):
(WebKit):
(BlackBerry::WebKit::InputHandler::requestSpellingCheckingOptions):
* WebKitSupport/InputHandler.h:
(Platform):
(InputHandler):
* WebKitSupport/TouchEventHandler.cpp:
(BlackBerry::WebKit::TouchEventHandler::handleTouchPoint):
* WebKitSupport/TouchEventHandler.h:
(TouchEventHandler):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125441 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Simplify storage and reduce size of QtConnectionObject
https://bugs.webkit.org/show_bug.cgi?id=93868

Patch by Simon Hausmann <simon.hausmann@nokia.com> on 2012-08-13
Reviewed by Kenneth Rohde Christiansen.

The connection object is a child of the sender QObject, so we can use parent()
whenever we need the sender instead of keeping an extra QObject pointer. Also
QtConnectionObject kept a RefPtr to the Instance, but actually only needed the
root object, so we can store a pointer to that instead.

* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtConnectionObject::QtConnectionObject):
(JSC::Bindings::QtConnectionObject::~QtConnectionObject):
(JSC::Bindings::QtConnectionObject::execute):
(JSC::Bindings::QtConnectionObject::match):
* bridge/qt/qt_runtime.h:
(QtConnectionObject):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125442 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CMake] Remove glib-related Find modules and write single new one instead.
https://bugs.webkit.org/show_bug.cgi?id=93786

Reviewed by Rob Buis.

.:

As part of the ongoing effort to write proper Find modules that use
absolute include and library paths instead of the short ones from
pkg-config, replace Find{GIO,Glib,Gthread}.cmake with a single
FindGLIB.cmake that optionally detects components such as GIO and
GObject.

Library paths are now defined as "/full/path/to/libfoo.so" instead of
simply "foo", so that the linker receives a full path and we can then
avoid accidentally picking up a libfoo.so installed into /usr/lib
instead of a local one built with jhbuild.

* Source/cmake/FindGIO.cmake: Removed.
* Source/cmake/FindGLIB.cmake: Added.
* Source/cmake/FindGlib.cmake: Removed.
* Source/cmake/FindGthread.cmake: Removed.
* Source/cmake/OptionsEfl.cmake: Look for GLIB with the GIO component.

Source/JavaScriptCore:

* shell/PlatformEfl.cmake: Use GLIB_* instead of Glib_*.

Source/WebCore:

No new tests, build system plumbing.

* PlatformEfl.cmake: Use GLIB_* instead of Glib_*, and link
directly against GIO, as code in the soup network backend uses
that.

Source/WebKit:

* PlatformEfl.cmake: Use GLIB_* instead of Glib_*.

Source/WebKit2:

* PlatformEfl.cmake: Use GLIB_* instead of Glib_*.

Source/WTF:

* wtf/PlatformEfl.cmake: Use GLIB_* instead of Glib_*, and link directly to GIO, as wtf/gobject uses functions from it.

Tools:

* DumpRenderTree/efl/CMakeLists.txt: Use GLIB_* instead of Glib_*.
* EWebLauncher/CMakeLists.txt: Ditto.
* MiniBrowser/efl/CMakeLists.txt: Ditto.
* WebKitTestRunner/PlatformEfl.cmake: Ditto.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125443 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Replace use of internal Weak smart pointer with JSWeakObjectMap
https://bugs.webkit.org/show_bug.cgi?id=93872

Reviewed by Kenneth Rohde Christiansen.

Source/JavaScriptCore:

* Target.pri: Add missing JSWeakObjectMap file to build.

Source/WebCore:

The intention of this patch series is to replace use of internal JSC
API with use of the stable and public C API.

The JSC::Weak template is internal API and the only part of the C API
that exposes similar functionality is the JSWeakObjectMap. It is
special in the sense that its life-time is tied to the life-time of the
JS global object, which in turn is subject to garbage collection. In
order to maximize re-use of the same map across different JSContextRef
instances, we use the associated global context ref as owner of the
weak maps. The key in the weak map is the identity (pointer) of the
runtime method object itself.  The iteration through the maps is
tedious, but should usually not go beyond just a few.

* bridge/qt/qt_runtime.cpp:
(Bindings):
(JSC::Bindings::methodMapCleaner):
(JSC::Bindings::QtRuntimeMethod::~QtRuntimeMethod):
(JSC::Bindings::QtRuntimeMethod::jsObjectRef):
* bridge/qt/qt_runtime.h:
(QtRuntimeMethod):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125444 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Clear HUD canvas contents before drawing into it.
https://bugs.webkit.org/show_bug.cgi?id=93759

Reviewed by Adrienne Walker.

Not clearing the bitmaps before drawing into it results into
random noise. This patch also caches the SkCanvas used by the HUD
to avoid reallocating it every frame.

* platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
(WebCore::CCHeadsUpDisplayLayerImpl::willDraw):
* platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125445 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed skip: Skip faling test after r125428.
The fix will be tracked in https://bugs.webkit.org/show_bug.cgi?id=93897

* platform/qt/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125447 268f45cc-cd09-0410-ab3c-d52691b4dbfc
CSS quotes output quotes when depth is negative
https://bugs.webkit.org/show_bug.cgi?id=92690

Patch by Elliott Sprehn <esprehn@chromium.org> on 2012-08-13
Reviewed by Eric Seidel.

Source/WebCore:

Previously if the quote depth would go negative we would output the close quote from the
first pair of quotes again instead of outputting no quotes as required by the spec.

See: http://www.w3.org/TR/CSS21/generate.html#quotes-insert

Test: fast/css-generated-content/nested-quote-more-than-pairs.html

* rendering/RenderQuote.cpp:
(WebCore::RenderQuote::originalText): Allow the value passed to getOpenQuote to go negative by removing std::max.
* rendering/style/QuotesData.cpp:
(WebCore::QuotesData::getOpenQuote): Bounds check for negative values for safety.
(WebCore::QuotesData::getCloseQuote): Allow index to be >= -1 and return an empty string for -1.

LayoutTests:

Make the expected output of close-quote-negative-depth.html follow the spec and
add another test that ensures the last quote pair is repeated when the depth is
greater than the number of quote pairs.

* fast/css-generated-content/close-quote-negative-depth-expected.html:
* fast/css-generated-content/close-quote-negative-depth.html:
* fast/css-generated-content/nested-quote-more-than-pairs-expected.html: Added.
* fast/css-generated-content/nested-quote-more-than-pairs.html: Added.

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