[BlackBerry] Add custom BackForwardList client implementation
https://bugs.webkit.org/show_bug.cgi?id=113024

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2013-03-22
Reviewed by Rob Buis.

PR 310030
Internally reviewed by Joe Mason.

Source/WebKit:

* PlatformBlackBerry.cmake: Add new files to compilation.

Source/WebKit/blackberry:

Adds a new class BackForwardListBlackBerry that implements
BackForwardList client and wraps the BackForwardListImpl including
the BlackBerry specific changes to notify the API layer when the
BackForwardList changes.

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::init): Create a
BackForwardListBlackBerry.
(BlackBerry::WebKit::WebPage::getBackForwardList): Use
BackForwardListBlackBerry instead of BackForwardListImpl.
(BlackBerry::WebKit::WebPage::clearBackForwardList): Ditto.
* WebCoreSupport/BackForwardListBlackBerry.cpp: Added.
(WebCore):
(WebCore::BackForwardListBlackBerry::BackForwardListBlackBerry):
(WebCore::BackForwardListBlackBerry::~BackForwardListBlackBerry):
(WebCore::BackForwardListBlackBerry::current):
(WebCore::BackForwardListBlackBerry::notifyBackForwardListChanged):
(WebCore::BackForwardListBlackBerry::addItem):
(WebCore::BackForwardListBlackBerry::goToItem):
(WebCore::BackForwardListBlackBerry::itemAtIndex):
(WebCore::BackForwardListBlackBerry::backListCount):
(WebCore::BackForwardListBlackBerry::forwardListCount):
(WebCore::BackForwardListBlackBerry::isActive):
(WebCore::BackForwardListBlackBerry::close):
(WebCore::BackForwardListBlackBerry::clear):
(WebCore::BackForwardListBlackBerry::entries):
(WebCore::BackForwardListBlackBerry::currentItem):
* WebCoreSupport/BackForwardListBlackBerry.h: Added.
(WebKit):
(WebCore):
(BackForwardListBlackBerry):
(WebCore::BackForwardListBlackBerry::create):
* WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
* WebCoreSupport/FrameLoaderClientBlackBerry.h:
(FrameLoaderClientBlackBerry):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146597 268f45cc-cd09-0410-ab3c-d52691b4dbfc
BUILD FIX (r146208): Export shouldPrintExceptions methods for iOS

Fixes the following build failure:

    Undefined symbols for architecture i386:
      "__ZN7WebCore11PageConsole24setShouldPrintExceptionsEb", referenced from:
            +[WebCoreStatistics setShouldPrintExceptions:] in WebCoreStatistics.o
      "__ZN7WebCore11PageConsole21shouldPrintExceptionsEv", referenced from:
            +[WebCoreStatistics shouldPrintExceptions] in WebCoreStatistics.o
    ld: symbol(s) not found for architecture i386
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

* WebCore.exp.in: Move symbols so they're exported for iOS as
well.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146598 268f45cc-cd09-0410-ab3c-d52691b4dbfc
BUILD FIX (r146558): Call [super dealloc] from -[TinyDOMNode dealloc]
<http://webkit.org/b/112608>

Fixes the following build failure:

    Source/JavaScriptCore/API/tests/testapi.mm:205:1: error: method possibly missing a [super dealloc] call [-Werror,-Wobjc-missing-super-calls]
    }
    ^
    1 error generated.

* API/tests/testapi.mm:
(-[TinyDOMNode dealloc]): Call [super dealloc].

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146599 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Floor cell widths in AutoTableLayout::recalcColumn
https://bugs.webkit.org/show_bug.cgi?id=112922

Reviewed by Levi Weintraub.

Source/WebCore:

Table cells widths are floored to ensure even distribution of available
space across columns. The code path that computes the width of the
_table_ failed to take this into account and thus can over report the
total width of the table.

Test: fast/sub-pixel/table-with-subpixel-cell-size.html

* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn): Floor width to match column sizing logic.

LayoutTests:

Add test for table with subpixel cells and update existing baselines as needed.

