[WTF] Add the move constructor, move assignment operator for HashTable
https://bugs.webkit.org/show_bug.cgi?id=130772

Reviewed by Darin Adler.

HashTable has both copy constructor and copy assignment operator, meaning that the move constructor
and move assignment operator are implicitly deleted. This patch defines both to avoid unnecessary
copies when moves can be performed.

* wtf/HashTable.h:
(WTF::KeyTraits>::HashTable):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170995 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Grid Layout] Update grid-auto-flow to the new syntax
https://bugs.webkit.org/show_bug.cgi?id=134057

Reviewed by Sergio Villar Senin.

Source/WebCore:
In last versions of the spec grid-auto-flow syntax has changed. New
syntax is:
[ row | column ] && dense? | stack && [ row | column ]?

Implemented parsing for new syntax and added/modified test cases in
current layout tests.

For the moment, the implementation keeps working in the same way, but
using "stack" value for grid-auto-flow property instead of "none". This
should be fixed in a follow-up patch once "stack" is properly
implemented.

Also "dense" needs to be reviewed. Right now auto-placement algorithm is
always "dense" and never "sparse".

No new tests, update current tests to add new cases.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue): Adapt to new syntax.
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue): Removed grid-auto-flow as it
is not a keyword anymore.
(WebCore::isKeywordPropertyID): Ditto.
(WebCore::CSSParser::parseValue): Add specific method for parsing
grid-auto-flow.
(WebCore::CSSParser::parseGridShorthand): Adapt parsing for
grid-auto-flow property inside the shorthand.
(WebCore::isValidGridAutoFlowId): Helper method to check if the CSSValue
id is a valid keyword for grid-auto-flow property.
(WebCore::CSSParser::parseGridAutoFlow): Implement new parsing for
grid-auto-flow.
* css/CSSParser.h: Method header for grid-auto-flow parsing.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::operator GridAutoFlow): Deleted.
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Deleted.
* css/CSSValueKeywords.in: Add new keywords required by grid-auto-flow:
"dense" and "stack".
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): Remove
default handler as grid-auto-flow is not a keyword now.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty): Implement particular handler
for new grid-auto-flow syntax.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::placeItemsOnGrid): Keep old "none" behavior as
"stack" behavior for the moment.
(WebCore::RenderGrid::autoPlacementMajorAxisDirection): Use the new
helper methods in RenderStyle.
(WebCore::RenderGrid::autoPlacementMinorAxisDirection): Ditto.
* rendering/style/GridResolvedPosition.cpp:
(WebCore::GridResolvedPosition::resolveGridPositionsFromStyle): Again
keep old "none" behavior for "stack".
* rendering/style/RenderStyle.h: Add new helper methods to know the
direction and algorithm of grid-auto-flow property.
* rendering/style/RenderStyleConstants.h: Redefine GridAutoFlow enum
using flags for algorithm and direction.
* rendering/style/StyleGridData.h: Change m_gridAutoFlow type to
unsigned.

LayoutTests:
Adapted current tests to the new syntax. Keeping old "none" behavior
using "stack".

Add new use cases to cover the new syntax to grid-auto-flow-get-set.html
and grid-shorthand-get-set.html.

* fast/css-grid-layout/grid-auto-flow-get-set-expected.txt:
* fast/css-grid-layout/grid-auto-flow-get-set.html:
* fast/css-grid-layout/grid-auto-flow-resolution.html:
* fast/css-grid-layout/grid-auto-flow-update-expected.txt:
* fast/css-grid-layout/grid-auto-flow-update.html:
* fast/css-grid-layout/grid-item-named-grid-area-resolution.html:
* fast/css-grid-layout/grid-item-z-index-change-repaint.html:
* fast/css-grid-layout/grid-item-z-index-stacking-context.html:
* fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
* fast/css-grid-layout/grid-shorthand-get-set.html:
* fast/css-grid-layout/named-grid-lines-with-named-grid-areas-dynamic-get-set.html:
* fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html:
* fast/css-grid-layout/resources/grid.css:
(.gridAutoFlowStack):
(.gridAutoFlowNone): Deleted.
* fast/css/getComputedStyle/computed-style-expected.txt:
* fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* ietestcenter/css3/grid/grid-column-001.htm:
* ietestcenter/css3/grid/grid-column-002.htm:
* ietestcenter/css3/grid/grid-column-003.htm:
* svg/css/getComputedStyle-basic-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170996 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Enable VIDEO_TRACK by default
https://bugs.webkit.org/show_bug.cgi?id=134801

