Web Inspector: "Always enable" profiling does not work
https://bugs.webkit.org/show_bug.cgi?id=118487

Enable profiler when loading panel if profiler is enabled in inspector
settings.

Patch by Arnaud Renevier <a.renevier@sisa.samsung.com> on 2013-07-10
Reviewed by Timothy Hatcher.

* inspector/front-end/ProfilesPanel.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152542 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove ElementTimeControl and expose SVGAnimationElement
https://bugs.webkit.org/show_bug.cgi?id=118349

Reviewed by Rob Buis.

Source/WebCore:

Remove ElementTimeControl IDL interface and move its attributes
to the SVGAnimationElement IDL interface as per the latest SVG2
specification:
https://svgwg.org/svg2-draft/animate.html#InterfaceSVGAnimationElement

Also remove [NoInterfaceObject] IDL extended attribute from
SVGAnimationElement as it is not present in the specification.

This is one step towards removing IDL multiple inheritance in SVG and
complying with the latest SVG2 specification.

No new tests, covered by existing test cases.

* DerivedSources.make:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/CodeGeneratorObjC.pm:
* svg/ElementTimeControl.h: Removed.
* svg/ElementTimeControl.idl: Removed.
* svg/SVGAnimationElement.h:
* svg/SVGAnimationElement.idl:

LayoutTests:

Rebaseline several test cases now that SVGAnimationElement is exposed
on the global Window object.

* fast/js/global-constructors-attributes-expected.txt:
* platform/efl/fast/js/global-constructors-attributes-expected.txt:
* platform/gtk/fast/js/global-constructors-attributes-expected.txt:
* platform/mac-lion/fast/js/global-constructors-attributes-expected.txt:
* platform/qt/fast/js/global-constructors-attributes-expected.txt:
* svg/custom/global-constructors-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152543 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Mac] every enabled text track should be listed in the track menu
https://bugs.webkit.org/show_bug.cgi?id=118477

Reviewed by Jer Noble.

Source/WebCore:

Test: media/video-controls-captions-trackmenu-includes-enabled-track.html

* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Don't select the
    "Off" menu item if a track is enabled.

* page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu): Always include a track
    that is showing in the menu. Add more diagnostic logging.

LayoutTests:

* media/trackmenu-test.js: Add some new utility functions.

* media/video-controls-captions-trackmenu-includes-enabled-track-expected.txt: Added.
* media/video-controls-captions-trackmenu-includes-enabled-track.html: Added.
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/qt/TestExpectations:
* platform/win/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152547 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Deferring layer flushes can cause painting without layout being done
https://bugs.webkit.org/show_bug.cgi?id=118493

Reviewed by Simon Fraser.

r147797 added a mechanism for the TileController to inform RenderLayerCompositor
that it had performed an action (setNeedsDisplay, etc.) that would cause CoreAnimation
to call back into us to paint in this runloop, and that it shouldn't throttle the next
layer flush.

However, if tiles were created and left unparented (because the TileController was
out-of-window), when they are later parented, we failed to inform RenderLayerCompositor
that they were about to call back for painting, and so it would happily throttle the
next layer flush, and layout would be out of date, and garbage and corruption could result.

To resolve this, rework the logic surrounding parenting existing-but-unparented tiles
to ensure that they get added to the TileController's dirtyRect.

No new tests; the bug only reproduces under specific timing circumstances, and
manifests itself as an assertion failure or garbage on the screen, so it's quite
hard to make a workable test.

* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::revalidateTiles):
- Factor out the code to parent unparented tiles so that it is shared between the
    created-new-tile and reparenting-existing-tile cases.
- Keep track of whether we updated the frame of a pre-existing tile.
- If the tile is dirty and needed to be parented (because either it's new
    or hadn't been parented before), add it to the dirty rect list.
- If the tile changed size, add it to the dirty rect list.

(WebCore::TileController::ensureTilesForRect):
Ditto everything from revalidateTiles.

(WebCore::TileController::createTileLayer):
- Explicitly mark fresh tiles as needing display, so that we can depend on
    [WebTileLayer needsDisplay] in revalidateTiles to tell us that it's dirty.


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