* fast/sub-pixel/table-with-subpixel-cell-size-expected.html: Added.
* fast/sub-pixel/table-with-subpixel-cell-size.html: Added.
* platform/chromium-linux/fast/text/international/bidi-layout-across-linebreak-expected.png:
* platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug89315-expected.png:
* platform/chromium-win/fast/text/international/bidi-layout-across-linebreak-expected.txt:
* platform/chromium-win/fast/transforms/bounding-rect-zoom-expected.txt:
* platform/chromium-win/tables/mozilla_expected_failures/bugs/bug89315-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146600 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore: Clean up the speech recognintion API
https://bugs.webkit.org/show_bug.cgi?id=112916

Reviewed by Adam Barth.

This patch cleans away deprecated parts, fixes so that stop() can be called more than once and adds
the missing emma attribute on SpeechRecognitionEvent (which is always null).

Patch covered by existing tests.

* Modules/speech/SpeechRecognition.cpp:
(WebCore::SpeechRecognition::stopFunction):
(WebCore::SpeechRecognition::abort):
(WebCore::SpeechRecognition::didEnd):
(WebCore::SpeechRecognition::SpeechRecognition):
* Modules/speech/SpeechRecognition.h:
(SpeechRecognition):
* Modules/speech/SpeechRecognitionEvent.cpp:
(WebCore::SpeechRecognitionEvent::createResult):
(WebCore::SpeechRecognitionEvent::createNoMatch):
(WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
* Modules/speech/SpeechRecognitionEvent.h:
(WebCore):
(SpeechRecognitionEventInit):
(SpeechRecognitionEvent):
(WebCore::SpeechRecognitionEvent::emma):
* Modules/speech/SpeechRecognitionEvent.idl:

Source/WebKit/chromium: Clean up the speach recognintion API
https://bugs.webkit.org/show_bug.cgi?id=112916

Reviewed by Adam Barth.

* public/WebSpeechRecognizerClient.h:
* src/SpeechRecognitionClientProxy.cpp:
* src/SpeechRecognitionClientProxy.h:
(SpeechRecognitionClientProxy):

LayoutTests: Clean up the speech recognintion API
https://bugs.webkit.org/show_bug.cgi?id=112916

Reviewed by Adam Barth.

* fast/events/constructors/speech-recognition-event-constructor-expected.txt:
* fast/events/constructors/speech-recognition-event-constructor.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146601 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Unreviewed gardening. Missed one in r146589.

* platform/qt/compositing/overflow/composited-scrolling-paint-phases-expected.txt: Rebaselining after r146531.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146602 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Revert "BUILD FIX (r146558): Call [super dealloc] from -[TinyDOMNode dealloc]"

This fixes a build failure introduced by this change:

    Source/JavaScriptCore/API/tests/testapi.mm:206:6: error: ARC forbids explicit message send of 'dealloc'
        [super dealloc];
         ^     ~~~~~~~
    1 error generated.

Not sure why this didn't fail locally on my Mac Pro.

* API/tests/testapi.mm:
(-[TinyDOMNode dealloc]): Remove call to [super dealloc].

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146603 268f45cc-cd09-0410-ab3c-d52691b4dbfc
BUILD FIX (r146558): Build testapi.mm with ARC enabled for armv7s
<http://webkit.org/b/112608>

Fixes the following build failure:

    Source/JavaScriptCore/API/tests/testapi.mm:205:1: error: method possibly missing a [super dealloc] call [-Werror,-Wobjc-missing-super-calls]
    }
    ^
    1 error generated.

* Configurations/ToolExecutable.xcconfig: Enable ARC for armv7s
architecture.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146604 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix an assert when opening the Web Inspector window for the first time.

rdar://problem/13471765
https://webkit.org/b/113053

Reviewed by Eric Carlson.

* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::createInspectorWindow): Assign m_inspectorWindow
earlier so it is ready for when center is called and windowDidMove: gets called.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146605 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed chromium and apple mac rebaselines for r146600.