Reviewed by Philippe Normand.

* Source/cmake/OptionsGTK.cmake:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170997 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. Remove unused file.

* html/shadow/MediaControlsGtk.h: Removed.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170998 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r170995.
https://bugs.webkit.org/show_bug.cgi?id=134831

Causing odd crashes in debug builds (Requested by zdobersek on
#webkit).

Reverted changeset:

"[WTF] Add the move constructor, move assignment operator for
HashTable"
https://bugs.webkit.org/show_bug.cgi?id=130772
http://trac.webkit.org/changeset/170995

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170999 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Subpixel rendering: icloud.com password arrow has clipped circle at some window sizes.
https://bugs.webkit.org/show_bug.cgi?id=134824
<rdar://problem/17612729>

Reviewed by Simon Fraser.

Transparent layer clipping needs device pixel offset adjusting.

Source/WebCore:
Test: fast/layers/wrong-clipping-semi-transparent-compositing-layer-on-subpixel-position.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragments):
* rendering/RenderLayer.h:

LayoutTests:
* fast/layers/wrong-clipping-semi-transparent-compositing-layer-on-subpixel-position-expected.html: Added.
* fast/layers/wrong-clipping-semi-transparent-compositing-layer-on-subpixel-position.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171000 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Subpixel layout: return integral results for offset*, client*, scroll* by default.
https://bugs.webkit.org/show_bug.cgi?id=134651

Reviewed by Simon Fraser.

Revert to returning integral values for Element.offset* client* scroll* by default.
Fractional values break number of sites(tight design) and JS frameworks(fail to handle fractional values).

Since snapped dimension depends on both the original point and the width/height of the box,
we need to call RenderBoxModelObject::pixelSnapped*() helpers, instead of round().

Covered by existing tests

Source/WebCore:

* dom/Element.cpp:
(WebCore::subpixelMetricsEnabled):
(WebCore::convertToNonSubpixelValueIfNeeded):
(WebCore::Element::offsetLeft):
(WebCore::Element::offsetTop):
(WebCore::Element::offsetWidth):
(WebCore::Element::offsetHeight):
(WebCore::Element::clientLeft):
(WebCore::Element::clientTop):
(WebCore::Element::clientWidth):
(WebCore::Element::clientHeight):
* page/Settings.in:

Source/WebKit/mac:

* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):

Source/WebKit2:

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferencesRefPrivate.h:

LayoutTests:

* cssom/subpixel-offsetleft-top-width-height-values-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171001 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION (r170163?): Web content shifts revealing space equivalent to the find bar when clicking a link while a phrase is targeted via Cmd+F
https://bugs.webkit.org/show_bug.cgi?id=134833
<rdar://problem/17580021>

Reviewed by Zalan Bujtas.

Some versions of OS X Safari can't handle the new unfreeze timing. Revert back to DidFirstLayout on Mac.

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidLayout):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171002 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Tighten WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=134834

Reviewed by Sam Weinig.

Define a much tighter sandbox profile for the WebContent process

* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171003 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use a separate backdrop element to allow cues to have highlight and background color
https://bugs.webkit.org/show_bug.cgi?id=134821
<rdar://problem/15999721>

Reviewed by Eric Carlson.


Source/WebCore: 
Add a new <div> element wrapping the existing cue <span>. This allows
us to have a highlight on the cue (in the <span> background), as well
as an overall background color.

* Modules/mediacontrols/mediaControlsApple.css:
(video::-webkit-media-text-track-display-backdrop): New markup for
the backdrop element of the caption.
* html/track/VTTCue.cpp:
(WebCore::VTTCue::cueBackdropShadowPseudoId): Added to
allow user customization of the cue backdrop.
(WebCore::VTTCue::initialize): Rename the old "m_cueBackgroundBox" to
"m_cueHighlightBox" and add a new "m_cueBackdropBox" member.
(WebCore::VTTCue::updateDisplayTree): Update for m_cueHighlightBox.
(WebCore::VTTCue::getDisplayTree): Make m_cueHighlightBox a child
of the new m_cueBackdropBox element, and add m_cueBackdropBox to
the display tree.
* html/track/VTTCue.h:
(WebCore::VTTCue::element):
* page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges):
Fix for missing caption style updates. Even if we are already
listening for caption changes, we still want to update the new
instance's style sheet to match.
(WebCore::CaptionUserPreferencesMediaAF::captionsStyleSheetOverride):
* rendering/RenderVTTCue.cpp:
(WebCore::RenderVTTCue::initializeLayoutParameters): Take the new
<div> into consideration when looking for the Cue text element.

