[GTK] GObject introspection links to installed libs when using jhbuild
https://bugs.webkit.org/show_bug.cgi?id=132220

Reviewed by Martin Robinson.

The problem is that gobject-introspection is linking the temporary
binaries adding the library paths present LDFLAGS environment
variable first, taking precedence over the libraries in the build
dir. Since the libraries paths of the dependencies are already
correctly deduced by gobject-introspection using ldd, we can
just unset the LDFLAGS variable before calling g-ir-scanner to
make sure the libraries in the build dir take predence.

* PlatformGTK.cmake:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167873 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] TextTrackCue API changed in r163649
https://bugs.webkit.org/show_bug.cgi?id=132226

Reviewed by Martin Robinson.

TextTrackCue is now a base class and part of its API was moved to
the derived class VTTCue. Update the GObject DOM bindings to keep
backwards compatibility.

* PlatformGTK.cmake: Generate bindings for DataCue and VTTCue.
* bindings/gobject/WebKitDOMDeprecated.cpp:
(webkit_dom_text_track_cue_get_cue_as_html): Mark as deprecated in
favor of VTTCue API.
(webkit_dom_text_track_cue_get_vertical): Ditto.
(webkit_dom_text_track_cue_set_vertical): Ditto.
(webkit_dom_text_track_cue_get_snap_to_lines): Ditto.
(webkit_dom_text_track_cue_set_snap_to_lines): Ditto.
(webkit_dom_text_track_cue_get_line): Ditto.
(webkit_dom_text_track_cue_set_line): Ditto.
(webkit_dom_text_track_cue_get_position): Ditto.
(webkit_dom_text_track_cue_set_position): Ditto.
(webkit_dom_text_track_cue_get_size): Ditto.
(webkit_dom_text_track_cue_set_size): Ditto.
(webkit_dom_text_track_cue_get_align): Ditto.
(webkit_dom_text_track_cue_set_align): Ditto.
(webkit_dom_text_track_cue_get_text): Ditto.
(webkit_dom_text_track_cue_set_text): Ditto.
* bindings/gobject/WebKitDOMDeprecated.h:
* bindings/gobject/WebKitDOMDeprecated.symbols: Add new deprecated symbols.
* bindings/gobject/WebKitDOMPrivate.cpp:
(WebKit::wrap): Add generic wrap for TextTrackCue now that it's a
base class to generate DataCue or VTTCue objects.
* bindings/gobject/WebKitDOMPrivate.h:
* bindings/gobject/webkitdom.symbols: Add DataCue symbols.
* bindings/scripts/CodeGeneratorGObject.pm:
(IsPolymorphic): Add TextTrackCue to the list of polymorphic classes.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167874 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] TextTrack::addCue can raise an exception since r163974
https://bugs.webkit.org/show_bug.cgi?id=132227

Reviewed by Martin Robinson.

webkit_dom_text_track_add_cue() now receives a GError paramater
which is an API break. Add
webkit_dom_text_track_add_cue_with_error and keep
webkit_dom_text_track_add_cue as deprecated to keep API
compatibility.

* bindings/gobject/WebKitDOMDeprecated.cpp:
(webkit_dom_text_track_add_cue):
* bindings/gobject/WebKitDOMDeprecated.h:
* bindings/gobject/WebKitDOMDeprecated.symbols:
* bindings/gobject/webkitdom.symbols:
* bindings/scripts/CodeGeneratorGObject.pm:
(GetEffectiveFunctionName):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167875 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] TextTrack kind and mode attributes are enums since r166180
https://bugs.webkit.org/show_bug.cgi?id=132228

Reviewed by Martin Robinson.

We don't support enum values yet in GObject DOM bindings, but they
are internally strings anyway, so we can keep the old
implementations using strings as custom functions until we
properly support enums.

* bindings/gobject/WebKitDOMCustom.cpp:
(webkit_dom_text_track_get_kind):
(webkit_dom_text_track_get_mode):
(webkit_dom_text_track_set_mode):
* bindings/gobject/WebKitDOMCustom.h:
* bindings/gobject/WebKitDOMCustom.symbols:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167876 268f45cc-cd09-0410-ab3c-d52691b4dbfc
std::bitset<>::test() does unnecessary bounds checks on CSSPropertyID bitsets
https://bugs.webkit.org/show_bug.cgi?id=131685