* platform/chromium-mac-lion/fast/text/international/bidi-layout-across-linebreak-expected.png:
* platform/chromium-mac-lion/fast/text/international/bidi-layout-across-linebreak-expected.txt: Added.
* platform/chromium-mac-lion/fast/transforms/bounding-rect-zoom-expected.txt: Added.
* platform/chromium-mac-lion/tables/mozilla_expected_failures/bugs/bug89315-expected.png:
* platform/chromium-mac-lion/tables/mozilla_expected_failures/bugs/bug89315-expected.txt: Added.
* platform/chromium-mac-snowleopard/fast/text/international/bidi-layout-across-linebreak-expected.png:
* platform/chromium-mac-snowleopard/tables/mozilla_expected_failures/bugs/bug89315-expected.png:
* platform/chromium-win/fast/text/international/bidi-layout-across-linebreak-expected.txt: Removed.
* platform/chromium-win/fast/transforms/bounding-rect-zoom-expected.txt: Removed.
* platform/chromium/fast/text/international/bidi-layout-across-linebreak-expected.txt: Added.
* platform/chromium/fast/transforms/bounding-rect-zoom-expected.txt: Added.
* platform/mac/fast/text/international/bidi-layout-across-linebreak-expected.txt:
* platform/mac/fast/transforms/bounding-rect-zoom-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146606 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL][WebGL] Optimize AlphaOp for HTMLVideoElement input.
https://bugs.webkit.org/show_bug.cgi?id=113049

Patch by Kondapally Kalyan <kalyan.kondapally@intel.com> on 2013-03-22
Reviewed by Kenneth Rohde Christiansen.

Covered by existing tests.

Changeset 137397 implemented optimisation to avoid any
unnecessary Unmultiply or Premultiply operation in unpack/pack
provided the Image source is from HTMLVideoElement. This patch
enables the same for EFL port.

* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146607 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK][AC] Add removing animations procedure with clutter ac backend
https://bugs.webkit.org/show_bug.cgi?id=110607

Patch by ChangSeok Oh <changseok.oh@collabora.com> on 2013-03-22
Reviewed by Gustavo Noronha Silva.

This changes is based on mac port implementation. The only different thing is
that updateAnimations is called explicitly in destructor of GraphicsLayerClutter
to remove uncommitted animations. Because even though we call notifyFlushRequired
to remove existing animations in removeAnimation(), removeClutterAnimationFromLayer
has been never reached since the root layer is destroyed before. It means
that we haven't lost a change to remove actual animations from clutterActor.

Covered by existing animation tests.

* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::GraphicsLayerClutter::~GraphicsLayerClutter):
(WebCore::GraphicsLayerClutter::removeAnimation):
(WebCore):
(WebCore::GraphicsLayerClutter::removeClutterAnimationFromLayer):
* platform/graphics/clutter/GraphicsLayerClutter.h:
(WebCore::GraphicsLayerClutter::animationIsRunning):
(GraphicsLayerClutter):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146608 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK][AC] Opacity animation doesn't work with clutter backend
https://bugs.webkit.org/show_bug.cgi?id=110347

Patch by ChangSeok Oh <changseok.oh@collabora.com> on 2013-03-22
Reviewed by Gustavo Noronha Silva.

The static casting in ternary operator doesn't change actual inputted argument type.
So I replaced it with if-else statement.

Covered by existing animation tests.