LayoutTests: 
Updated tests for new formatting logic.

* platform/mac/media/track/track-cue-rendering-horizontal-expected.png:
* platform/mac/media/track/track-cue-rendering-horizontal-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171004 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Win] Enable DFG JIT.
https://bugs.webkit.org/show_bug.cgi?id=123615

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-07-11
Reviewed by Mark Lam.

Source/JavaScriptCore:
When the return type of a JIT generated function call is larger than 64-bit (e.g. SlowPathReturnType),
the normal call() implementation cannot be used on 64-bit Windows, because the 64-bit Windows ABI is different in this case.
Also, when generating calls with double arguments, we need to make sure the arguments are put in the correct registers,
since the register allocation differs on 64-bit Windows.

* assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::callWithSlowPathReturnType): Added method to handle function calls where the return value type size is larger than 64-bit.
* jit/CCallHelpers.h:
(JSC::CCallHelpers::setupArgumentsWithExecState): Move arguments to correct registers when there are floating point arguments.
(JSC::CCallHelpers::setupArgumentsWithExecStateForCallWithSlowPathReturnType): Added method.
* jit/JIT.h:
(JSC::JIT::appendCallWithSlowPathReturnType): Added method.
* jit/JITInlines.h:
(JSC::JIT::appendCallWithExceptionCheckAndSlowPathReturnType): Added method.
(JSC::JIT::callOperation): Call new method.

Source/WTF:
* wtf/Platform.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171005 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Feature Queries] Feature Query CSS Grammar Productions Should Return a Value
https://bugs.webkit.org/show_bug.cgi?id=134810

Reviewed by Antti Koivisto.

The parsing return values are used to determine if a feature query is valid. Two
grammar productions have been updated to correctly return a value.

Tests exist for this feature but will not be run until the feature is turned on.
See https://bugs.webkit.org/show_bug.cgi?id=134404.

* css/CSSGrammar.y.in: Adding return values for two valid feature query productions.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171008 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Grid Layout] Implement justify-self css property
https://bugs.webkit.org/show_bug.cgi?id=134419

Reviewed by Dean Jackson.

This change adds the justify-self property from CSS 3 Box Alignment
and implements the parsing.

From Blink r164685 by <jchaffraix@chromium.org>

Source/WebCore:
Test: fast/css/parse-justify-self.html

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::CSSParser::parseValue):
(WebCore::isItemPositionKeyword):
(WebCore::CSSParser::parseJustifySelf):
* css/CSSParser.h:
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EJustifySelf):
(WebCore::CSSPrimitiveValue::operator EJustifySelfOverflowAlignment):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:

LayoutTests:
* fast/css/parse-justify-self-expected.txt: Added.
* fast/css/parse-justify-self.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171010 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: CSS Autocompletion: "background" only has colors, should support others
https://bugs.webkit.org/show_bug.cgi?id=134839

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-07-11
Reviewed by Timothy Hatcher.

Update and consolidate the background related CSS properties
and include sub-property completions in the shorthand property.

Also take the opportunity to add or update other properties
(-webkit-alt, -webkit-text-decoration-skip, -webkit-aspect-ratio)
and remove unnecessary newlines / commas in the list.

* UserInterface/Models/CSSKeywordCompletions.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171011 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use the bare minimum tile coverage rect when under memory pressure.
<https://webkit.org/b/134837>

When the browser is under critical memory pressure, don't generate any
more tiles than are needed to cover the exposed viewport rect.

Reviewed by Pratik Solanki.

* page/FrameView.cpp:
(WebCore::FrameView::computeCoverageRect):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171012 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: Debugger Pause button does not work
https://bugs.webkit.org/show_bug.cgi?id=134785

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:
* CMakeLists.txt:
* DerivedSources.make:
Minification strips the sourceURL command. Add it back with minification.

Source/WebCore:
* CMakeLists.txt:
* DerivedSources.make:
* inspector/CommandLineAPIModuleSource.js:
Minification strips the sourceURL command. Add it back with minification.

Source/WebInspectorUI:
Previously we were automatically resuming if we had no recognized
call frames in the call stack we get when paused. However, we
were accidentally skipping over anonymous scripts instead of
just Web Inspector originated call frames.

Now that we allow anonymous scripts we can step into anonymous
scripts (e.g. evals, new Function(...)) as expected.

Also, remove the condition of automatically resuming if the
call stack was empty. The UI handles this with "No Call Frames".

* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.debuggerDidPause):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171013 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION (r168868): eBay 'see all' links fail due to different JS bindings conversion behavior.
https://bugs.webkit.org/show_bug.cgi?id=134841
<rdar://problem/17577563>

Reviewed by Simon Fraser.

Revert back to type int for Element.scroll* APIs in order to preserve exception handling
behavior.

Source/WebCore:
Test: cssom/non-subpixel-scroll-top-left-values.html

* dom/Element.cpp:
(WebCore::Element::scrollLeft):
(WebCore::Element::scrollTop):
(WebCore::Element::setScrollLeft):
(WebCore::Element::setScrollTop):
(WebCore::Element::scrollWidth):
(WebCore::Element::scrollHeight):
* dom/Element.h:
* dom/Element.idl:
* html/HTMLBodyElement.cpp:
(WebCore::adjustForZoom):
(WebCore::HTMLBodyElement::scrollLeft):
(WebCore::HTMLBodyElement::setScrollLeft):
(WebCore::HTMLBodyElement::scrollTop):
(WebCore::HTMLBodyElement::setScrollTop):
(WebCore::HTMLBodyElement::scrollHeight):
(WebCore::HTMLBodyElement::scrollWidth):
* html/HTMLBodyElement.h:

LayoutTests:
* cssom/non-subpixel-scroll-top-left-values-expected.txt: Added.
* cssom/non-subpixel-scroll-top-left-values.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171014 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Implement textStylingAtPosition in WK2.
https://bugs.webkit.org/show_bug.cgi?id=134843
<rdar://problem/17614981>

Source/WebCore: 
        
Reviewed by Benjamin Poulain.

Adding some exports and making styleForSelectionStart public.

* WebCore.exp.in:
* editing/Editor.h:

Source/WebKit2: 

Reviewed by Benjamin Poulain.

Adding information about typing attributes to EditorState so
that we can implement textStylingAtPosition.

* Shared/EditorState.cpp:
(WebKit::EditorState::encode):
(WebKit::EditorState::decode):
* Shared/EditorState.h:
(WebKit::EditorState::EditorState):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView textStylingAtPosition:inDirection:]):
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView toggleBoldface:]):
(-[WKContentView toggleItalics:]):
(-[WKContentView toggleUnderline:]):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171015 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Phone numbers that span two lines are not detected.
<rdar://problem/17601146> and https://bugs.webkit.org/show_bug.cgi?id=134808

Reviewed by Tim Horton.

* editing/Editor.cpp:
(WebCore::Editor::scanSelectionForTelephoneNumbers): After scanning a range from the TextIterator,
    create an "edge range" window around the end of the TextIterator range, and scan it.
    Also make sure to not accumulate duplicate ranges that might have showed up in both the
    TextIterator range and the edge window range.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171016 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[MSE] Separate MediaSource logging into its own log channel
https://bugs.webkit.org/show_bug.cgi?id=134809

Reviewed by Eric Carlson.

Separate out MediaSource logging (which can be quite verbose) into its own log channel,
distinct from the Media log channel. Add some per-sample logging and further sequester that
logging into its own MediaSourceSamples log channel.

Add the MediaSource and MediaSourceSamples channels:
* platform/Logging.h:

Move LOG(Media) -> LOG(MediaSource):
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::MediaSource):
(WebCore::MediaSource::~MediaSource):
(WebCore::MediaSource::setReadyState):
(WebCore::MediaSource::addSourceBuffer):
(WebCore::MediaSource::removeSourceBuffer):
(WebCore::MediaSource::isTypeSupported):
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateSeekToTime):
(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
(WebCore::SourceBuffer::sourceBufferPrivateDidBecomeReadyForMoreSamples):
(WebCore::SourceBuffer::provideMediaData):
(WebCore::SourceBuffer::monitorBufferingRate):
(WebCore::SourceBuffer::textTrackAddCues):
(WebCore::SourceBuffer::hasFutureTime):
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::didParseStreamDataAsAsset):
(WebCore::SourceBufferPrivateAVFObjC::didFailToParseStreamDataWithError):
(WebCore::SourceBufferPrivateAVFObjC::processCodedFrame):
(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::append):
(WebCore::SourceBufferPrivateAVFObjC::layerDidReceiveError):
(WebCore::SourceBufferPrivateAVFObjC::rendererDidReceiveError):
(WebCore::SourceBufferPrivateAVFObjC::flushAndEnqueueNonDisplayingSamples):
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample):

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