Reviewed by Darin Adler.

Use std::bitset<>::operator[]() instead of std::bitset<>::test() to avoid
bounds checks which are not necessary as long as a CSSPropertyID value is used.

* css/CSSParser.cpp:
(WebCore::filterProperties):
* css/StyleProperties.cpp:
(WebCore::StyleProperties::asText):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::CascadedProperties::hasProperty):
(WebCore::StyleResolver::CascadedProperties::set):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167877 268f45cc-cd09-0410-ab3c-d52691b4dbfc
std::bitset<>::test() does unnecessary bounds checks on CSSPropertyID bitsets
https://bugs.webkit.org/show_bug.cgi?id=131685

Patch by Zan Dobersek <zdobersek@igalia.com> on 2014-04-28
Reviewed by Darin Adler.

Use std::bitset<>::operator[]() instead of std::bitset<>::test() to avoid
bounds checks which are not necessary as long as a CSSPropertyID value is used.

* css/CSSParser.cpp:
(WebCore::filterProperties):
* css/StyleProperties.cpp:
(WebCore::StyleProperties::asText):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::CascadedProperties::hasProperty):
(WebCore::StyleResolver::CascadedProperties::set):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167878 268f45cc-cd09-0410-ab3c-d52691b4dbfc
OrderIterator refactoring to avoid extra loops
https://bugs.webkit.org/show_bug.cgi?id=119061

Reviewed by Darin Adler.

This patch removes order values Vector and use a Vector of pairs instead. The pairs are formed by a child
(RenderBox) and the index of this child. In addition, OrderIterator code is simplified.

It provides a helper class OrderIteratorPopulator, used for manipulating the Vector directly. Which allows to
consolidate the code into a single implementation across flexbox and grid. OrderIteratorPopulator part is based
on a patch from Blink r153971 by <jchaffraix@chromium.org>.

Current implementation is O(number of children * number of order values). Now it will just do a sort operation
and then a regular loop. So if you have different order values in a flexbox or grid the performance will
improve.

Comparing results of perf-tests:
* Layout/auto-grid-lots-of-data: ~0.5% worse.
* Layout/fixed-grid-lots-of-data: ~0.5% worse.
* Layout/fixed-grid-lots-of-data (setting 100 different order values): ~50% better.
* Layout/flexbox-lots-of-data: ~5% better.

No new tests, already covered by current tests.

* rendering/OrderIterator.cpp:
(WebCore::OrderIterator::currentChild): Return current child according to m_childrenIndex.
(WebCore::OrderIterator::first): Initialize m_childrenIndex and return current child.
(WebCore::OrderIterator::next): Increase m_childrenIndex and return current child.
(WebCore::compareByOrderValueAndIndex): Sorts the Vector by order value and index.
(WebCore::OrderIteratorPopulator::~OrderIteratorPopulator): Calls compareByOrderValueAndIndex() if there is any
child with non default order value.
(WebCore::OrderIteratorPopulator::collectChild): Adds the child and index to the Vector. Update
m_allChildrenHaveDefaultOrderValue accordingly.
(WebCore::OrderIterator::OrderIterator): Deleted.
(WebCore::OrderIterator::setOrderValues): Deleted.
(WebCore::OrderIterator::reset): Deleted.
* rendering/OrderIterator.h:
(WebCore::OrderIteratorPopulator::OrderIteratorPopulator): New helper class to manipulate the Vector.
(WebCore::OrderIterator::currentChild): Deleted.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::RenderFlexibleBox): Remove OrderIterator intialization.
(WebCore::RenderFlexibleBox::layoutBlock): Remove unneeded code related to old OrderValues vector.
(WebCore::RenderFlexibleBox::prepareOrderIteratorAndMargins): Populate OrderIterator using collectChild().
(WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): Deleted.
* rendering/RenderFlexibleBox.h: Rename computeMainAxisPreferredSizes() to prepareOrderIteratorAndMargins().
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::RenderGrid): Remove OrderIterator initialization.
(WebCore::RenderGrid::populateExplicitGridAndOrderIterator): Populate OrderIterator using collectChild().


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167879 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. Update GObject DOM bindings symbols file.

* bindings/gobject/webkitdom.symbols: Add missing symbols.

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