* platform/graphics/clutter/PlatformClutterAnimation.cpp:
(WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
(WebCore::PlatformClutterAnimation::addClutterKeyframeTransitionForProperty):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146609 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed chromium rebaselines for r146600.

* platform/chromium-mac-lion/fast/text/international/bidi-layout-across-linebreak-expected.txt: Removed.
* platform/chromium-mac-lion/fast/transforms/bounding-rect-zoom-expected.txt: Removed.
* platform/chromium-mac-snowleopard/tables/mozilla_expected_failures/bugs/bug89315-expected.txt: Added.
* platform/chromium-mac/fast/text/international/bidi-layout-across-linebreak-expected.png:
* platform/chromium-mac/fast/text/international/bidi-layout-across-linebreak-expected.txt:
* platform/chromium-mac/fast/transforms/bounding-rect-zoom-expected.txt:
* platform/chromium-mac/tables/mozilla_expected_failures/bugs/bug89315-expected.png:
* platform/chromium-mac/tables/mozilla_expected_failures/bugs/bug89315-expected.txt:
* platform/chromium-win/fast/text/international/bidi-layout-across-linebreak-expected.png:
* platform/chromium-win/tables/mozilla_expected_failures/bugs/bug89315-expected.png:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146610 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Telugu [te] language translation submission for WebKitGTK+ HEAD
https://bugs.webkit.org/show_bug.cgi?id=103052

Patch by Krishnababu Krothapalli <kkrothap@redhat.com> on 2013-03-22
Reviewed by Gustavo Noronha Silva (kov).

* te.po: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146611 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Fix build with OPENCL 1.2
https://bugs.webkit.org/show_bug.cgi?id=113056

Reviewed by Kenneth Rohde Christiansen.

Switch qmake checks to the modern style which means we can enable OpenCL with
WEBKIT_CONFIG+=opencl.

Upgrade OpenCL 1.1 clCreateImage2D to OpenCL 1.2 clCreateImage calls.

* Target.pri:
* WebCore.pri:
* platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::createOpenCLImageResult):
* platform/graphics/gpu/opencl/FilterContextOpenCL.cpp:
(WebCore::FilterContextOpenCL::createOpenCLImage):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146613 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: [Regression] Editor scroll is not restored after inspector reload.
https://bugs.webkit.org/show_bug.cgi?id=113027

Reviewed by Pavel Feldman.

* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype.wasShown):
(WebInspector.SourceFrame.prototype._isEditorShowing):
(WebInspector.SourceFrame.prototype._innerHighlightLineIfNeeded):
(WebInspector.SourceFrame.prototype._innerRevealLineIfNeeded):
(WebInspector.SourceFrame.prototype._innerScrollToLineIfNeeded):
(WebInspector.SourceFrame.prototype._innerSetSelectionIfNeeded):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146614 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: Correctly implement scrollToLine, revealLine and setSelection on CodeMirror  editor.
https://bugs.webkit.org/show_bug.cgi?id=113028

Reviewed by Pavel Feldman.

Added focus event handler to CodeMirror editor view elememnt to support inspector's focus model.
Added selection and scroll listeners to correctly save editor scroll and selection in history.
Implemented revealLine, scrollToLine and setSelection.
Note: CodeMirror's coordsChar method does not work correctly in "local" mode, implemented as binary search
as a temporary workaround.

* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor):
(WebInspector.CodeMirrorTextEditor.prototype.defaultFocusedElement):
(WebInspector.CodeMirrorTextEditor.prototype._handleElementFocus):
(WebInspector.CodeMirrorTextEditor.prototype.revealLine):
(WebInspector.CodeMirrorTextEditor.prototype._coordsChar):
(WebInspector.CodeMirrorTextEditor.prototype._topScrolledLine):
(WebInspector.CodeMirrorTextEditor.prototype._bottomScrolledLine):
(WebInspector.CodeMirrorTextEditor.prototype._scroll):
(WebInspector.CodeMirrorTextEditor.prototype._selectionChange):
(WebInspector.CodeMirrorTextEditor.prototype.scrollToLine):
(WebInspector.CodeMirrorTextEditor.prototype.setSelection):
(WebInspector.CodeMirrorTextEditor.prototype.copyRange):
* inspector/front-end/TextEditor.js:
(WebInspector.TextEditor.prototype.copyRange):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146615 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebKit/chromium: Skia flag removal to enable bug fixes and performance improvements.

Unreviewed code enabling.

* skia_webkit.gyp:

LayoutTests: Enabling Skia features/modifications.

Unreviewed Chromium expectations, all of which will be removed later today.

* platform/chromium/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146616 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: Add "hidden" attribute to the recently added APIs in Inspector.json
https://bugs.webkit.org/show_bug.cgi?id=113061

Added "hidden": true to the APIs introduced since version 1.0.

Patch by Vladislav Kaznacheev <kaznacheev@chromium.org> on 2013-03-22
Reviewed by Pavel Feldman.

* inspector/Inspector.json:

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