22354515358bd12eed3fff9eb0c6a5fdd36c81c8
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-12-13  Zalan Bujtas  <zalan@apple.com>
2
3         https://bugs.webkit.org/show_bug.cgi?id=139597
4         rdar://problem/19237334
5         Fixed positioned pseudo content does not get composited.
6
7         Reviewed by Simon Fraser.
8
9         This patch ensures that adjustRenderStyle() can access to settings even when Element* is null. 
10
11         Test: compositing/fixed-positioned-pseudo-content-no-compositing.html
12
13         * css/StyleResolver.cpp:
14         (WebCore::StyleResolver::adjustRenderStyle):
15
16 2014-12-12  Mark Rowe  <mrowe@apple.com>
17
18         [Mac] Work around a bug in dsymutil on older OS versions
19         <https://webkit.org/b/139609> / <rdar://problem/16045763>
20
21         Older versions of dsymutil are unable to write out more than 2GB of symbols per architecture.
22         WebCore has recently passed that threshold. To work around this we will reduce the level of
23         symbols included in the dSYM bundles on the affected OS versions.
24
25         Reviewed by Geoff Garen.
26
27         * Configurations/Base.xcconfig: Include line tables only in the debug symbols for production
28         builds on OS X 10.8 and 10.9.
29         * Configurations/DebugRelease.xcconfig: Include full symbols in debug and release builds since they
30         do not make use of dSYMs.
31
32 2014-12-12  Beth Dakin  <bdakin@apple.com>
33
34         Need a fake mouse move after hiding data detectors UI
35         https://bugs.webkit.org/show_bug.cgi?id=139608
36         -and corresponding-
37         rdar://problem/19221935
38
39         Reviewed by Tim Horton.
40
41         * WebCore.exp.in:
42
43 2014-12-12  Dean Jackson  <dino@apple.com>
44
45         [Media iOS] Inline video controls have an outlined scrubber
46         https://bugs.webkit.org/show_bug.cgi?id=139602
47         <rdar://problem/19184212>
48
49         Reviewed by Eric Carlson.
50
51         This is another change similar to https://bugs.webkit.org/show_bug.cgi?id=138378
52         where the specificity of pseduo elements had changed, and thus iOS
53         was inheriting some of the UA styles.
54
55         The fix is to add some more style rules to ensure that the timeline track
56         is drawn in white.
57
58         * Modules/mediacontrols/mediaControlsiOS.css:
59         (audio::-webkit-media-controls-timeline): Border rules not needed here.
60         (video::-webkit-media-controls-timeline::-webkit-slider-runnable-track): But are needed
61         here, along with some other things.
62         (audio::-webkit-media-controls-timeline::-webkit-slider-thumb): Now that the runnable
63         track has some style, we need to account for the change.
64
65 2014-12-12  Anders Carlsson  <andersca@apple.com>
66
67         Remove a workaround for a bug that was fixed in Mountain Lion
68         https://bugs.webkit.org/show_bug.cgi?id=139605
69
70         Reviewed by Sam Weinig.
71
72         * WebCorePrefix.h:
73         (move): Deleted.
74
75 2014-12-12  Zalan Bujtas  <zalan@apple.com>
76
77         https://bugs.webkit.org/show_bug.cgi?id=139596
78         Subpixel rendering: REGRESSION (r163272): Fixed positioned pseudo content leaves trails while scrolling.
79         rdar://problem/18697851
80
81         Reviewed by Simon Fraser.
82
83         Final repaint rect at FrameView::scrollContentsFastPath needs to be pixel aligned (as opposed to snap to int).
84         However we can't pixelsnap it until after ScrollView finished transitioning to Float/LayoutRect.
85         Use enclosing int rect for now to ensure scrolling does not leave trails.
86
87         Unable to test. Apparently scrolling clears trails in dumprendertree. (repaint rects are not useful either with scrolling)
88
89         * page/FrameView.cpp:
90         (WebCore::FrameView::scrollContentsFastPath):
91
92 2014-12-12  Simon Fraser  <simon.fraser@apple.com>
93
94         REGRESSION (r168217): Images are cropped out during animation at jetblue.com
95         https://bugs.webkit.org/show_bug.cgi?id=136410
96
97         Reviewed by Dean Jackson.
98
99         We were hitting the new assertion under Page::setPageScaleFactor(), which
100         calls recalcStyle(), so move the AnimationUpdateBlock from updateStyleIfNeeded()
101         to recalcStyle().
102
103         * dom/Document.cpp:
104         (WebCore::Document::recalcStyle):
105         (WebCore::Document::updateStyleIfNeeded):
106
107 2014-12-12  Simon Fraser  <simon.fraser@apple.com>
108
109         REGRESSION (r168217): Images are cropped out during animation at jetblue.com
110         https://bugs.webkit.org/show_bug.cgi?id=136410
111         rdar://problem/18188533
112
113         Reviewed by Dean Jackson.
114         
115         During GraphicsLayer flushing, for tiled layers we can compute a visible rect using
116         the current state of an animation, which is obtained via the AnimationController.
117         If that animation was running in a subframe, AnimationController could use a stale
118         beginAnimationUpdateTime since no-one called its beginAnimationUpdate(). That
119         resulted in an incorrect computation of the visible rect, resulting in missing tiles.
120         
121         There are two parts to this fix. First, add an assertion that beginAnimationUpdateTime()
122         is being called inside an animation update block. This required moving m_beginAnimationUpdateCount
123         into AnimationControllerPrivate, and changes to endAnimationUpdate().
124         
125         The second is adding a AnimationUpdateBlock to getAnimatedStyleForRenderer(), which
126         can be called outside of style resolution. We also need some in other API functions.
127         
128         Testing revealed that layout can call via layoutOverflowRectForPropagation(), suggesting
129         that we should have an animation batch inside FrameView::layout(). In addition, a single
130         resolveStyle/layout should use the same animationBeginTime, so we add a batch to 
131         updateLayoutAndStyleIfNeededRecursive().
132         
133         No test because it's timing-dependent. Existing tests exercise the new assertion.
134
135         * css/CSSComputedStyleDeclaration.cpp:
136         (WebCore::computeRenderStyleForProperty):
137         * page/FrameView.cpp:
138         (WebCore::FrameView::layout):
139         (WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):
140         * page/animation/AnimationController.cpp:
141         (WebCore::AnimationPrivateUpdateBlock::AnimationPrivateUpdateBlock):
142         (WebCore::AnimationPrivateUpdateBlock::~AnimationPrivateUpdateBlock):
143         (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
144         (WebCore::AnimationControllerPrivate::animationTimerFired):
145         (WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
146         (WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
147         (WebCore::AnimationControllerPrivate::beginAnimationUpdateTime):
148         (WebCore::AnimationControllerPrivate::beginAnimationUpdate):
149         (WebCore::AnimationControllerPrivate::endAnimationUpdate):
150         (WebCore::AnimationControllerPrivate::getAnimatedStyleForRenderer):
151         (WebCore::AnimationController::AnimationController):
152         (WebCore::AnimationController::notifyAnimationStarted):
153         (WebCore::AnimationController::pauseAnimationAtTime):
154         (WebCore::AnimationController::pauseTransitionAtTime):
155         (WebCore::AnimationController::resumeAnimationsForDocument):
156         (WebCore::AnimationController::startAnimationsIfNotSuspended):
157         (WebCore::AnimationController::beginAnimationUpdate):
158         (WebCore::AnimationController::endAnimationUpdate):
159         * page/animation/AnimationController.h:
160         * page/animation/AnimationControllerPrivate.h:
161
162 2014-12-12  Roger Fong  <roger_fong@apple.com>
163
164         [Win] Unreviewed build fix following r177235.
165
166         * WebCore.vcxproj/WebCore.vcxproj:
167
168 2014-12-12  Roger Fong  <roger_fong@apple.com>
169
170         Implement EXT_blend_minmax as a WebGL 1 extension.
171         https://bugs.webkit.org/show_bug.cgi?id=128974.
172         <rdar://problem/19195535>
173
174         Reviewed by Dean Jackson.
175
176         Tested by:
177         webgl/1.0.3/conformance/extensions/ext-blend-minmax.html
178         fast/canvas/webgl/constants.html
179
180         Specifications for this extension:
181         https://www.khronos.org/registry/webgl/extensions/EXT_blend_minmax/
182
183         * CMakeLists.txt:
184         * DerivedSources.cpp:
185         * DerivedSources.make:
186         * WebCore.vcxproj/WebCore.vcxproj:
187         * WebCore.vcxproj/WebCore.vcxproj.filters:
188         * WebCore.xcodeproj/project.pbxproj:
189         * bindings/js/JSWebGLRenderingContextCustom.cpp:
190         (WebCore::toJS):
191         * html/canvas/EXTBlendMinMax.cpp: Added.
192         (WebCore::EXTBlendMinMax::EXTBlendMinMax):
193         (WebCore::EXTBlendMinMax::~EXTBlendMinMax):
194         (WebCore::EXTBlendMinMax::getName):
195         * html/canvas/EXTBlendMinMax.h: Added.
196         * html/canvas/EXTBlendMinMax.idl: Added.
197         * html/canvas/WebGLExtension.h:
198         * html/canvas/WebGLRenderingContext.cpp:
199         (WebCore::WebGLRenderingContext::getExtension):
200         (WebCore::WebGLRenderingContext::getSupportedExtensions):
201         (WebCore::WebGLRenderingContext::validateBlendEquation):
202         * html/canvas/WebGLRenderingContext.h:
203         * html/canvas/WebGLRenderingContext.idl:
204         * platform/graphics/Extensions3D.h:
205
206 2014-12-12  Benjamin Poulain  <bpoulain@apple.com>
207
208         Remove the concept of simple selector from the parser
209         https://bugs.webkit.org/show_bug.cgi?id=139575
210
211         Reviewed by Mark Lam.
212
213         We have complete support for nested selector list, we no longer
214         need the old concept of simple selector.
215
216         * css/CSSParserValues.cpp:
217         (WebCore::CSSParserSelector::isSimple): Deleted.
218         * css/CSSParserValues.h:
219
220 2014-12-12  Antti Koivisto  <antti@apple.com>
221
222         FontGlyphs::glyphDataAndPageForCharacter cleanups
223         https://bugs.webkit.org/show_bug.cgi?id=139584
224
225         Reviewed by Andreas Kling.
226
227         Split it up and use helper functions.
228
229         * WebCore.exp.in:
230         * platform/graphics/FontGlyphs.cpp:
231         (WebCore::FontGlyphs::determinePitch):
232         (WebCore::FontGlyphs::realizeFontDataAt):
233         (WebCore::FontGlyphs::glyphDataAndPageForSystemFallback):
234         (WebCore::FontGlyphs::glyphDataAndPageForVariant):
235
236             Add private helpers.
237
238         (WebCore::FontGlyphs::glyphDataAndPageForCharacter):
239
240             Do the m_pages cache lookup only once and use the pointer reference afterwards.
241
242         * platform/graphics/FontGlyphs.h:
243         (WebCore::FontGlyphs::fontSelector):
244         (WebCore::FontGlyphs::widthCache):
245         (WebCore::FontGlyphs::primaryFontData):
246         (WebCore::FontGlyphs::isFixedPitch):
247         (WebCore::FontGlyphs::primarySimpleFontData):
248
249             Also removed the mutable attribute from the fields (almost everything was marked mutable) and made the inteface
250             non-const. The FontGlyphs member of Font is already mutable so this is not needed.
251
252 2014-12-12  Chris Dumez  <cdumez@apple.com>
253
254         Use is<>() / downcast<>() for StyleRuleBase subclasses
255         https://bugs.webkit.org/show_bug.cgi?id=139571
256
257         Reviewed by Andreas Kling.
258
259         Use is<>() / downcast<>() for StyleRuleBase subclasses for safety and
260         consistency.
261
262         No new tests, no behavior change.
263
264         * css/CSSFontFaceRule.cpp:
265         (WebCore::CSSFontFaceRule::reattach):
266         * css/CSSKeyframesRule.h:
267         (isType):
268         * css/CSSPageRule.cpp:
269         (WebCore::CSSPageRule::reattach):
270         * css/CSSStyleRule.cpp:
271         (WebCore::CSSStyleRule::reattach):
272         * css/CSSStyleSheet.cpp:
273         (WebCore::CSSStyleSheet::insertRule):
274         * css/RuleSet.cpp:
275         (WebCore::RuleSet::addRegionRule):
276         (WebCore::RuleSet::addChildRules):
277         * css/StyleInvalidationAnalysis.cpp:
278         (WebCore::shouldDirtyAllStyle):
279         * css/StyleRule.cpp:
280         (WebCore::StyleRuleBase::destroy):
281         (WebCore::StyleRuleBase::copy):
282         (WebCore::StyleRuleBase::createCSSOMWrapper):
283         * css/StyleRule.h:
284         (isType):
285         (WebCore::toStyleRule): Deleted.
286         * css/StyleRuleImport.h:
287         (isType):
288         * css/StyleSheetContents.cpp:
289         (WebCore::StyleSheetContents::parserAppendRule):
290         (WebCore::StyleSheetContents::wrapperInsertRule):
291         (WebCore::StyleSheetContents::addSubresourceStyleURLs):
292         (WebCore::childRulesHaveFailedOrCanceledSubresources):
293         * css/WebKitCSSViewportRule.cpp:
294         (WebCore::WebKitCSSViewportRule::reattach):
295         * inspector/InspectorCSSAgent.cpp:
296         (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
297
298 2014-12-12  Jer Noble  <jer.noble@apple.com>
299
300         [MSE] Add support for SourceBuffer.mode.
301         https://bugs.webkit.org/show_bug.cgi?id=139265
302
303         Reviewed by Eric Carlson.
304
305         Support setting SourceBuffer's mode property, and add support for "sequence" mode. Prior
306         to this change, "segments" mode was implied.
307
308         * Modules/mediasource/MediaSource.cpp:
309         (WebCore::MediaSource::addSourceBuffer):
310         (WebCore::MediaSource::regenerateActiveSourceBuffers):
311         * Modules/mediasource/SourceBuffer.cpp:
312         (WebCore::SourceBuffer::segmentsKeyword):
313         (WebCore::SourceBuffer::sequenceKeyword):
314         (WebCore::SourceBuffer::SourceBuffer):
315         (WebCore::SourceBuffer::setTimestampOffset):
316         (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
317         (WebCore::SourceBuffer::setMode):
318         * Modules/mediasource/SourceBuffer.h:
319         * Modules/mediasource/SourceBuffer.idl:
320
321 2014-12-12  Radu Stavila  <stavila@adobe.com>
322
323         [SVG Masking] Enable the use of <mask> elements for -webkit-mask-image
324         https://bugs.webkit.org/show_bug.cgi?id=139294
325
326         Reviewed by Simon Fraser.
327
328         This patch links together all parts required for the functionality which improves 
329         the -webkit-mask-image property by allowing it to reference a <mask> element defined 
330         in an inline or external SVG document.
331         Support for this new functionality has been added in a previous patch, under issue
332         https://bugs.webkit.org/show_bug.cgi?id=139092. A more detailed description of how
333         the new functionality works can be found in the ChangeLog for that commit.
334         The containsSVGDocument in ScrollView has been removed because it was added in the
335         previous patch but is no longer required.
336
337         Tests: css3/masking/mask-base64.html
338                css3/masking/mask-multiple-values.html
339                css3/masking/mask-svg-clipped-fragmentId.html
340                css3/masking/mask-svg-fragmentId.html
341                css3/masking/mask-svg-inline-fragmentId.html
342                css3/masking/mask-svg-inline-invalid-fragmentId.html
343                css3/masking/mask-svg-invalid-fragmentId.html
344                css3/masking/mask-svg-no-fragmentId-tiled.html
345                css3/masking/mask-svg-no-fragmentId.html
346                css3/masking/mask-svg-script-entire-svg-to-mask.html
347                css3/masking/mask-svg-script-mask-to-entire-svg.html
348                css3/masking/mask-svg-script-mask-to-none.html
349                css3/masking/mask-svg-script-mask-to-png.html
350                css3/masking/mask-svg-script-none-to-mask.html
351                css3/masking/mask-svg-script-none-to-png.html
352                css3/masking/mask-svg-script-png-to-mask.html
353                css3/masking/mask-svg-script-png-to-none.html
354
355         * css/CSSComputedStyleDeclaration.cpp:
356         (WebCore::ComputedStyleExtractor::propertyValue):
357         * css/CSSParser.cpp:
358         (WebCore::CSSParser::parseFillShorthand):
359         (WebCore::CSSParser::parseFillProperty):
360         (WebCore::CSSParser::parseMaskImage):
361         * css/CSSParser.h:
362         * css/DeprecatedStyleBuilder.cpp:
363         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
364         * css/StyleResolver.cpp:
365         (WebCore::StyleResolver::adjustStyleForMaskImages):
366         (WebCore::StyleResolver::applyProperty):
367         (WebCore::StyleResolver::loadPendingSVGDocuments):
368         (WebCore::StyleResolver::createMaskImageOperations):
369         (WebCore::StyleResolver::loadPendingImages):
370         * page/animation/CSSPropertyAnimation.cpp:
371         (WebCore::blendFunc):
372         (WebCore::MaskImagePropertyWrapper::MaskImagePropertyWrapper):
373         (WebCore::MaskImagePropertyWrapper::equals):
374         (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
375         * platform/graphics/MaskImageOperation.cpp:
376         (WebCore::MaskImageOperation::~MaskImageOperation):
377         * rendering/RenderBox.cpp:
378         (WebCore::RenderBox::maskClipRect):
379         * rendering/RenderBox.h:
380         * rendering/RenderBoxModelObject.cpp:
381         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
382         (WebCore::RenderBoxModelObject::calculateFillTileSize):
383         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
384         * rendering/RenderElement.cpp:
385         (WebCore::RenderElement::~RenderElement):
386         (WebCore::RenderElement::updateFillImages):
387         * rendering/RenderLayer.cpp:
388         (WebCore::RenderLayer::calculateClipRects):
389         * rendering/RenderLayer.h:
390         * rendering/style/FillLayer.h:
391         * rendering/style/RenderStyle.cpp:
392         (WebCore::RenderStyle::setMaskImage):
393         * rendering/style/RenderStyle.h:
394
395 2014-12-12  Csaba Osztrogonác  <ossy@webkit.org>
396
397         Fix the !ENABLE(SVG_FONTS) build after r177078
398         https://bugs.webkit.org/show_bug.cgi?id=139578
399
400         Reviewed by Martin Robinson.
401
402         * platform/graphics/cairo/FontCairo.cpp:
403         (WebCore::Font::dashesForIntersectionsWithRect):
404
405 2014-12-12  Zalan Bujtas  <zalan@apple.com>
406
407         Simple line layout: Add 16bit support.
408         https://bugs.webkit.org/show_bug.cgi?id=139469
409
410         Reviewed by Antti Koivisto.
411
412         This patch adds the 16bit support to simple line layout.
413
414         Test: fast/inline/simple-line-layout-16bit-content.html
415
416         * rendering/SimpleLineLayout.cpp:
417         (WebCore::SimpleLineLayout::canUseFor):
418         * rendering/SimpleLineLayoutFlowContents.cpp:
419         (WebCore::SimpleLineLayout::nextBreakablePosition):
420         (WebCore::SimpleLineLayout::FlowContents::findNextBreakablePosition):
421         (WebCore::SimpleLineLayout::findNextNonWhitespace):
422         (WebCore::SimpleLineLayout::FlowContents::findNextNonWhitespacePosition):
423         (WebCore::SimpleLineLayout::FlowContents::textWidth):
424         (WebCore::SimpleLineLayout::FlowContents::runWidth):
425         * rendering/SimpleLineLayoutFlowContents.h:
426         * rendering/SimpleLineLayoutResolver.cpp:
427         (WebCore::SimpleLineLayout::RunResolver::Run::text):
428
429 2014-12-12  ChangSeok Oh  <changseok.oh@collabora.com>
430
431         Implement MemoryPressureHandler for Linux system
432         https://bugs.webkit.org/show_bug.cgi?id=123532
433
434         Reviewed by Sergio Villar Senin.
435
436         This is an initial implementation to support MemoryPressureHandler for linux system.
437         The patch is based on Tomeu's last patch and improved on top of it.
438         Most of current linux distributions support cgroup, so that we use the memory.pressure_level
439         mechanism of cgroup to get notifications when an application reaches the 'low' memory
440         pressure level.
441
442         No new tests since no engine behavior changed.
443
444         * PlatformEfl.cmake:
445         * PlatformGTK.cmake:
446         * platform/MemoryPressureHandler.cpp:
447         (WebCore::MemoryPressureHandler::MemoryPressureHandler):
448         * platform/MemoryPressureHandler.h:
449         * platform/linux/MemoryPressureHandlerLinux.cpp: Added.
450         (WebCore::nextToken):
451         (WebCore::MemoryPressureHandler::~MemoryPressureHandler):
452         (WebCore::MemoryPressureHandler::waitForMemoryPressureEvent): run in a seperated thread
453         to listen 'low' level event.
454         (WebCore::MemoryPressureHandler::logErrorAndCloseFDs):
455         (WebCore::MemoryPressureHandler::install):
456         (WebCore::MemoryPressureHandler::uninstall):
457         (WebCore::MemoryPressureHandler::holdOffTimerFired):
458         (WebCore::MemoryPressureHandler::holdOff):
459         (WebCore::MemoryPressureHandler::respondToMemoryPressure):
460         (WebCore::MemoryPressureHandler::platformReleaseMemory):
461         (WebCore::MemoryPressureHandler::ReliefLogger::platformLog):
462         (WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage): read /proc/self/status
463         to get VM amount used by current process.
464
465 2014-12-12  Simon Fraser  <simon.fraser@apple.com>
466
467         Layer borders on contentsLayers don't correctly toggle with the rest of the borders
468         https://bugs.webkit.org/show_bug.cgi?id=139570
469         rdar://problem/18007746
470
471         Reviewed by Tim Horton.
472         
473         The "Show Debug Borders" toggle didn't cleanly remove layer borders from
474         content layers (image, video), nor did it deal with cloned layers (reflections).
475         
476         Fix by making updateDebugBorder() update the layer borders on the contents
477         layer and cloned layers, moving some code around to avoid having colors
478         in more than one place. If the borders are hidden, send an invalid color
479         to PlatformCALayer::setBorderColor(), which now knows to remove the color
480         property on the layer (to avoid leaving transparent border color properties
481         on CALayers).
482
483         * platform/graphics/ca/GraphicsLayerCA.cpp:
484         (WebCore::setLayerDebugBorder):
485         (WebCore::contentsLayerDebugBorderColor):
486         (WebCore::cloneLayerDebugBorderColor):
487         (WebCore::GraphicsLayerCA::updateDebugBorder):
488         (WebCore::GraphicsLayerCA::setDebugBorder):
489         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
490         (PlatformCALayerMac::setBorderColor):
491
492 2014-12-11  Joseph Pecoraro  <pecoraro@apple.com>
493
494         Web Inspector: Crash when trying to inspect LocalStorage
495         https://bugs.webkit.org/show_bug.cgi?id=139573
496
497         Reviewed by Anders Carlsson.
498
499         Move away from PageGroup::localStorage and instead to StorageNamespaceProvider.
500         This matches what DOMWindow::localStorage does to get the StorageArea for a document.
501
502         * inspector/InspectorDOMStorageAgent.cpp:
503         (WebCore::InspectorDOMStorageAgent::findStorageArea):
504
505 2014-12-11  Simon Fraser  <simon.fraser@apple.com>
506
507         Transform-style should not kill position:fixed
508         https://bugs.webkit.org/show_bug.cgi?id=138122
509
510         Reviewed by Dean Jackson.
511         
512         Various bits of rendering code checked RenderObject::hasTransform() for various
513         reasons. Confusingly, this meant "has transform, or preserve-3d, or perspective".
514         
515         This patch teases those behaviors apart to produce the following behavior:
516         
517         1. "transform" acts as containing block for fixed position (no behavior change).
518         2. "transform" acts as containing block for absolute/relative position (no behavior change).
519         3. "perspective" does not act as containing block for fixed position (no behavior change).
520         4. "perspective" acts as containing block for absolute/relative position (no behavior change).
521         5. "preserve-3d" does not act as containing block for fixed position (behavior change).
522         6. "preserve-3d" acts as containing block for absolute/relative position. This is not a
523         behavior change, but seems like incorrect behavior (https://www.w3.org/Bugs/Public/show_bug.cgi?id=27566).
524         However, we may be forced to keep it for compatibility.
525         
526         The gist of the change is to rename RenderObject::hasTransform() to RenderObject::hasTransformRelatedProperty(),
527         and add hasTransform() with the more restrictive meaning. All call sites of hasTransform() were examined
528         and fixed to produce the desired behaviors.
529
530         Tests: transforms/2d/perspective-not-fixed-container.html
531                transforms/2d/preserve3d-not-fixed-container.html
532                transforms/perspective-is-containing-block-for-absolute.html
533                transforms/preserve3d-is-containing-block-for-absolute.html
534                transforms/transform-is-containing-block-for-absolute.html
535
536         * css/CSSComputedStyleDeclaration.cpp:
537         (WebCore::computedTransform): Now we can just test hasTransform().
538         * rendering/LogicalSelectionOffsetCaches.h:
539         (WebCore::isContainingBlockCandidateForAbsolutelyPositionedObject): For now, this
540         can just use hasTransformRelatedProperty(), but if we change [6] above this will have
541         to change (as documented in the comment). Also FIXME comments about sharing code.
542         * rendering/RenderBox.cpp:
543         (WebCore::RenderBox::updateFromStyle):
544         (WebCore::RenderBox::mapLocalToContainer): Can just use hasTransform() now.
545         (WebCore::RenderBox::pushMappingToContainer): Ditto.
546         (WebCore::RenderBox::mapAbsoluteToLocalPoint): Ditto.
547         (WebCore::RenderBox::layoutOverflowRectForPropagation): Ditto.
548         * rendering/RenderBox.h: All transform-related properties create RenderLayers.
549         * rendering/RenderBoxModelObject.h: Ditto.
550         * rendering/RenderElement.cpp:
551         (WebCore::RenderElement::styleWillChange):
552         * rendering/RenderGeometryMap.cpp:
553         (WebCore::canMapBetweenRenderersViaLayers): Rename to clarify. We need to not map via
554         layers if we have a perspective (since we need to generate a perspective matrix). It's
555         OK with preserve-3d though.
556         (WebCore::RenderGeometryMap::pushMappingsToAncestor):
557         (WebCore::canMapBetweenRenderers): Deleted.
558         * rendering/RenderInline.cpp:
559         (WebCore::RenderInline::updateFromStyle):
560         * rendering/RenderLayer.cpp:
561         (WebCore::RenderLayer::updateTransform): Can just check hasTransform().
562         (WebCore::RenderLayer::updateLayerPosition): Avoid calling parent() and enclosingPositionedAncestor() twice.
563         (WebCore::RenderLayer::perspectiveTransform): Do the fast bit check hasTransformRelatedProperty() first.
564         (WebCore::RenderLayer::perspectiveOrigin): Ditto.
565         (WebCore::isContainerForPositioned): This code has to now have different behavior for absolute and fixed
566         position. Changed it to call existing functions, rather than having a 3rd place that has to know about
567         containing block rules.
568         (WebCore::RenderLayer::enclosingAncestorForPosition): Call isContainerForPositioned() now.
569         (WebCore::accumulateOffsetTowardsAncestor): Call enclosingAncestorForPosition().
570         (WebCore::RenderLayer::createLocalTransformState):
571         (WebCore::RenderLayer::calculateClipRects):
572         (WebCore::isPositionedContainer): Deleted.
573         (WebCore::isFixedPositionedContainer): Deleted.
574         (WebCore::RenderLayer::enclosingPositionedAncestor): Deleted.
575         * rendering/RenderLayer.h:
576         * rendering/RenderLayerBacking.cpp:
577         (WebCore::RenderLayerBacking::updateGeometry):
578         * rendering/RenderLayerModelObject.cpp:
579         (WebCore::RenderLayerModelObject::styleDidChange):
580         * rendering/RenderObject.cpp:
581         (WebCore::RenderObject::shouldUseTransformFromContainer): Can just check hasTransform() now.
582         (WebCore::RenderObject::container):
583         * rendering/RenderObject.h:
584         (WebCore::RenderObject::hasTransformRelatedProperty):
585         (WebCore::RenderObject::hasTransform):
586         (WebCore::RenderObject::setHasTransformRelatedProperty):
587         (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
588         (WebCore::RenderObject::setHasTransform): Deleted.
589         * rendering/RenderTableRow.h:
590         * rendering/RenderView.cpp:
591         (WebCore::RenderView::mapLocalToContainer): nullptr goodness.
592         (WebCore::RenderView::pushMappingToContainer): Ditto.
593         (WebCore::RenderView::mapAbsoluteToLocalPoint): Ditto.
594
595 2014-12-11  Rich Tibbett <rich.tibbett@gmail.com>
596
597         [iOS] Normalize iOS DeviceOrientation beta/gamma per spec.
598         https://bugs.webkit.org/show_bug.cgi?id=137134
599         <radr://problem/9414459>
600
601         Reviewed by Benjamin Poulain.
602
603         Normalize DeviceOrientation beta and gamma on iOS to match the
604         conventions defined in the W3C DeviceOrientation Events specification.
605
606         beta values are returned in the range [-180, 180). gamma values are
607         returned in the range [-90, 90).
608
609         * platform/ios/WebCoreMotionManager.mm:
610
611 2014-12-11  Commit Queue  <commit-queue@webkit.org>
612
613         Unreviewed, rolling out r177081.
614         https://bugs.webkit.org/show_bug.cgi?id=139569
615
616         broke iOS video playback (Requested by eric_carlson on
617         #webkit).
618
619         Reverted changeset:
620
621         "Fix iOS builders for 8.0"
622         https://bugs.webkit.org/show_bug.cgi?id=139495
623         http://trac.webkit.org/changeset/177081
624
625 2014-12-11  Roger Fong  <roger_fong@apple.com>
626
627         Unreviewed. Fix to build fix in r177134.
628
629         * html/canvas/WebGLDrawBuffers.cpp: iOS should query the system for GL extension availability.
630
631 2014-12-10  Roger Fong  <roger_fong@apple.com>
632
633         Implement frag depth as a WebGL 1 extension.
634         https://bugs.webkit.org/show_bug.cgi?id=133635.
635         <rdar://problem/19195381>
636
637         Reviewed by Dean Jackson.
638
639         Test:
640         webgl/1.0.3/conformance/extensions/ext-frag-depth.html
641
642         Spec for this extension outlined here:
643         http://www.khronos.org/registry/webgl/extensions/EXT_frag_depth/
644
645         * CMakeLists.txt:
646         * DerivedSources.cpp:
647         * DerivedSources.make:
648         * WebCore.vcxproj/WebCore.vcxproj:
649         * WebCore.vcxproj/WebCore.vcxproj.filters:
650         * WebCore.xcodeproj/project.pbxproj:
651         * bindings/js/JSWebGLRenderingContextCustom.cpp:
652         (WebCore::toJS):
653         * html/canvas/EXTFragDepth.cpp: Added.
654         (WebCore::EXTFragDepth::EXTFragDepth):
655         (WebCore::EXTFragDepth::~EXTFragDepth):
656         (WebCore::EXTFragDepth::getName):
657         * html/canvas/EXTFragDepth.h: Added.
658         * html/canvas/EXTFragDepth.idl: Added.
659         * html/canvas/WebGLExtension.h:
660         * html/canvas/WebGLRenderingContext.cpp:
661         (WebCore::WebGLRenderingContext::getExtension):
662         (WebCore::WebGLRenderingContext::getSupportedExtensions):
663         * html/canvas/WebGLRenderingContext.h:
664         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
665         (WebCore::Extensions3DOpenGL::supportsExtension):
666         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
667         (WebCore::Extensions3DOpenGLCommon::ensureEnabled):
668
669 2014-12-11  Chris Dumez  <cdumez@apple.com>
670
671         Optimize RenderElement::rendererForRootBackground() a bit
672         https://bugs.webkit.org/show_bug.cgi?id=139527
673
674         Reviewed by Andreas Kling.
675
676         Optimize RenderElement::rendererForRootBackground() a bit by not
677         calling Document::body(). We are only interested in the child element
678         with a <body> tag. However, Document::body() first checks if a
679         <frameset> child is present.
680
681         No new tests, no behavior change.
682
683         * rendering/RenderElement.cpp:
684         (WebCore::RenderElement::rendererForRootBackground):
685
686 2014-12-11  Brendan Long  <b.long@cablelabs.com>
687
688         Remove DataCue "text" attribute
689         https://bugs.webkit.org/show_bug.cgi?id=139461
690
691         Reviewed by Eric Carlson.
692
693         * html/track/DataCue.cpp:
694         * html/track/DataCue.h:
695         * html/track/DataCue.idl:
696
697 2014-12-11  Alexey Proskuryakov  <ap@apple.com>
698
699         Initialize m_ownsGeneratedFile when decoding a FormDataElement
700         https://bugs.webkit.org/show_bug.cgi?id=139566
701
702         Reviewed by Tim Horton.
703
704         No tests, because it's random, and I couldn't reproduce an assertion failure in
705         controlled circumstances.
706
707         * platform/network/FormData.h: (WebCore::FormDataElement::decode): A newly created
708         FormDataElement by definition doesn't own the file.
709
710 2014-12-11  Anders Carlsson  <andersca@apple.com>
711
712         Fix Windows build.
713
714         * WebCore.vcxproj/WebCore.vcxproj:
715         * WebCore.vcxproj/WebCore.vcxproj.filters:
716
717 2014-12-11  Timothy Horton  <timothy_horton@apple.com>
718
719         Fix the build.
720
721         * platform/spi/mac/NSImmediateActionGestureRecognizerSPI.h:
722
723 2014-12-11  Timothy Horton  <timothy_horton@apple.com>
724
725         Fix the build.
726
727         * platform/spi/mac/NSImmediateActionGestureRecognizerSPI.h:
728
729 2014-12-11  Timothy Horton  <timothy_horton@apple.com>
730
731         Move the preview popover to WKImmediateActionController
732         https://bugs.webkit.org/show_bug.cgi?id=139560
733         <rdar://problem/19208291>
734
735         Reviewed by Beth Dakin.
736
737         * platform/spi/mac/NSImmediateActionGestureRecognizerSPI.h:
738         Add some requisite SPI.
739
740 2014-12-11  Jer Noble  <jer.noble@apple.com>
741
742         [Mac] Crash in -[WebVideoFullscreenHUDWindowController playing] in WK1 clients without FULLSCREEN_API enabled.
743         https://bugs.webkit.org/show_bug.cgi?id=139546
744
745         Reviewed by Eric Carlson.
746
747         Finish the work started by r173230 and rename mediaElement -> videoElement in WebVideoFullscreenHUDWindowController.
748
749         * platform/mac/WebVideoFullscreenHUDWindowController.h:
750         * platform/mac/WebVideoFullscreenHUDWindowController.mm:
751         (-[WebVideoFullscreenHUDWindowController endScrubbing]):
752         (-[WebVideoFullscreenHUDWindowController timelinePositionChanged:]):
753         (-[WebVideoFullscreenHUDWindowController currentTime]):
754         (-[WebVideoFullscreenHUDWindowController setCurrentTime:]):
755         (-[WebVideoFullscreenHUDWindowController duration]):
756         (-[WebVideoFullscreenHUDWindowController decrementVolume]):
757         (-[WebVideoFullscreenHUDWindowController incrementVolume]):
758         (-[WebVideoFullscreenHUDWindowController volume]):
759         (-[WebVideoFullscreenHUDWindowController setVolume:]):
760         (-[WebVideoFullscreenHUDWindowController playing]):
761         (-[WebVideoFullscreenHUDWindowController setPlaying:]):
762         (-[WebVideoFullscreenHUDWindowController remainingTimeText]):
763         (-[WebVideoFullscreenHUDWindowController elapsedTimeText]):
764         (-[WebVideoFullscreenHUDWindowController rewind:]):
765         (-[WebVideoFullscreenHUDWindowController fastForward:]):
766
767 2014-12-11  Anders Carlsson  <andersca@apple.com>
768
769         Fix iOS build.
770
771         * storage/StorageTracker.cpp:
772         (WebCore::StorageTracker::syncDeleteAllOrigins):
773
774 2014-12-11  Anders Carlsson  <andersca@apple.com>
775
776         Stop using SQLiteFileSystem in the storage code
777         https://bugs.webkit.org/show_bug.cgi?id=139549
778
779         Reviewed by Sam Weinig.
780
781         Just inline the SQLiteFileSystem calls into their respective call sites.
782         This is more preparation for moving the old storage code into WebKit proper.
783
784         * storage/StorageAreaSync.cpp:
785         (WebCore::StorageAreaSync::deleteEmptyDatabase):
786         * storage/StorageTracker.cpp:
787         (WebCore::StorageTracker::trackerDatabasePath):
788         (WebCore::ensureDatabaseFileExists):
789         (WebCore::StorageTracker::openTrackerDatabase):
790         (WebCore::truncateDatabaseFile):
791         (WebCore::StorageTracker::syncDeleteAllOrigins):
792         (WebCore::StorageTracker::syncDeleteOrigin):
793         (WebCore::StorageTracker::diskUsageForOrigin):
794
795 2014-12-11  Alexey Proskuryakov  <ap@apple.com>
796
797         Unreviewed, rolling out r177155.
798
799         Caused crashes on webarchive tests.
800
801         Reverted changeset:
802
803         "[SVG Masking] Enable the use of <mask> elements for -webkit-
804         mask-image"
805         https://bugs.webkit.org/show_bug.cgi?id=139294
806         http://trac.webkit.org/changeset/177155
807
808 2014-12-11  Anders Carlsson  <andersca@apple.com>
809
810         Call StorageThread::releaseFastMallocFreeMemoryInAllThreads from WebKit
811         https://bugs.webkit.org/show_bug.cgi?id=139547
812
813         Reviewed by Sam Weinig.
814
815         This is another step towards moving StorageThread (and friends) to WebKit.
816
817         * WebCore.exp.in:
818         * WebCore.xcodeproj/project.pbxproj:
819         * platform/MemoryPressureHandler.cpp:
820         (WebCore::MemoryPressureHandler::releaseMemory):
821
822 2014-12-11  Said Abou-Hallawa  <sabouhallawa@apple.com>
823
824         ASSERTION FAILED: animatedTypes[0].properties.size() == 1 in WebCore::SVGAnimatedTypeAnimator::constructFromBaseValue.
825         https://bugs.webkit.org/show_bug.cgi?id=139046.
826
827         Reviewed by Dirk Schulze.
828
829         Test: svg/animations/unsupported-animate-element-attributes.svg.
830         
831         The SVG base animator element should not animate an attribute if it is not
832         supported by the target SVG element. Besides the CSS presentation attributes, 
833         every SVG element defines which attributes can be animated by including them
834         between BEGIN_DECLARE_ANIMATED_PROPERTIES and END_DECLARE_ANIMATED_PROPERTIES
835         in the definition of the class. This definition builds attribute-properties map.
836         When restarting the animation, the animator looks for all the attributes that
837         match the animated attribute name. If the supported attribute-properties map
838         does not include the animated attribute name, an empty element-properties list
839         should be returned. When getting an empty element-properties list, the animator
840         should not start any animation for the unsupported attribute.
841
842         Do not start the animation if the animated attribute is not supported by 
843         the target SVG element.
844         * svg/SVGAnimateElementBase.cpp:
845         (WebCore::SVGAnimateElementBase::resetAnimatedType):
846         
847         Return an empty element-properties list if the animated attribute is not
848         supported by the target SVG element.
849         * svg/SVGAnimatedTypeAnimator.cpp:
850         (WebCore::SVGAnimatedTypeAnimator::findAnimatedPropertiesForAttributeName):
851
852 2014-12-10  Dean Jackson  <dino@apple.com>
853
854         InstancedArray crashes attempting to draw out of bounds
855         https://bugs.webkit.org/show_bug.cgi?id=139521
856
857         Reviewed by Simon Fraser.
858
859         We were not doing index validation correctly for instancing.
860
861         Test: fast/canvas/webgl/angle-instanced-arrays-out-of-bounds.html
862
863         * html/canvas/WebGLRenderingContext.cpp:
864         (WebCore::WebGLRenderingContext::validateVertexAttributes): We need to check
865         the number of instances drawn against the amount of instance data that has
866         been provided, taking into account the number of repeats (the divisor).
867         (WebCore::WebGLRenderingContext::drawArrays): Added some whitespace to make it more clear.
868         (WebCore::WebGLRenderingContext::validateDrawElements): This needs to take a primcount
869         parameter so that it can correctly validate the call (when used from drawElementsInstanced).
870         (WebCore::WebGLRenderingContext::drawElements): New signature to validate.
871         (WebCore::WebGLRenderingContext::drawArraysInstanced): Rearrange this a bit. The
872         primcount validation is already being done by the validateDrawArrays call. Also, there
873         was a bogus UNUSED_PARAM hanging around.
874         (WebCore::WebGLRenderingContext::drawElementsInstanced): Similar rearrangement. Use
875         the primcount parameter.
876         * html/canvas/WebGLRenderingContext.h:
877
878 2014-12-11  Radu Stavila  <stavila@adobe.com>
879
880         [SVG Masking] Enable the use of <mask> elements for -webkit-mask-image
881         https://bugs.webkit.org/show_bug.cgi?id=139294
882
883         Reviewed by Simon Fraser.
884
885         This patch links together all parts required for the functionality which improves 
886         the -webkit-mask-image property by allowing it to reference a <mask> element defined 
887         in an inline or external SVG document.
888         Support for this new functionality has been added in a previous patch, under issue
889         https://bugs.webkit.org/show_bug.cgi?id=139092. A more detailed description of how
890         the new functionality works can be found in the ChangeLog for that commit.
891         The containsSVGDocument in ScrollView has been removed because it was added in the
892         previous patch but is no longer required.
893
894         Tests: css3/masking/mask-base64.html
895                css3/masking/mask-multiple-values.html
896                css3/masking/mask-svg-clipped-fragmentId.html
897                css3/masking/mask-svg-fragmentId.html
898                css3/masking/mask-svg-inline-fragmentId.html
899                css3/masking/mask-svg-inline-invalid-fragmentId.html
900                css3/masking/mask-svg-invalid-fragmentId.html
901                css3/masking/mask-svg-no-fragmentId-tiled.html
902                css3/masking/mask-svg-no-fragmentId.html
903                css3/masking/mask-svg-script-entire-svg-to-mask.html
904                css3/masking/mask-svg-script-mask-to-entire-svg.html
905                css3/masking/mask-svg-script-mask-to-none.html
906                css3/masking/mask-svg-script-mask-to-png.html
907                css3/masking/mask-svg-script-none-to-mask.html
908                css3/masking/mask-svg-script-none-to-png.html
909                css3/masking/mask-svg-script-png-to-mask.html
910                css3/masking/mask-svg-script-png-to-none.html
911
912         * css/CSSComputedStyleDeclaration.cpp:
913         (WebCore::ComputedStyleExtractor::propertyValue):
914         * css/CSSParser.cpp:
915         (WebCore::CSSParser::parseFillShorthand):
916         (WebCore::CSSParser::parseFillProperty):
917         (WebCore::CSSParser::parseMaskImage):
918         * css/CSSParser.h:
919         * css/DeprecatedStyleBuilder.cpp:
920         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
921         * css/StyleResolver.cpp:
922         (WebCore::StyleResolver::adjustStyleForMaskImages):
923         (WebCore::StyleResolver::applyProperty):
924         (WebCore::StyleResolver::loadPendingSVGDocuments):
925         (WebCore::StyleResolver::createMaskImageOperations):
926         (WebCore::StyleResolver::loadPendingImages):
927         * page/animation/CSSPropertyAnimation.cpp:
928         (WebCore::blendFunc):
929         (WebCore::MaskImagePropertyWrapper::MaskImagePropertyWrapper):
930         (WebCore::MaskImagePropertyWrapper::equals):
931         (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
932         * platform/graphics/MaskImageOperation.cpp:
933         (WebCore::MaskImageOperation::~MaskImageOperation):
934         * rendering/RenderBox.cpp:
935         (WebCore::RenderBox::maskClipRect):
936         * rendering/RenderBox.h:
937         * rendering/RenderBoxModelObject.cpp:
938         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
939         (WebCore::RenderBoxModelObject::calculateFillTileSize):
940         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
941         * rendering/RenderElement.cpp:
942         (WebCore::RenderElement::~RenderElement):
943         (WebCore::RenderElement::updateFillImages):
944         * rendering/RenderLayer.cpp:
945         (WebCore::RenderLayer::calculateClipRects):
946         * rendering/RenderLayer.h:
947         * rendering/style/FillLayer.h:
948         * rendering/style/RenderStyle.cpp:
949         (WebCore::RenderStyle::setMaskImage):
950         * rendering/style/RenderStyle.h:
951
952 2014-12-09  Jeremy Jones  <jeremyj@apple.com>
953
954         Restore interface state when stopping optimized fullscreen.
955         https://bugs.webkit.org/show_bug.cgi?id=139465
956
957         Reviewed by Simon Fraser.
958
959         * platform/ios/WebVideoFullscreenControllerAVKit.mm:
960         (-[WebVideoFullscreenController fullscreenMayReturnToInline:]): add empty implementation.
961         * platform/ios/WebVideoFullscreenInterfaceAVKit.h: add declaration
962         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
963         (WebVideoFullscreenInterfaceAVKit::enterFullscreen): restore interface context when optimized mode ends.
964         (WebVideoFullscreenInterfaceAVKit::setIsOptimized): restore interface context when optimized mode ends.
965
966 2014-12-11  Anders Carlsson  <andersca@apple.com>
967
968         Remove unused storage header includes
969         https://bugs.webkit.org/show_bug.cgi?id=139540
970
971         Reviewed by Antti Koivisto.
972
973         * storage/StorageAreaImpl.cpp:
974         * storage/StorageAreaSync.cpp:
975         * storage/StorageNamespaceImpl.cpp:
976         (WebCore::StorageNamespaceImpl::localStorageNamespace): Deleted.
977         (WebCore::StorageNamespaceImpl::sessionStorageNamespace): Deleted.
978         (WebCore::StorageNamespaceImpl::transientLocalStorageNamespace): Deleted.
979         * storage/StorageNamespaceImpl.h:
980         * storage/StorageSyncManager.cpp:
981         * storage/StorageThread.cpp:
982         * storage/StorageTracker.cpp:
983
984 2014-12-11  Alexey Proskuryakov  <ap@apple.com>
985
986         REGRESSION (Async Text Input): Text input method state is not reset when reloading a page
987         https://bugs.webkit.org/show_bug.cgi?id=139504
988         rdar://problem/19034674
989
990         Reviewed by Enrica Casucci.
991
992         Explicitly notify EditorClient when a composition is voluntarily canceled by WebCore.
993         These are almost certainly not all the places where this happens, but this fixes the bug,
994         and lays the groundwork for using this new client call instead of didChangeSelection
995         hacks.
996
997         * editing/Editor.cpp:
998         (WebCore::Editor::clear):
999         (WebCore::Editor::cancelComposition):
1000         * loader/EmptyClients.h:
1001         * loader/FrameLoader.cpp:
1002         (WebCore::FrameLoader::willTransitionToCommitted):
1003         * page/EditorClient.h:
1004
1005 2014-12-10  Anders Carlsson  <andersca@apple.com>
1006
1007         Get rid of the storage strategy
1008         https://bugs.webkit.org/show_bug.cgi?id=139519
1009
1010         Reviewed by Antti Koivisto.
1011
1012         * CMakeLists.txt:
1013         * WebCore.exp.in:
1014         * WebCore.vcxproj/WebCore.vcxproj:
1015         * WebCore.vcxproj/WebCore.vcxproj.filters:
1016         * WebCore.xcodeproj/project.pbxproj:
1017         * page/DOMWindow.cpp:
1018         (WebCore::DOMWindow::localStorage):
1019         * page/Page.cpp:
1020         (WebCore::Page::Page):
1021         (WebCore::Page::~Page):
1022         (WebCore::Page::sessionStorage):
1023         (WebCore::Page::setStorageNamespaceProvider):
1024         * page/Page.h:
1025         (WebCore::Page::storageNamespaceProvider):
1026         * page/PageGroup.cpp:
1027         (WebCore::PageGroup::localStorage):
1028         (WebCore::PageGroup::transientLocalStorage):
1029         * platform/PlatformStrategies.h:
1030         (WebCore::PlatformStrategies::PlatformStrategies):
1031         (WebCore::PlatformStrategies::storageStrategy): Deleted.
1032         * storage/StorageNamespace.cpp: Removed.
1033         * storage/StorageNamespace.h:
1034         * storage/StorageStrategy.cpp: Removed.
1035         * storage/StorageStrategy.h: Removed.
1036
1037 2014-12-11  Carlos Garcia Campos  <cgarcia@igalia.com>
1038
1039         [GTK] Move click counter logic back to WebKitWebViewBase
1040         https://bugs.webkit.org/show_bug.cgi?id=137685
1041
1042         Reviewed by Martin Robinson.
1043
1044         Remove GtkClickCounter.
1045
1046         * PlatformGTK.cmake:
1047         * platform/gtk/GtkClickCounter.cpp: Removed.
1048         * platform/gtk/GtkClickCounter.h: Removed.
1049
1050 2014-12-11  Carlos Garcia Campos  <cgarcia@igalia.com>
1051
1052         [GTK] Implement sizes attribute for link tag
1053         https://bugs.webkit.org/show_bug.cgi?id=125775
1054
1055         Reviewed by Martin Robinson.
1056
1057         * bindings/gobject/WebKitDOMCustom.cpp:
1058         (webkit_dom_html_link_element_set_sizes): Add custom setter implementation.
1059         * bindings/gobject/WebKitDOMCustomUnstable.h:
1060         * bindings/js/JSHTMLLinkElementCustom.cpp:
1061         (WebCore::JSHTMLLinkElement::sizes): Remove custom getter implementation.
1062         * bindings/scripts/CodeGeneratorGObject.pm:
1063         (HasUnstableCustomAPI): Mark WebKitDOMHTMLLinkElement as having custom unstable API.
1064         * html/HTMLLinkElement.idl: Mark sizes attribute as CustomSetter
1065         instead of Custom, since the getter can be autogenerated, and make
1066         it available to the GObject DOM bindings too.
1067
1068 2014-12-10  Chris Dumez  <cdumez@apple.com>
1069
1070         http://omfgdogs.info/ only animates when you resize the window
1071         https://bugs.webkit.org/show_bug.cgi?id=139435
1072         <rdar://problem/19190493>
1073
1074         Reviewed by Simon Fraser.
1075
1076         After r163928, we would fail to animate a gif if:
1077         - it is used as a background image of a 0-height html element
1078         - it is used as a background image of a 0-height body element whose
1079           background is delegated to the root (because the root has no
1080           background).
1081
1082         This is because in such cases, shouldRepaintForImageAnimation()
1083         should use the background rect instead of the renderer's overflow
1084         rect to determine if the image is inside the viewport. Both cases
1085         are addressed in this patch.
1086
1087         Tests: fast/images/animated-gif-body-delegated-background-image.html
1088                fast/images/animated-gif-body-outside-viewport.html
1089                fast/images/animated-gif-html-background-image.html
1090
1091         * rendering/RenderElement.cpp:
1092         (WebCore::shouldRepaintForImageAnimation):
1093         * testing/Internals.cpp:
1094         (WebCore::Internals::hasPausedImageAnimations):
1095         * testing/Internals.h:
1096         * testing/Internals.idl:
1097
1098 2014-12-10  Timothy Horton  <timothy_horton@apple.com>
1099
1100         Fix the build.
1101
1102         * html/canvas/WebGLDrawBuffers.cpp:
1103         Yosemite is 101000, not 10100.
1104         Also, __MAC_OS_X_VERSION_MIN_REQUIRED is only defined for PLATFORM(MAC).
1105
1106 2014-12-10  Zalan Bujtas  <zalan@apple.com>
1107
1108         Continuously repainting large parts of Huffington Post.
1109         https://bugs.webkit.org/show_bug.cgi?id=139468
1110
1111         Reviewed by Antti Koivisto.
1112
1113         This patch eliminates redundant repaint requests for inlines when neither the parent
1114         block flow nor any of the inline children are dirty.
1115         Previously,
1116         1. simple line layout always recalculated inline content positions regardless of whether
1117         the content needed relayout at all; as a result, it always triggered full repaint.
1118         2. inline tree layout ignored the needslayout flag on the last line and treated it dirty
1119         (unless it broke cleanly (<div>foo<br></div>)).
1120         This was an ancient workaround for an editing/insert use case, but it seems not to be the case anymore.
1121
1122         Tests: fast/repaint/implicitly-positioned-block-repaint-complex-line-layout.html
1123                fast/repaint/implicitly-positioned-block-repaint-simple-line-layout.html
1124
1125         * rendering/RenderBlockFlow.cpp:
1126         (WebCore::RenderBlockFlow::layoutInlineChildren):
1127         (WebCore::RenderBlockFlow::layoutSimpleLines): Check if we need to trigger layout at all.
1128         * rendering/RenderBlockFlow.h:
1129         * rendering/RenderBlockLineLayout.cpp:
1130         (WebCore::RenderBlockFlow::determineStartPosition): Remove the last line dirty hack. If it
1131         happens to introduce regression, we should fix it at the caller site to make the line dirty.
1132
1133 2014-12-10  Anders Carlsson  <andersca@apple.com>
1134
1135         Add an empty storage namespace provider
1136         https://bugs.webkit.org/show_bug.cgi?id=139520
1137
1138         Reviewed by Tim Horton.
1139
1140         * loader/EmptyClients.cpp:
1141         (WebCore::fillWithEmptyClients):
1142
1143 2014-12-10  Beth Dakin  <bdakin@apple.com>
1144
1145         Speculative build fix.
1146
1147         * platform/spi/mac/NSImmediateActionGestureRecognizerSPI.h:
1148
1149 2014-12-10  Beth Dakin  <bdakin@apple.com>
1150
1151         WK2: Add initial support for immediate actions
1152         https://bugs.webkit.org/show_bug.cgi?id=139511
1153
1154         Reviewed by Tim Horton.
1155
1156         SPI needed for immediate actions.
1157         * WebCore.xcodeproj/project.pbxproj:
1158         * platform/spi/mac/NSImmediateActionGestureRecognizerSPI.h: Added.
1159
1160 2014-12-10  Martin Hock  <mhock@apple.com>
1161
1162         [iOS] Add setting to ignore viewport scaling constraints
1163         https://bugs.webkit.org/show_bug.cgi?id=139466
1164         <rdar://problem/19200328>
1165
1166         Reviewed by Benjamin Poulain.
1167
1168         * WebCore.exp.in:
1169         * page/Settings.in: Add setting to ignore viewport scaling constraints.
1170         * page/ViewportConfiguration.cpp: Ignore viewport scaling constraints based on preference.
1171         (WebCore::ViewportConfiguration::initialScale):
1172         (WebCore::ViewportConfiguration::minimumScale):
1173         (WebCore::ViewportConfiguration::allowsUserScaling):
1174         * page/ViewportConfiguration.h:
1175         (WebCore::ViewportConfiguration::setIgnoreScalingConstraints):
1176         (WebCore::ViewportConfiguration::allowsUserScaling): Moved to cpp.
1177
1178 2014-12-10  Andreas Kling  <akling@apple.com>
1179
1180         Speculative fix for assertion "frame().view() == this"
1181         <rdar://problem/18419449>
1182
1183         Rubber-stamped by Anders Carlsson.
1184
1185         I have not reproduced this issue, but we can safely ignore animation
1186         notifications for cached pages.
1187
1188         * rendering/RenderElement.cpp:
1189         (WebCore::RenderElement::newImageAnimationFrameAvailable):
1190
1191 2014-12-10  Anders Carlsson  <andersca@apple.com>
1192
1193         Add session storage handling to StorageNamespaceProvider
1194         https://bugs.webkit.org/show_bug.cgi?id=139507
1195
1196         Reviewed by Tim Horton.
1197
1198         * page/Page.cpp:
1199         (WebCore::Page::sessionStorage):
1200         * storage/StorageNamespaceProvider.h:
1201
1202 2014-12-10  Roger Fong  <roger_fong@apple.com>
1203
1204         Unreviewed. Follow-up patch to r177099.
1205         https://bugs.webkit.org/show_bug.cgi?id=133634
1206         <rdar://problem/15949588>
1207
1208         Enable GL_EXT_draw_buffers on iOS as well.
1209         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
1210         (WebCore::Extensions3DOpenGL::supportsExtension):
1211
1212 2014-12-10  Roger Fong  <roger_fong@apple.com>
1213
1214         Implement Multiple Render Targets as WebGL 1 extension.
1215         https://bugs.webkit.org/show_bug.cgi?id=133634.
1216         <rdar://problem/15949588>
1217
1218         Reviewed by Brent Fulgham.
1219
1220         Tested by:
1221         webgl/1.0.3/conformance/extensions/webgl-draw-buffers.html
1222
1223         Enable the implementation now that an underlying driver bug has been resolved.
1224         Do not enable for desktop platforms older that OS X 10.10.
1225         * html/canvas/WebGLDrawBuffers.cpp:
1226         (WebCore::WebGLDrawBuffers::supported):
1227
1228 2014-12-10  Ryosuke Niwa  <rniwa@webkit.org>
1229
1230         REGRESSION(r164329): Input fields are not honoring the maxlength attribute
1231         https://bugs.webkit.org/show_bug.cgi?id=139447
1232
1233         Reviewed by Benjamin Poulain.
1234
1235         The bug was caused by String::substring being called with the selection's end offset
1236         in the second argument instead of the selection's length in handleBeforeTextInsertedEvent.
1237
1238         Fixed the bug by passing the right second argument to String::substring.
1239
1240         Test: fast/forms/input-maxlength-inserting-in-middle.html
1241
1242         * html/TextFieldInputType.cpp:
1243         (WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):
1244
1245 2014-12-10  Anders Carlsson  <andersca@apple.com>
1246
1247         Add a missing null check.
1248
1249         * page/Page.cpp:
1250         (WebCore::Page::~Page):
1251
1252 2014-12-10  Antti Koivisto  <antti@apple.com>
1253
1254         Crash when creating CSSCalcBinaryOperation
1255         https://bugs.webkit.org/show_bug.cgi?id=134886
1256         rdar://problem/17663561
1257
1258         Reviewed by Chris Dumez.
1259
1260         Test: fast/css/calc-binary-operation-crash.html
1261
1262         * css/CSSCalculationValue.cpp:
1263         (WebCore::determineCategory):
1264
1265         Ensure that both axis are within the addSubtractResult table.
1266         Remove unneeded CalcOther test. The call site guarantees it doesn't happen and the normal cases would handle it anyway.
1267         Also strengthen some asserts.
1268
1269 2014-12-10  Anders Carlsson  <andersca@apple.com>
1270
1271         Add WebStorageNamespaceProvider::closeLocalStorage
1272         https://bugs.webkit.org/show_bug.cgi?id=139502
1273
1274         Reviewed by Tim Horton.
1275
1276         * page/Page.cpp:
1277         (WebCore::Page::~Page):
1278         Call StorageNamespaceProvider::removePage.
1279
1280         * storage/StorageNamespaceProvider.h:
1281         (WebCore::StorageNamespaceProvider::optionalLocalStorageNamespace):
1282         Helper function that returns the local storage namespace if one exists.
1283
1284 2014-12-10  Joanmarie Diggs  <jdiggs@igalia.com>
1285
1286         AX: [ATK] MathML tokens with text fail to expose their text content via AtkText
1287         https://bugs.webkit.org/show_bug.cgi?id=139454
1288
1289         Reviewed by Chris Fleizach.
1290
1291         Expose the text content of the element for non-anonymous RenderMathMLOperators.
1292         This is needed because for ATK we expose the rendered element itself; not the
1293         descendant text renderers. Also include MathML tokens as objects which should
1294         implement AtkText.
1295
1296         Test: accessibility/math-text.html
1297
1298         * accessibility/AccessibilityRenderObject.cpp:
1299         (WebCore::AccessibilityRenderObject::textUnderElement):
1300         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
1301         (getInterfaceMaskFromObject):
1302
1303 2014-12-10  Sebastian Dröge  <sebastian@centricular.com>
1304
1305         [GStreamer] Use appsrcs instead of unconnected queues
1306         https://bugs.webkit.org/show_bug.cgi?id=139490
1307
1308         Reviewed by Philippe Normand.
1309
1310         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
1311         (webkit_web_audio_src_init):
1312         (webKitWebAudioSrcConstructed):
1313         (webKitWebAudioSrcFinalize):
1314         (webKitWebAudioSrcSetProperty):
1315         (webKitWebAudioSrcLoop):
1316         (webKitWebAudioSrcChangeState):
1317         Previously we directly chained buffers into unconnected queues,
1318         which confused some code inside GStreamer and caused some harmless
1319         warnings. Now we use appsrcs instead, which also allows us to remove
1320         quite some code.
1321
1322 2014-12-10  Enrica Casucci  <enrica@apple.com>
1323
1324         Fix iOS builders for 8.0
1325         https://bugs.webkit.org/show_bug.cgi?id=139495
1326
1327         Reviewed by Eric Carlson.
1328
1329         * WebCore.exp.in:
1330         * platform/ios/WebVideoFullscreenControllerAVKit.mm:
1331         (-[WebVideoFullscreenController enterFullscreen:mode:]):
1332         (-[WebVideoFullscreenController requestHideAndExitFullscreen]):
1333         (-[WebVideoFullscreenController enterFullscreen:]): Deleted.
1334         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1335
1336
1337 2014-12-10  peavo@outlook.com  <peavo@outlook.com>
1338
1339         [Curl] Cache entry is sometimes deleted when request receives a not modified response.
1340         https://bugs.webkit.org/show_bug.cgi?id=139339
1341
1342         Reviewed by Alex Christensen.
1343
1344         Sometimes it happens that a request receives a not modified response,
1345         but the cache entry has already been deleted by another request.
1346         This can be avoided by locking a cache entry while there are pending
1347         requests for the cache entry's url.
1348
1349         * platform/network/curl/CurlCacheEntry.h:
1350         (WebCore::CurlCacheEntry::addClient):
1351         (WebCore::CurlCacheEntry::removeClient):
1352         (WebCore::CurlCacheEntry::hasClients):
1353         * platform/network/curl/CurlCacheManager.cpp:
1354         (WebCore::CurlCacheManager::didReceiveResponse):
1355         (WebCore::CurlCacheManager::didFail):
1356         (WebCore::CurlCacheManager::addCacheEntryClient):
1357         (WebCore::CurlCacheManager::removeCacheEntryClient):
1358         * platform/network/curl/CurlCacheManager.h:
1359         * platform/network/curl/ResourceHandleManager.cpp:
1360         (WebCore::isHttpNotModified):
1361         (WebCore::headerCallback):
1362         (WebCore::ResourceHandleManager::initializeHandle):
1363
1364 2014-12-10  Sebastian Dröge  <sebastian@centricular.com>
1365
1366         [GStreamer] Use a buffer pool for allocations in the AudioDestination
1367         https://bugs.webkit.org/show_bug.cgi?id=139487
1368
1369         Reviewed by Philippe Normand.
1370
1371         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
1372         (webKitWebAudioSrcLoop):
1373         (webKitWebAudioSrcChangeState):
1374         Use a buffer pool for the allocations instead of allocating a
1375         new small buffer for every 128 samples we produce.
1376
1377 2014-12-10  Martin Robinson  <mrobinson@igalia.com>
1378
1379         [GTK] Add support for text-decoration-skip
1380         https://bugs.webkit.org/show_bug.cgi?id=131540
1381
1382         Reviewed by Gustavo Noronha Silva.
1383
1384         No new tests. This is covered by existing layout tests.
1385
1386         * platform/graphics/cairo/FontCairo.cpp:
1387         (WebCore::GlyphIterationState): Added this class, a modified version of the Mac
1388         port's implementation.
1389         (WebCore::Font::dashesForIntersectionsWithRect): Ditto.
1390         * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
1391         (WebCore::Font::getGlyphsAndAdvancesForComplexText): Added an implementation for
1392         HarfBuzz that just fills out the GlyphBuffer, but does not render it.
1393         (WebCore::Font::drawComplexText): Use the new getGlyphsAndAdvancesForComplexText
1394         in a similar way to the Mac port.
1395         * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
1396         (WebCore::HarfBuzzShaper::fillGlyphBufferFromHarfBuzzRun): We need to pass the current
1397         character index to GlyphBuffer:add since it's used by dashesForIntersectionsWithRect
1398         and otherwise it will be uninitialized when we try to access it.
1399
1400 2014-12-10  Andreas Kling  <akling@apple.com>
1401
1402         REGRESSION(r177048) 11 failures on layout tests fast/selectors.
1403         <https://webkit.org/b/139483>
1404
1405         Unreviewed fix for bots.
1406
1407         When rolling out the broken change, I accidentally also rolled out
1408         a bug fix that Benjamin had made to sibling invalidation.
1409         Restore his implementation of nodeOrItsAncestorNeedsStyleRecalc().
1410
1411         * css/CSSComputedStyleDeclaration.cpp:
1412         (WebCore::nodeOrItsAncestorNeedsStyleRecalc):
1413         (WebCore::updateStyleIfNeededForNode):
1414         (WebCore::ComputedStyleExtractor::propertyValue):
1415
1416 2014-12-08  Philippe Normand  <pnormand@igalia.com>
1417
1418         [GStreamer] AudioSourceProvider support in the MediaPlayer
1419         https://bugs.webkit.org/show_bug.cgi?id=78883
1420
1421         Reviewed by Gustavo Noronha Silva.
1422
1423         GStreamer-based audio source provider for the GTK and EFL
1424         ports. This new component gathers decoded raw audio data from the
1425         MediaPlayer and pipes it to an AudioBus when required by the
1426         User Agent.
1427
1428         * PlatformEfl.cmake: New files in the build.
1429         * PlatformGTK.cmake: Ditto.
1430         * platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp: Added.
1431         (WebCore::onAppsinkNewBufferCallback): Function called when a new
1432         buffer can be pulled from appsink.
1433         (WebCore::onGStreamerDeinterleavePadAddedCallback): Function
1434         called when a new source pad has been added to deinterleave.
1435         (WebCore::onGStreamerDeinterleaveReadyCallback): Function called
1436         when the deinterleave element completed the configuration of all
1437         its source pads.
1438         (WebCore::copyGstreamerBuffersToAudioChannel): Called for each
1439         channel of the AudioBus that needs data as input.
1440         (WebCore::AudioSourceProviderGStreamer::AudioSourceProviderGStreamer):
1441         Create an audio bin that by default routes buffers only to
1442         autoaudiosink. A new route is added if the provider has a client.
1443         (WebCore::AudioSourceProviderGStreamer::~AudioSourceProviderGStreamer):
1444         Clean buffer adapters and audio bin.
1445         (WebCore::AudioSourceProviderGStreamer::configureAudioBin):
1446         (WebCore::AudioSourceProviderGStreamer::provideInput): Transfer
1447         data from the buffer adapters to the bus channels.
1448         (WebCore::AudioSourceProviderGStreamer::handleAudioBuffer): Pull a
1449         buffer from appsink and queue it to the buffer adapter.
1450         (WebCore::AudioSourceProviderGStreamer::setClient): Complete the
1451         construction of the audio bin by adding a new chain to the tee
1452         element. This new chain will deinterleave the buffer stream to
1453         planar audio channels and route them to an appsink per channel for
1454         data extraction.
1455         (WebCore::AudioSourceProviderGStreamer::handleNewDeinterleavePad):
1456         A new appsink after a new source pad has been added to deinterleave.
1457         (WebCore::AudioSourceProviderGStreamer::deinterleavePadsConfigured):
1458         Configure the client Node format (number of channels and sample
1459         rate) once the provider knows how many audio channels are managed
1460         by the pipeline.
1461         (WebCore::cleanUpElementsAfterDeinterleaveSourcePadCallback):
1462         (WebCore::AudioSourceProviderGStreamer::cleanUpElementsAfterDeinterleaveSourcePad):
1463         Remove the elements after the given deinterleave source pad.
1464         (WebCore::AudioSourceProviderGStreamer::reset): Cleanup the
1465         deinterleave source pads. This is especially needed before the
1466         whole pipeline goes to NULL and later on prerolls again.
1467         * platform/audio/gstreamer/AudioSourceProviderGStreamer.h: Added.
1468         (WebCore::AudioSourceProviderGStreamer::create): Use this to
1469         create the provider and get an OwnPtr of it.
1470         (WebCore::AudioSourceProviderGStreamer::client): Provider client getter.
1471         (WebCore::AudioSourceProviderGStreamer::getAudioBin): Audio bin
1472         getter, used by the media player to configure its
1473         playbin::audio-sink property.
1474         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
1475         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1476         (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
1477         Provider life cycle management and reset the audio provider before
1478         going to NULL.
1479         (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer): Ditto.
1480         (WebCore::MediaPlayerPrivateGStreamer::handlePluginInstallerResult): Ditto.
1481         (WebCore::MediaPlayerPrivateGStreamer::cancelLoad): Ditto.
1482         (WebCore::MediaPlayerPrivateGStreamer::didEnd): Ditto.
1483         (WebCore::MediaPlayerPrivateGStreamer::createAudioSink): Configure
1484         the audio source provider if needed.
1485         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
1486         (WebCore::MediaPlayerPrivateGStreamer::audioSourceProvider):
1487         Provider getter, used by MediaPlayer and MediaElement.
1488
1489 2014-12-09  Myles C. Maxfield  <mmaxfield@apple.com>
1490
1491         Scrolling to anchor tags does nothing in vertical-rl writing mode
1492         https://bugs.webkit.org/show_bug.cgi?id=137838
1493
1494         Reviewed by David Hyatt.
1495
1496         Scroll to a particular tag, and make sure the viewport is rendered as expected.
1497
1498         Tests: fast/events/scroll-to-anchor-vertical-lr-writing-mode.html
1499                fast/events/scroll-to-anchor-vertical-writing-mode-contained-2.html
1500                fast/events/scroll-to-anchor-vertical-writing-mode-contained.html
1501                fast/events/scroll-to-anchor-vertical-writing-mode.html
1502
1503         * page/FrameView.cpp:
1504         (WebCore::FrameView::scrollToAnchor):
1505         * rendering/ScrollBehavior.cpp:
1506         * rendering/ScrollBehavior.h:
1507
1508 2014-12-09  Bem Jones-Bey  <bjonesbe@adobe.com>
1509
1510         REGRESSION(r155906): Page content disappears on Tuaw article after loading
1511         https://bugs.webkit.org/show_bug.cgi?id=138100
1512
1513         Reviewed by Simon Fraser.
1514
1515         Test: ManualTests/float-layer-not-painting.html
1516
1517         * rendering/RenderBlockFlow.cpp:
1518         (WebCore::RenderBlockFlow::insertFloatingObject): If a layout happens,
1519         it can change whether the float's renderer has a self painting layer.
1520         So in that case, we need to update the flag on the FloatingObject
1521         instance for that float.
1522
1523 2014-12-09  Andreas Kling  <akling@apple.com>
1524
1525         Roll out r165076.
1526         <rdar://problem/18490587>
1527
1528         This change broke selection when editing Confluence wiki pages.
1529
1530         * css/CSSComputedStyleDeclaration.cpp:
1531         (WebCore::nodeOrItsAncestorNeedsStyleRecalc):
1532         (WebCore::ComputedStyleExtractor::propertyValue):
1533         * dom/Document.cpp:
1534         (WebCore::nodeOrItsAncestorNeedsStyleRecalc): Deleted.
1535         (WebCore::Document::updateStyleIfNeededForNode): Deleted.
1536         * dom/Document.h:
1537         * editing/htmlediting.cpp:
1538         (WebCore::isEditablePosition):
1539         * html/TextFieldInputType.cpp:
1540         (WebCore::TextFieldInputType::forwardEvent):
1541
1542 2014-12-09  Myles C. Maxfield  <mmaxfield@apple.com>
1543
1544         Fix iOS build after r177035.
1545
1546         Unreviewed.
1547
1548         I accidentally added my line to WebCore.exp.in inside an
1549         #IF PLATFORM(MAC) block.
1550
1551         * WebCore.exp.in:
1552
1553 2014-12-09  Jeremy Jones  <jeremyj@apple.com>
1554
1555         Enable automatic optimized fullscreen mode.
1556         https://bugs.webkit.org/show_bug.cgi?id=139437
1557
1558         Reviewed by Eric Carlson.
1559
1560         Anticipate transition to optimized video fullscreen mode when entering background.
1561
1562         * WebCore.exp.in:
1563         * html/HTMLMediaElement.cpp:
1564         (WebCore::HTMLMediaElement::overrideBackgroundPlaybackRestriction): Add logic for automatic transition detection.
1565         * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
1566         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1567         (WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoOptimized): Add logic for automatic transition detection.
1568
1569 2014-12-09  Myles C. Maxfield  <mmaxfield@apple.com>
1570
1571         Delete Node::boundingBox()
1572         https://bugs.webkit.org/show_bug.cgi?id=139333
1573
1574         Conceptually, boundingBox() should be on RenderInline. In addition,
1575         Node::boundingBox() is completely broken for inline elements: it
1576         makes a rect from the top left of the first inline child to the
1577         bottom right of the last inline child, disregarding the intermediate
1578         inline children. This breaks with vertical text and with line
1579         breaks.
1580
1581         What makes this problem worse is that some functions actually rely
1582         on this bad behavior. These functions are functions that use the
1583         Node's so-called "bounding box" to scroll to an anchor tag.
1584
1585         This patch goes through all the call sites of Node::boundingBox(),
1586         and segregates them into calls that expect the true bounding box
1587         and calls that need this false bounding box. This patch then moves
1588         this false bounding box into RenderElement, using the name
1589         anchorRect(). Callers what want the correct bounding box have been
1590         updated to use RenderElement::absoluteBoundingBoxRect().
1591
1592         Reviewed by Zalan Bujtas.
1593
1594         No new tests because there should be no behavior change.
1595
1596         * accessibility/AccessibilitySlider.cpp:
1597         (WebCore::AccessibilitySliderThumb::elementRect): Use
1598         RenderObject::absoluteBoundingBoxRect()
1599         * dom/ContainerNode.cpp:
1600         (WebCore::ContainerNode::getUpperLeftCorner): Deleted.
1601         (WebCore::ContainerNode::getLowerRightCorner): Deleted.
1602         (WebCore::ContainerNode::boundingBox): Deleted.
1603         * dom/ContainerNode.h:
1604         * dom/Element.cpp:
1605         (WebCore::Element::scrollIntoView): Use RenderElement::anchorRect().
1606         (WebCore::Element::scrollIntoViewIfNeeded): Ditto.
1607         (WebCore::Element::updateFocusAppearance): Ditto.
1608         * dom/Node.cpp:
1609         (WebCore::Node::boundingBox): Deleted.
1610         * dom/Node.h:
1611         (WebCore::Node::pixelSnappedBoundingBox): Deleted.
1612         * html/ColorInputType.cpp:
1613         (WebCore::ColorInputType::elementRectRelativeToRootView): Use
1614         RenderObject::absoluteBoundingBoxRect()
1615         * html/HTMLInputElement.cpp:
1616         (WebCore::HTMLInputElement::setupDateTimeChooserParameters): Ditto.
1617         * html/ValidationMessage.cpp:
1618         (WebCore::ValidationMessage::buildBubbleTree): Ditto.
1619         * page/FrameView.cpp:
1620         (WebCore::FrameView::scrollElementToRect): Use
1621         RenderElement::anchorRect().
1622         (WebCore::FrameView::scrollToAnchor): Ditto.
1623         * page/SpatialNavigation.cpp:
1624         (WebCore::nodeRectInAbsoluteCoordinates): Use
1625         RenderObject::absoluteBoundingBoxRect()
1626         * rendering/RenderElement.cpp:
1627         (WebCore::RenderElement::getUpperLeftCorner): Moved from ContainerNode.
1628         (WebCore::RenderElement::getLowerRightCorner): Moved from
1629         ContainerNode.
1630         (WebCore::RenderElement::anchorRect): Moved from ContainerNode.
1631         * rendering/RenderObject.h:
1632         * rendering/RenderText.cpp:
1633         (WebCore::RenderText::topOfFirstText): Helper for
1634         RenderElement::anchorRect()
1635         * rendering/RenderText.h:
1636
1637 2014-12-09  Antti Koivisto  <antti@apple.com>
1638
1639         REGRESSION (r173272): When open PDF from Safari in iBooks, title is replaced to “QuickLookPDF-s72DbgAU-1”
1640         https://bugs.webkit.org/show_bug.cgi?id=139453
1641         rdar://problem/19052192
1642
1643         Reviewed by Pratik Solanki.
1644
1645         Pulling the suggested filename from the platform response returned null string on USE(CFNETWORK) code path
1646         if it was the first thing needed from it.
1647
1648         * platform/network/cf/ResourceResponseCFNet.cpp:
1649         (WebCore::ResourceResponse::platformSuggestedFilename): Use the lazy accessor.
1650
1651 2014-12-09  Joanmarie Diggs  <jdiggs@igalia.com>
1652
1653         AX: [ATK] MathML tokens, tables, and row-like elements are exposed with ATK_ROLE_UNKNOWN
1654         https://bugs.webkit.org/show_bug.cgi?id=139402
1655
1656         Reviewed by Chris Fleizach.
1657
1658         Expose tables and their children using existing table AtkRole types,
1659         token elements using the new ATK_ROLE_STATIC, and row-like elements
1660         using ATK_ROLE_PANEL. Also expose <mlabeledtr> as a math table row
1661         and <ms> as math text.
1662
1663         No new tests; instead, added MathML elements to roles-exposed.html.
1664
1665         * accessibility/AccessibilityObject.h:
1666         (WebCore::AccessibilityObject::isMathToken):
1667         * accessibility/AccessibilityRenderObject.cpp:
1668         (WebCore::AccessibilityRenderObject::isMathToken):
1669         (WebCore::AccessibilityRenderObject::isMathText):
1670         (WebCore::AccessibilityRenderObject::isMathTableRow):
1671         * accessibility/AccessibilityRenderObject.h:
1672         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
1673         (atkRole):
1674         * css/mathml.css:
1675         (ms, mi, mo, mrow, mfenced, mfrac, msub, msup, msubsup, mmultiscripts, mprescripts, none, munder, mover, munderover, msqrt, mroot, merror, mphantom, mstyle, menclose):
1676         (mi, mo, mrow, mfenced, mfrac, msub, msup, msubsup, mmultiscripts, mprescripts, none, munder, mover, munderover, msqrt, mroot, merror, mphantom, mstyle, menclose): Deleted.
1677         * mathml/mathtags.in:
1678
1679 2014-12-09  Dean Jackson  <dino@apple.com>
1680
1681         [Apple] Use Accelerate framework to speed-up FEGaussianBlur
1682         https://bugs.webkit.org/show_bug.cgi?id=139310
1683
1684         Unreviewed followup, after comments by Andreas Kling.
1685
1686         It was pointed out that we already have a USE(ACCELERATE), so
1687         we don't need a HAVE(ACCELERATE) :)
1688
1689         * platform/graphics/filters/FEGaussianBlur.cpp:
1690         (WebCore::FEGaussianBlur::platformApplyGeneric):
1691         (WebCore::FEGaussianBlur::platformApply):
1692
1693 2014-12-09  Alberto Garcia  <berto@igalia.com>
1694
1695         Unreviewed. Style fix following r177019.
1696
1697         Use nullptr instead of 0.
1698
1699         * bindings/gobject/ConvertToUTF8String.cpp:
1700         (convertToUTF8String):
1701
1702 2014-12-09  Javier Fernandez  <jfernandez@igalia.com>
1703
1704         Refactor of rebuildFloatingObjectSetFromIntrudingFloats function after r176957.
1705         https://bugs.webkit.org/show_bug.cgi?id=139445
1706
1707         Reviewed by Darin Adler.
1708
1709         The function rebuildFloatingObjectSetFromIntrudingFloats would be clearer if
1710         we use a helper function to locate the previous sibling with overhanging floats.
1711
1712         These changes has been suggested as part of the patch review for bug #139150, which
1713         landed in r176957.
1714
1715         No new tests, no behavior change.
1716
1717         * rendering/RenderBlock.cpp:
1718         (WebCore::RenderBlock::avoidsFloats):
1719         * rendering/RenderBlockFlow.cpp:
1720         (WebCore::RenderBlockFlow::previousSiblingWithOverhangingFloats):
1721         (WebCore::RenderBlockFlow::rebuildFloatingObjectSetFromIntrudingFloats):
1722         * rendering/RenderBlockFlow.h:
1723         * rendering/RenderBox.h:
1724         (WebCore::RenderBox::isGridItem):
1725
1726 2014-12-09  Alberto Garcia  <berto@igalia.com>
1727
1728         convertToUTF8String converts null string to empty string
1729         https://bugs.webkit.org/show_bug.cgi?id=133904
1730
1731         Reviewed by Carlos Garcia Campos.
1732
1733         Test added to Tools/TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp
1734
1735         Return 0 if the string is null.
1736
1737         * bindings/gobject/ConvertToUTF8String.cpp:
1738         (convertToUTF8String):
1739
1740 2014-12-09  Jeremy Jones  <jeremyj@apple.com>
1741
1742         When invalidating fullscreen, cancel instead of stop optimizedFullscfreen.
1743         https://bugs.webkit.org/show_bug.cgi?id=139145
1744
1745         Reviewed by Eric Carlson.
1746
1747         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1748         (WebVideoFullscreenInterfaceAVKit::invalidate): call cancel instead of stop
1749         * platform/spi/ios/AVKitSPI.h: add -cancelOptimizedFullscreen.
1750
1751 2014-12-09  Alberto Garcia  <berto@igalia.com>
1752
1753         [Media][GTK][EFL] Reduce style updates (painting) in controls
1754         https://bugs.webkit.org/show_bug.cgi?id=137773
1755
1756         Reviewed by Carlos Garcia Campos.
1757
1758         Don't update media controls if they are not visible, and
1759         initialize slider to a zero value.
1760
1761         * Modules/mediacontrols/mediaControlsBase.js:
1762         (Controller.prototype.createControls):
1763         (Controller.prototype.handleDurationChange):
1764         (Controller.prototype.updateProgress):
1765         (Controller.prototype.updateTime):
1766         * Modules/mediacontrols/mediaControlsGtk.js:
1767         (ControllerGtk.prototype.updateTime):
1768
1769 2014-12-09  Sebastian Dröge  <sebastian@centricular.com>
1770
1771         [GStreamer] Add video/mp2t as alternative mimetype for MPEG TS
1772         https://bugs.webkit.org/show_bug.cgi?id=139433
1773
1774         Reviewed by Philippe Normand.
1775
1776         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1777         (WebCore::mimeTypeCache):
1778         It's used e.g. on http://www.jwplayer.com/html5/mediasource/ .
1779
1780 2014-12-09  Jeremy Jones  <jeremyj@apple.com>
1781
1782         Enable activating optimized fullscreen mode from standard fulscreen mode.
1783         https://bugs.webkit.org/show_bug.cgi?id=139137
1784
1785         Reviewed by Jer Noble.
1786
1787         Going from standard fullscreen mode to optimized fullscreen mode requires the ability to
1788         update the fullscreen mode in HTMLMediaElement and a new standard-and-optimized-fullscreen mode.
1789
1790         This change KVO observes AVKit's optimizedFullscreenActive and forwards the change down to HTMLMediaElement so it can adjust behavior appropriately.
1791         It also hides the standard fullscreen window when going into this mode.
1792         When exiting fullscreen from standard-and-optimized, first exit fullscreen immediately, then stopOptimizedFullscreen, and notify of completion when
1793         optimizedFullscreen goes inactive.
1794
1795         * Modules/mediacontrols/MediaControlsHost.cpp:
1796         (WebCore::MediaControlsHost::fullscreenMode):
1797             Treat VideoFullscreenModeStandardAndOptimized as a kind of optimized mode.
1798         * WebCore.exp.in: New export for WebVideoFullscreenModelVideoElement::fullscreenModeChanged
1799         * html/HTMLMediaElement.cpp:
1800         (WebCore::HTMLMediaElement::displayType):
1801             Treat VideoFullscreenModeStandardAndOptimized as a kind of optimized mode.
1802         * html/HTMLMediaElement.h: Add new fullscreen mode.
1803         (WebCore::HTMLMediaElement::fullscreenModeChanged): Update fullscreen mode so it does optimized fullscreen mode behaviors when applicable.
1804         * platform/ios/WebVideoFullscreenInterfaceAVKit.h: Declare setOptimizedActive
1805         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1806         (-[WebAVVideoLayer setPlayerViewController:]): observe optimizedFullscreenActive
1807         (-[WebAVVideoLayer observeValueForKeyPath:ofObject:change:context:]): respond to changes to optimizedFullscreenActive
1808         (WebVideoFullscreenInterfaceAVKit::WebVideoFullscreenInterfaceAVKit): Init members.
1809         (WebVideoFullscreenInterfaceAVKit::playerController): 
1810             Give player controller a reference to the WebVideoFullscreenInterface so it can pass along mode change state.
1811         (WebVideoFullscreenInterfaceAVKit::enterFullscreen): Handle new fullscreen modes.
1812         (WebVideoFullscreenInterfaceAVKit::exitFullscreen): ditto
1813         (WebVideoFullscreenInterfaceAVKit::invalidate): ditto
1814         (WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): ditto
1815         (WebVideoFullscreenInterfaceAVKit::setOptimizedActive): Handle changes to fullscreen mode.
1816             Also handle the case that exiting fullscreen happend when optimized mode ends.
1817         * platform/ios/WebVideoFullscreenModel.h: declare fullscreenModeChanged()
1818         * platform/ios/WebVideoFullscreenModelVideoElement.h: declare fullscreenModeChanged()
1819         * platform/ios/WebVideoFullscreenModelVideoElement.mm: add fullscreenModeChanged()
1820         (WebVideoFullscreenModelVideoElement::WebVideoFullscreenModelVideoElement): Init members.
1821         (WebVideoFullscreenModelVideoElement::fullscreenModeChanged): Added. Update video element fullscreen mode.
1822
1823 2014-12-08  Benjamin Poulain  <bpoulain@apple.com>
1824
1825         Fix the iOS build after r177002
1826
1827         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
1828         (WebCore::Extensions3DOpenGL::supportsExtension):
1829
1830 2014-12-07  Roger Fong  <roger_fong@apple.com>
1831
1832         Implementation EXT_sRGB as a WebGL1 extension.
1833         https://bugs.webkit.org/show_bug.cgi?id=109332.
1834         <rdar://problem/17363470>
1835
1836         Reviewed by Dean Jackson.
1837
1838         Tested by:
1839         webgl/1.0.3/conformance/webgl/ext-sRGB.html
1840         fast/canvas/webgl/constants.html
1841
1842         This patch implements the SRGB extension for WebGL1.
1843         Details of the extension specification are outlined here: 
1844         https://www.khronos.org/registry/webgl/extensions/EXT_sRGB/
1845
1846         * CMakeLists.txt:
1847         * DerivedSources.cpp:
1848         * DerivedSources.make:
1849         * WebCore.vcxproj/WebCore.vcxproj:
1850         * WebCore.vcxproj/WebCore.vcxproj.filters:
1851         * WebCore.xcodeproj/project.pbxproj:
1852         * bindings/js/JSWebGLRenderingContextCustom.cpp:
1853         (WebCore::toJS):
1854         * html/canvas/EXTsRGB.cpp: Added.
1855         (WebCore::EXTsRGB::EXTsRGB):
1856         (WebCore::EXTsRGB::~EXTsRGB):
1857         (WebCore::EXTsRGB::getName):
1858         * html/canvas/EXTsRGB.h: Added.
1859         * html/canvas/EXTsRGB.idl: Added.
1860         * html/canvas/WebGLExtension.h:
1861         * html/canvas/WebGLFramebuffer.cpp:
1862         (WebCore::WebGLFramebuffer::checkStatus):
1863         * html/canvas/WebGLRenderingContext.cpp:
1864         (WebCore::WebGLRenderingContext::getExtension):
1865         (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
1866         (WebCore::WebGLRenderingContext::getSupportedExtensions):
1867         (WebCore::WebGLRenderingContext::renderbufferStorage):
1868         (WebCore::WebGLRenderingContext::validateTexFuncFormatAndType):
1869         * html/canvas/WebGLRenderingContext.h:
1870         * html/canvas/WebGLRenderingContext.idl:
1871         * platform/graphics/Extensions3D.h:
1872         * platform/graphics/GraphicsContext3D.cpp:
1873         (WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
1874         (WebCore::GraphicsContext3D::getClearBitsByFormat):
1875         (WebCore::GraphicsContext3D::getChannelBitsByFormat):
1876         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
1877         (WebCore::Extensions3DOpenGL::supportsExtension):
1878         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
1879         (WebCore::GraphicsContext3D::texImage2D):
1880
1881 2014-12-08  Dean Jackson  <dino@apple.com>
1882
1883         [Apple] Use Accelerate framework to speed-up FEGaussianBlur
1884         https://bugs.webkit.org/show_bug.cgi?id=139310
1885         <rdar://problem/18434594>
1886
1887         Reviewed by Simon Fraser.
1888
1889         Using Apple's Accelerate framework provides faster blurs
1890         than the parallel jobs approach, especially since r168577
1891         which started performing retina-accurate filters.
1892
1893         Using Accelerate.framework to replace the existing box blur (what
1894         we use to approximate Gaussian blurs) gets about a 20% speedup on
1895         desktop class machines, but between a 2x-6x speedup on iOS hardware.
1896         Obviously this depends on the size of the content being blurred,
1897         but it is still good.
1898
1899         The change is to intercept the platformApply function on
1900         FEGaussianBlur and send it off to Accelerate.
1901
1902         There is an interactive performance test: PerformanceTests/Interactive/blur-filter-timing.html
1903
1904         * platform/graphics/filters/FEGaussianBlur.cpp:
1905         (WebCore::kernelPosition): Move this to a file static function from the .h.
1906         (WebCore::accelerateBoxBlur): The Accelerate implementation.
1907         (WebCore::standardBoxBlur): The default generic/standard implementation.
1908         (WebCore::FEGaussianBlur::platformApplyGeneric): Use accelerate or the default form.
1909         (WebCore::FEGaussianBlur::platformApply): Don't try the parallelJobs approach if Accelerate is available.
1910         * platform/graphics/filters/FEGaussianBlur.h:
1911         (WebCore::FEGaussianBlur::kernelPosition): Deleted. Move into the .cpp.
1912
1913 2014-12-08  Beth Dakin  <bdakin@apple.com>
1914
1915         Copy and Lookup menu items should be disabled when something is not copyable
1916         https://bugs.webkit.org/show_bug.cgi?id=139423
1917
1918         Reviewed by Tim Horton.
1919
1920         New function allowCopy() indicates whether the HitTestResult would allow itself to 
1921         be copied onto the pasteboard.
1922         * WebCore.exp.in:
1923         * rendering/HitTestResult.cpp:
1924         (WebCore::HitTestResult::allowsCopy):
1925         * rendering/HitTestResult.h:
1926
1927 2014-12-08  Chris Dumez  <cdumez@apple.com>
1928
1929         Move 'text-shadow' check from RenderStyle::changeRequiresLayout() to changeAffectsVisualOverflow()
1930         https://bugs.webkit.org/show_bug.cgi?id=139420
1931
1932         Reviewed by Simon Fraser.
1933
1934         Move 'text-shadow' check from RenderStyle::changeRequiresLayout() to
1935         changeAffectsVisualOverflow(). This has no behavior change as
1936         changeRequiresLayout() calls changeAffectsVisualOverflow(). However,
1937         this is clearer as text-shadow affects the visual overflow (similarly
1938         to box-shadow).
1939
1940         No new tests, no behavior change.
1941
1942         * rendering/style/RenderStyle.cpp:
1943         (WebCore::RenderStyle::changeAffectsVisualOverflow):
1944         (WebCore::RenderStyle::changeRequiresLayout):
1945
1946 2014-12-08  Anders Carlsson  <andersca@apple.com>
1947
1948         Fix typo.
1949
1950         * storage/StorageNamespaceImpl.cpp:
1951         (WebCore::localStorageNamespaceMap):
1952
1953 2014-12-08  Anders Carlsson  <andersca@apple.com>
1954
1955         WebStorageNamespaceProvider should create StorageNamespaceImpls
1956         https://bugs.webkit.org/show_bug.cgi?id=139419
1957
1958         Reviewed by Andreas Kling.
1959
1960         * WebCore.exp.in:
1961         Export new symbols.
1962
1963         * WebCore.xcodeproj/project.pbxproj:
1964         Make StorageNamespaceImpl.h a private header.
1965
1966         * storage/StorageNamespaceImpl.cpp:
1967         (WebCore::localStorageNamespaceMap):
1968         Use NeverDestroyed.
1969
1970         (WebCore::StorageNamespaceImpl::createSessionStorageNamespace):
1971         (WebCore::StorageNamespaceImpl::getOrCreateLocalStorageNamespace):
1972         Add new functions for creating namespaces.
1973
1974         (WebCore::StorageNamespaceImpl::localStorageNamespace):
1975         (WebCore::StorageNamespaceImpl::sessionStorageNamespace):
1976         Call the new functions.
1977
1978         * storage/StorageNamespaceImpl.h:
1979         Add new members, make sure to deprecate the ones we don't want anyone calling.
1980
1981         * storage/StorageNamespaceProvider.cpp:
1982         (WebCore::StorageNamespaceProvider::localStorageNamespace):
1983         (WebCore::StorageNamespaceProvider::transientLocalStorageNamespace):
1984         * storage/StorageNamespaceProvider.h:
1985         Pass the quota when creating storage namespaces.
1986
1987 2014-12-08  Benjamin Poulain  <benjamin@webkit.org>
1988
1989         Move the new :nth-child() and :nth-last-child() out of experimental
1990         https://bugs.webkit.org/show_bug.cgi?id=139329
1991
1992         Reviewed by Andreas Kling.
1993
1994         The code is stable.
1995         Feedback has only been positive.
1996         All the known issues have been reported to the CSS WG.
1997
1998         The #ifdef don't really work anymore anyway for :nth-child() and :nth-last-child().
1999
2000         * css/CSSSelector.cpp:
2001         (WebCore::CSSSelector::selectorText):
2002         * css/SelectorChecker.cpp:
2003         (WebCore::SelectorChecker::checkOne):
2004
2005 2014-12-08  Benjamin Poulain  <bpoulain@apple.com>
2006
2007         A selector should not match anything if there is a subselector after a non-scrollbar pseudo element
2008         https://bugs.webkit.org/show_bug.cgi?id=139336
2009         rdar://problem/19051623
2010
2011         Reviewed by Andreas Kling.
2012
2013         Tests: fast/css/duplicated-after-pseudo-element.html
2014                fast/css/duplicated-before-pseudo-element.html
2015                fast/css/simple-selector-after-pseudo-element.html
2016
2017         * cssjit/SelectorCompiler.cpp:
2018         (WebCore::SelectorCompiler::constructFragments):
2019         The code filtering out simple selectors was only considering
2020         the relation CSSSelector::SubSelector. That comes from SelectorChecker where
2021         the relation considered is the one from the previous selector.
2022
2023         In this case, the relation is the extracted from the current simple selector,
2024         which is the relation with the following selector.
2025
2026         When a single simple selector was following a pseudo element, the relation evaluated
2027         to descendant/adjacent/direct-adjacent and we were skipping the early return.
2028         That simple selector was evaluated as a regular filter on the element.
2029
2030         In the CSS JIT, we can just remove that test altogether. Fragments are built one after
2031         the other. By definition, the evaluated simple selector belong to the current fragment.
2032
2033 2014-12-08  Benjamin Poulain  <benjamin@webkit.org>
2034
2035         Fix the parsing of advanced :lang() after r176902
2036         https://bugs.webkit.org/show_bug.cgi?id=139379
2037
2038         Reviewed by Andreas Kling.
2039
2040         There were two mistakes that were only caught in debug:
2041
2042         The lexer was not calling isIdentifierStart() before parseIdentifier().
2043         Some identifier we were parsing should have been invalid.
2044         This was caught with an assertion in parseIdentifier().
2045
2046         The other issue is that we were accumulating pointer to freed memory.
2047         The tokenizer for LANGRANGE was creating a new string with a StringBuilder.
2048         The problem is that CSSParserString does not keep the source string alive.
2049         Consequently, the list of language range was accumulating pointers to dead
2050         StringImpls.
2051
2052         The fix there is to simply extend the token to take the original asterisk character
2053         from the input. That is not elegant but that's efficient and we know
2054         the buffer lifetime.
2055
2056         * css/CSSParser.cpp:
2057         (WebCore::CSSParser::realLex):
2058         * css/CSSGrammar.y.in: Fix the indentation of a language range rule.
2059
2060 2014-12-08  Anders Carlsson  <andersca@apple.com>
2061
2062         Try to fix the 32-bit build.
2063
2064         * WebCore.exp.in:
2065
2066 2014-12-08  Myles C. Maxfield  <mmaxfield@apple.com>
2067
2068         Inline elements whose parents have small line-height are laid out too low
2069         https://bugs.webkit.org/show_bug.cgi?id=139375
2070
2071         Reviewed by Dave Hyatt.
2072
2073         This is a port of the Blink patch at
2074         https://src.chromium.org/viewvc/blink?revision=155253&view=revision.
2075
2076         When laying out inline elements, we try to align leaf children's parents'
2077         baselines across the entire line. However, if you set line-height: 0px on a
2078         span, the entire InlineBox which represents that span will have a height of
2079         0, and therefore be laid out entirely on the baseline. In addition, we will
2080         try to vertically center the leaf text in the span's InlineBox, which means
2081         the leaf text will be vertically centered on the baseline. All the other
2082         major browsers do not have this behavior; instead, they line up the boxes
2083         as you would expect.
2084
2085         This bug led to a rendering problem on the front page of the New York Times.
2086
2087         Here is the ChangeLog from the Blink patch:
2088
2089         Fix baseline position when it is outside the element's box
2090
2091         Specifically, we shouldn't force the baseline to be inside the element. IE
2092         and FF don't do this, and it's incompatible with the CSS spec:
2093         
2094         "The baseline of an 'inline-block' is the baseline of its last line box in
2095         the normal flow, unless it has either no in-flow line boxes or if its
2096         'overflow' property has a computed value other than 'visible', in which case
2097         the baseline is the bottom margin edge."
2098         -- http://www.w3.org/TR/CSS21/visudet.html#leading
2099         
2100         It doesn't have a special case for "baseline is outside of the element's
2101         margin box".
2102         
2103         Test: fast/text/small-line-height.html
2104
2105         * rendering/RenderBlock.cpp:
2106         (WebCore::RenderBlock::baselinePosition):
2107
2108 2014-12-08  Eric Carlson  <eric.carlson@apple.com>
2109
2110         [iOS] YouTube plug-in replacement should support partial urls
2111         https://bugs.webkit.org/show_bug.cgi?id=139400
2112
2113         Reviewed by Alexey Proskuryakov.
2114
2115         * Modules/plugins/YouTubePluginReplacement.cpp:
2116         (WebCore::YouTubePluginReplacement::youTubeURL): Call Document::completeURL.
2117
2118 2014-12-08  Anders Carlsson  <andersca@apple.com>
2119
2120         Build fix.
2121
2122         * platform/network/soup/CookieJarSoup.cpp:
2123         (WebCore::deleteAllCookiesModifiedSince):
2124
2125 2014-12-08  Andreas Kling  <akling@apple.com>
2126
2127         Roll out r175352.
2128         <https://webkit.org/b/139146>
2129
2130         This change caused some unexpected assertions in line box teardown.
2131
2132         * rendering/RenderBlock.cpp:
2133         (WebCore::RenderBlock::willBeDestroyed):
2134         * rendering/RenderBlock.h:
2135         * rendering/RenderBlockFlow.cpp:
2136         (WebCore::RenderBlockFlow::willBeDestroyed):
2137         * rendering/RenderElement.cpp:
2138         (WebCore::RenderElement::willBeRemovedFromTree):
2139         * rendering/RenderInline.cpp:
2140         (WebCore::RenderInline::willBeDestroyed):
2141         * rendering/RenderReplaced.cpp:
2142         (WebCore::RenderReplaced::willBeDestroyed):
2143         * rendering/RenderReplaced.h:
2144
2145 2014-12-08  Myles C. Maxfield  <mmaxfield@apple.com>
2146
2147         [iOS] Narrow non-breaking space does not fall back to a correct font
2148         https://bugs.webkit.org/show_bug.cgi?id=139335
2149
2150         Reviewed by Enrica Casucci.
2151
2152         Test: fast/text/narrow-non-breaking-space.html
2153
2154         * platform/graphics/ios/FontCacheIOS.mm:
2155         (WebCore::requiresCustomFallbackFont):
2156         (WebCore::FontCache::getCustomFallbackFont):
2157
2158 2014-12-08  Daniel Bates  <dabates@apple.com>
2159
2160         [iOS] Fix the WebKit build with the public SDK
2161
2162         Include header UIKit.h.
2163
2164         * platform/spi/ios/MediaPlayerSPI.h:
2165
2166 2014-12-08  Chris Dumez  <cdumez@apple.com>
2167
2168         Revert r176293 & r176275
2169
2170         Unreviewed, revert r176293 & r176275 changing the Vector API to use unsigned type
2171         instead of size_t. There is some disagreement regarding the long-term direction
2172         of the API and we shouldn’t leave the API partly transitioned to unsigned type
2173         while making a decision.
2174
2175         * WebCore.exp.in:
2176         * bindings/js/JSDOMBinding.h:
2177         (WebCore::jsArray):
2178         * bindings/js/JSWebGLRenderingContextCustom.cpp:
2179         * cssjit/SelectorCompiler.cpp:
2180         * editing/TextIterator.cpp:
2181         (WebCore::SearchBuffer::append):
2182         (WebCore::SearchBuffer::prependContext):
2183         (WebCore::SearchBuffer::search):
2184         (WebCore::SearchBuffer::length):
2185         * html/HTMLFormElement.cpp:
2186         (WebCore::removeFromVector):
2187         * html/parser/HTMLParserIdioms.h:
2188         * html/parser/XSSAuditor.cpp:
2189         * platform/SharedBuffer.cpp:
2190         (WebCore::SharedBuffer::duplicateDataBufferIfNecessary):
2191
2192 2014-12-08  Anders Carlsson  <andersca@apple.com>
2193
2194         Make deleting all cookies after a given date a little more sane
2195         https://bugs.webkit.org/show_bug.cgi?id=139409
2196
2197         Reviewed by Antti Koivisto.
2198
2199         * WebCore.exp.in:
2200         Update exports.
2201
2202         * platform/network/PlatformCookieJar.h:
2203         * platform/network/cf/CookieJarCFNet.cpp:
2204         * platform/network/curl/CookieJarCurl.cpp:
2205         * platform/network/soup/CookieJarSoup.cpp:
2206         Rename deleteAllCookiesModifiedAfterDate to deleteAllCookiesModifiedSince and change it
2207         to take an std::chrono::system_clock::time_point instead.
2208
2209         * platform/network/mac/CookieJarMac.mm:
2210         (WebCore::cookieStorage):
2211         Helper function that returns an NSHTTPCookieStorage given a network session.
2212
2213         (WebCore::deleteAllCookiesModifiedSince):
2214         Get the cookie storage from the network storage instead of just getting the global one.
2215
2216 2014-12-08  Csaba Osztrogonác  <ossy@webkit.org>
2217
2218         URTBF after r176953, add an unreachable return to make GCC happy.
2219
2220         * loader/FrameLoader.cpp:
2221         (WebCore::FrameLoader::subresourceCachePolicy):
2222
2223 2014-12-08  Javier Fernandez  <jfernandez@igalia.com>
2224
2225         [CSS Grid Layout] Grid items must set a new formatting context.
2226         https://bugs.webkit.org/show_bug.cgi?id=139150
2227
2228         Reviewed by David Hyatt.
2229
2230         Grid item's margins must not collapse even when they may be adjoining to
2231         its content's margins. Also, setting a new formatting context prevents any
2232         'float' protruding content on the adjoining grid items.
2233
2234         This patch also renames the expandsToEncloseOverhangingFloats to be more generic now,
2235         determining whether a new formatting context is set or not. This affects not only to
2236         how floats behave, but whether margins should collapse or not.
2237
2238         Tests: fast/css-grid-layout/float-not-protruding-into-next-grid-item.html
2239                fast/css-grid-layout/grid-item-margins-not-collapse.html
2240
2241         * rendering/RenderBlock.cpp:
2242         (WebCore::RenderBlock::avoidsFloats): Using the new createsNewFormattingContext function.
2243         (WebCore::RenderBlock::expandsToEncloseOverhangingFloats): Deleted.
2244         * rendering/RenderBlock.h:
2245         * rendering/RenderBlockFlow.cpp:
2246         (WebCore::RenderBlockFlow::MarginInfo::MarginInfo): Using the new createsNewFormattingContext function.
2247         (WebCore::RenderBlockFlow::rebuildFloatingObjectSetFromIntrudingFloats): Using the new createsNewFormattingContext function.
2248         (WebCore::RenderBlockFlow::layoutBlock): Using the new createsNewFormattingContext function.
2249         (WebCore::RenderBlockFlow::computeOverflow): Using the new createsNewFormattingContext function.
2250         (WebCore::RenderBlockFlow::addOverhangingFloats): Using the new createsNewFormattingContext function.
2251         (WebCore::RenderBlockFlow::needsLayoutAfterRegionRangeChange): Using the new createsNewFormattingContext function.
2252         * rendering/RenderBox.cpp:
2253         (WebCore::RenderBox::createsNewFormattingContext): Added.
2254         (WebCore::RenderBox::avoidsFloats): Removed checks already defined in the new createsNewFormattingContext function.
2255         * rendering/RenderBox.h:
2256         (WebCore::RenderBox::isGridItem): Added.
2257
2258 2014-12-08  Daniel Bates  <dabates@apple.com>
2259
2260         [iOS] Attempt to fix the public SDK build after <https://trac.webkit.org/r176841>
2261         (https://bugs.webkit.org/show_bug.cgi?id=139227)
2262
2263         * platform/spi/ios/AVKitSPI.h:
2264
2265 2014-12-08  Chris Dumez  <cdumez@apple.com>
2266
2267         Stop using ResourceRequest::cachePolicy() in FrameLoader::subresourceCachePolicy()
2268         https://bugs.webkit.org/show_bug.cgi?id=139350
2269
2270         Reviewed by Antti Koivisto.
2271
2272         Stop using ResourceRequest::cachePolicy() in FrameLoader::subresourceCachePolicy()
2273         and use m_loadType instead. ResourceRequest::cachePolicy() is meant to be passed
2274         to the network stack, and isn't supposed to be used as input inside WebCore.
2275
2276         No new tests, no behavior change.
2277
2278         * loader/FrameLoader.cpp:
2279         (WebCore::FrameLoader::subresourceCachePolicy):
2280
2281 2014-12-08  Philippe Normand  <pnormand@igalia.com>
2282
2283         [GTK] UserMedia Permission Request API
2284         https://bugs.webkit.org/show_bug.cgi?id=136449
2285
2286         Reviewed by Carlos Garcia Campos.
2287
2288         Very basic constraints validation support in the GStreamer
2289         MediaStreamCenter. This is needed so the GTK C API tests using the
2290         getUserMedia() API would not time out.
2291
2292         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
2293         (WebCore::MediaStreamCenterGStreamer::~MediaStreamCenterGStreamer):
2294         (WebCore::MediaStreamCenterGStreamer::validateRequestConstraints):
2295         (WebCore::MediaStreamCenterGStreamer::createMediaStream):
2296
2297 2014-12-08  Anders Carlsson  <andersca@apple.com>
2298
2299         Remove ResourceHandle::loadsBlocked()
2300         https://bugs.webkit.org/show_bug.cgi?id=139401
2301
2302         Reviewed by Daniel Bates.
2303
2304         This hasn't returned true since Leopard, so get rid of it.
2305
2306         * page/Chrome.cpp:
2307         (WebCore::Chrome::canRunModalNow):
2308         * platform/network/ResourceHandle.h:
2309         * platform/network/cf/ResourceHandleCFNet.cpp:
2310         (WebCore::ResourceHandle::loadsBlocked): Deleted.
2311         * platform/network/curl/ResourceHandleCurl.cpp:
2312         (WebCore::ResourceHandle::loadsBlocked): Deleted.
2313         * platform/network/mac/ResourceHandleMac.mm:
2314         (WebCore::ResourceHandle::loadsBlocked): Deleted.
2315         * platform/network/soup/ResourceHandleSoup.cpp:
2316         (WebCore::ResourceHandle::loadsBlocked): Deleted.
2317
2318 2014-12-08  Chris Fleizach  <cfleizach@apple.com>
2319
2320         AX: iOS: VoiceOver gets hung on some websites consistently.
2321         https://bugs.webkit.org/show_bug.cgi?id=139331
2322
2323         Reviewed by Mario Sanchez Prada.
2324
2325         iFrames are attachments on iOS, but they do not have attachment views. As a result, 
2326         WebCore would return incorrect information for the element count and index of children elements.
2327
2328         No tests. Bug only manifests itself when iOS accessibility frameworks call into WebCore.
2329
2330         * accessibility/AccessibilityMockObject.h:
2331         (WebCore::AccessibilityMockObject::isDetachedFromParent):
2332         * accessibility/AccessibilityObject.h:
2333         (WebCore::AccessibilityObject::isDetachedFromParent):
2334         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
2335         (-[WebAccessibilityObjectWrapper accessibilityElementCount]):
2336         (-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):
2337         (-[WebAccessibilityObjectWrapper indexOfAccessibilityElement:]):
2338         (-[WebAccessibilityObjectWrapper accessibilityContainer]):
2339
2340 2014-12-08  Doron Wloschowsky  <doron_wloschowsky@scee.net>
2341
2342         Webkit using Harfbuzz does not display Arabic script correctly
2343         https://bugs.webkit.org/show_bug.cgi?id=136337
2344
2345         Reviewed by Carlos Garcia Campos.
2346
2347         Using reinterpret_cast to convert hb_codepoint_t* into UChar*
2348         doesn't work on big endian systems.
2349
2350         * platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:
2351         (WebCore::harfBuzzGetGlyph):
2352
2353 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
2354
2355         [GStreamer] Major cleanup of AudioDestination implementation
2356         https://bugs.webkit.org/show_bug.cgi?id=139370
2357
2358         Reviewed by Philippe Normand.
2359
2360         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
2361         (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
2362         Add an audioresample element before the audio sink. The audio sink
2363         might not be able to handle our sampling rate.
2364
2365         (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
2366         (WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
2367         (WebCore::AudioDestinationGStreamer::stop):
2368         (WebCore::AudioDestinationGStreamer::finishBuildingPipelineAfterWavParserPadReady): Deleted.
2369         Don't use a wavparse element but directly link the raw audio from
2370         the source to the audio sink.
2371
2372         (WebCore::AudioDestinationGStreamer::start):
2373         Catch errors when going to PLAYING early, we might not get an error
2374         message.
2375
2376         * platform/audio/gstreamer/AudioDestinationGStreamer.h:
2377         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
2378         (getGStreamerMonoAudioCaps):
2379         (webKitWebAudioSrcConstructed):
2380         (webKitWebAudioSrcChangeState):
2381         Don't use a WAV encoder but directly output raw audio. Also don't
2382         include a unneeded audioconvert element before the interleave.
2383
2384         (webKitWebAudioSrcLoop):
2385         Add timestamps and durations to the output buffers, map them in
2386         READWRITE mode and actually keep them mapped until we're sure
2387         nothing is actually writing into them.
2388
2389         (webKitWebAudioSrcLoop):
2390         Pause the task on errors instead of continuously calling it again
2391         immediately.
2392
2393 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
2394
2395         [GStreamer] Use gst_message_parse_buffering()
2396         https://bugs.webkit.org/show_bug.cgi?id=139365
2397
2398         Reviewed by Philippe Normand.
2399
2400         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2401         (WebCore::MediaPlayerPrivateGStreamer::processBufferingStats):
2402         Use gst_message_parse_buffering() instead of manually getting
2403         the percentage from the message's structure. While the latter
2404         is supposed to work and part of the ABI stability guarantee,
2405         it's just not nice and overly complicated.
2406
2407 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
2408
2409         [GStreamer] Minor cleanup of the AudioFileReader implementation
2410         https://bugs.webkit.org/show_bug.cgi?id=139367
2411
2412         Reviewed by Philippe Normand.
2413
2414         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
2415         (WebCore::AudioFileReader::~AudioFileReader):
2416         Don't call gst_bus_remove_signal_watch(), the source was already
2417         destroyed together with the main context and doing it again here
2418         will give a g_critical().
2419
2420         (WebCore::AudioFileReader::handleSample):
2421         Calculate the number of samples from the actual buffer size
2422         and the bytes-per-frame instead of the buffer duration. Using
2423         the buffer duration can lead to rounding errors and might cause
2424         too few samples to be copied over later.
2425
2426         (WebCore::AudioFileReader::handleMessage):
2427         Set the pipeline to GST_STATE_NULL immediately when receiving
2428         errors to prevent other follow-up error messages from propagating
2429         through the bus and spamming the user's terminal with g_warnings().
2430
2431         (WebCore::AudioFileReader::handleNewDeinterleavePad):
2432         Sync the state of the queue and sink after deinterleave with
2433         the parent state instead of just setting them to READY. That
2434         way we potentially go to PAUSED state a bit earlier already
2435         and prevent a potential race condition that could cause buffers
2436         to arrive in the new elements in READY state already (which would
2437         fail).
2438
2439         (WebCore::AudioFileReader::plugDeinterleave):
2440         Handle multiple decodebin source pads by ignoring all following
2441         ones just in case there are multiple for whatever reason.
2442
2443         (WebCore::AudioFileReader::decodeAudioForBusCreation):
2444         Catch errors from going to PAUSED state early. We might not
2445         get a error message at all if we're unlucky.
2446
2447         (WebCore::AudioFileReader::plugDeinterleave):
2448         (WebCore::AudioFileReader::createBus):
2449         (WebCore::AudioFileReader::handleSample):
2450         Downmix to mono if required instead of just using the front
2451         left channel and claiming it is mono. Downmixing from stereo
2452         to mono will mix both channels instead of just taking the left.
2453
2454 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
2455
2456         [GStreamer] Handle CLOCK_LOST and LATENCY messages
2457         https://bugs.webkit.org/show_bug.cgi?id=139341
2458
2459         Reviewed by Philippe Normand.
2460
2461         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2462         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
2463         Handle CLOCK_LOST message by shortly going back to PAUSED state
2464         and then to PLAYING again to let the pipeline select a new clock
2465         for us.
2466         This can happen if the stream that ends in a sink that provides
2467         the current clock disappears, for example if the audio sink
2468         provides the clock and the audio stream is disabled. It also
2469         happens relatively often with HTTP adaptive streams when switching
2470         between different variants of a stream.
2471
2472         Also handle the LATENCY message by triggering the default GStreamer
2473         mechanism to update the latency. This can happen if the latency of
2474         live elements changes, or for one reason or another a new live element
2475         is added or removed from the pipeline.
2476
2477 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
2478
2479         [GStreamer] Use audio-filter property on GStreamer >= 1.4.2
2480         https://bugs.webkit.org/show_bug.cgi?id=139360
2481
2482         Reviewed by Philippe Normand.
2483
2484         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2485         (WebCore::MediaPlayerPrivateGStreamer::createAudioSink):
2486         (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
2487         Since 1.4.0 there is an audio-filter property we can use to place
2488         the pitch-preserving filter at a more canonical position inside
2489         the pipeline. Since 1.4.2 this property also handles all necessary
2490         conversions for us.
2491         This simplifies our sink code a bit because we don't have to create
2492         a custom sink bin anymore.
2493
2494 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
2495
2496         [GStreamer] Add video/flv to the list of supported mimetypes
2497         https://bugs.webkit.org/show_bug.cgi?id=139344
2498
2499         Reviewed by Gustavo Noronha Silva.
2500
2501         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2502         (WebCore::mimeTypeCache):
2503         Add video/flv additional to video/x-flv to the list of supported
2504         mimetypes. It's used on some websites, e.g.
2505         http://www.jwplayer.com/html5/formats/
2506
2507 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
2508
2509         [GStreamer] Remove GStreamer 0.10 #ifdefs.
2510         https://bugs.webkit.org/show_bug.cgi?id=138921
2511
2512         Reviewed by Philippe Normand.
2513
2514         * platform/graphics/gstreamer/GStreamerUtilities.cpp:
2515         (WebCore::initializeGStreamer):
2516         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2517         (WebCore::MediaPlayerPrivateGStreamer::buffered):
2518         Remove GStreamer 0.10 #ifdefs, we depend on >= 1.0.3 at least.
2519
2520 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
2521
2522         [GStreamer] Add application/x-mpegurl to the list of supported mimetypes.
2523         https://bugs.webkit.org/show_bug.cgi?id=139343
2524
2525         Reviewed by Gustavo Noronha Silva.
2526
2527         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2528         (WebCore::mimeTypeCache):
2529         It's an alternative mimetype for the already supported
2530         application/vnd.apple.mpegurl (aka HLS) and adding it
2531         allows all streams on http://www.jwplayer.com/html5/hls/
2532         to be played.
2533
2534 2014-12-07  Gwang Yoon Hwang  <yoon@igalia.com>
2535
2536         [TextureMapper] Normalize pattern transform for pattern compositing
2537         https://bugs.webkit.org/show_bug.cgi?id=139374
2538
2539         Reviewed by Martin Robinson.
2540
2541         In CoordGfx/TexMapGL, pattern compositing (for background image) uses
2542         the patternTransform shader uniform. However, current implementation
2543         miscalculates its transform matrix. It uses simple rectToRect
2544         transformationMatrix which produces unnormalized garbage term.
2545         This causes unexpected behavior at the fragmentation stage in some
2546         mobile GPUs.
2547
2548         It should calculate its scale based on tileSize and contentSize,
2549         and its position based on tilePhase and contentSize.
2550
2551         No new tests because the bug only occurs on some mobile GPUs.
2552
2553         * platform/graphics/texmap/TextureMapperLayer.cpp:
2554         (WebCore::TextureMapperLayer::computePatternTransformIfNeeded):
2555
2556 2014-12-07  Youenn Fablet  <youenn.fablet@crf.canon.fr>
2557
2558         [Soup][Curl] HTTP header values should be treated as latin1, not UTF-8
2559         https://bugs.webkit.org/show_bug.cgi?id=128739
2560
2561         Reviewed by Martin Robinson.
2562
2563         Removed UTF-8 conversion of HTTP header values (SOUP and CURL).
2564         Removed unnecessary UTF-8 conversion of HTTP header names (SOUP).
2565         Changed conversion of HTTP method from UTF-8 to ASCII (SOUP and CURL).
2566         Added explicit UTF-8 conversion of Content-Disposition header to compute download suggested filename. 
2567
2568         Test: http/tests/xmlhttprequest/response-special-characters.html
2569
2570         * platform/network/curl/CurlDownload.cpp:
2571         (WebCore::CurlDownload::headerCallback): Removed header conversion.
2572         * platform/network/curl/ResourceHandleManager.cpp:
2573         (WebCore::headerCallback): Ditto.
2574         (WebCore::ResourceHandleManager::initializeHandle): Changed HTTP method conversion to ASCI.
2575         * platform/network/soup/ResourceRequestSoup.cpp:
2576         (WebCore::ResourceRequest::updateFromSoupMessageHeaders): Removed header conversion.
2577         (WebCore::ResourceRequest::updateSoupMessage): Changed HTTP method conversion to ASCII.
2578         (WebCore::ResourceRequest::toSoupMessage): Ditto.
2579         (WebCore::ResourceRequest::updateFromSoupMessage):
2580         * platform/network/soup/ResourceResponseSoup.cpp:
2581         (WebCore::ResourceResponse::updateFromSoupMessageHeaders): Rmoved header conversion.
2582         (WebCore::ResourceResponse::platformSuggestedFilename): Added explicit conversion of contentDisposition to UTF-8.
2583
2584 2014-12-07  Dan Bernstein  <mitz@apple.com>
2585
2586         Introduce and deploy a function that allocates and returns an instance of a soft-linked class
2587         https://bugs.webkit.org/show_bug.cgi?id=139348
2588
2589         Reviewed by Anders Carlsson.
2590
2591         In [[getFooClass() alloc] init*], the type of the result of +alloc is id, so the compiler
2592         picks an arbitrary declaration of init*, not necessarily the Foo one. This can then lead
2593         to warnings or errors if the types or attributes don’t match, or to runtime errors if Foo
2594         doesn’t even have the expected initializer. The new allocFooInstance() returns a Foo *, thus
2595         avoiding the ambiguity.
2596
2597         * editing/mac/DataDetection.mm:
2598         (WebCore::DataDetection::detectItemAroundHitTestResult):
2599         * platform/audio/ios/MediaSessionManagerIOS.mm:
2600         (-[WebMediaSessionHelper allocateVolumeView]):
2601         (-[WebMediaSessionHelper startMonitoringAirPlayRoutes]):
2602         * platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
2603         (WebCore::AudioSourceProviderAVFObjC::createMix):
2604         * platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:
2605         * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
2606         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2607         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
2608         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
2609         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
2610         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
2611         (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
2612         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
2613         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
2614         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):
2615         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::streamSession):
2616         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
2617         (WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
2618         (WebCore::SourceBufferPrivateAVFObjC::abort):
2619         (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
2620
2621         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2622         (PlatformCALayerMac::PlatformCALayerMac): Cast the result of +alloc to an instance of the
2623         expected class.
2624
2625         * platform/graphics/mac/FontMac.mm:
2626         (WebCore::showLetterpressedGlyphsWithAdvances):
2627         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2628         (WebCore::MediaPlayerPrivateQTKit::createQTMovie):
2629         (WebCore::MediaPlayerPrivateQTKit::createQTMovieLayer):
2630         * platform/graphics/mac/PDFDocumentImageMac.mm:
2631         (WebCore::PDFDocumentImage::createPDFDocument):
2632         * platform/ios/PlatformSpeechSynthesizerIOS.mm:
2633         (SOFT_LINK_CONSTANT):
2634         (-[WebSpeechSynthesisWrapper speakUtterance:]):
2635         * platform/ios/WebCoreMotionManager.mm:
2636         (-[WebCoreMotionManager initializeOnMainThread]):
2637         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
2638         (-[WebAVPlayerController init]):
2639         (WebVideoFullscreenInterfaceAVKit::setupFullscreen):
2640         * platform/mac/ContentFilterMac.mm:
2641         (WebCore::ContentFilter::ContentFilter):
2642
2643         * platform/mac/SoftLinking.h: Added alloc##className##instance().
2644
2645         * platform/mac/WebVideoFullscreenController.mm:
2646         (-[WebVideoFullscreenController setVideoElement:]):
2647         * platform/mediastream/mac/AVAudioCaptureSource.mm:
2648         (WebCore::AVAudioCaptureSource::setupCaptureSession):
2649         * platform/mediastream/mac/AVCaptureDeviceManager.mm:
2650         (WebCore::AVCaptureDeviceManager::verifyConstraintsForMediaType):
2651         * platform/mediastream/mac/AVMediaCaptureSource.mm:
2652         (WebCore::AVMediaCaptureSource::setupSession):
2653         * platform/mediastream/mac/AVVideoCaptureSource.mm:
2654         (WebCore::AVVideoCaptureSource::setupCaptureSession):
2655         * platform/network/ios/QuickLook.mm:
2656         (WebCore::registerQLPreviewConverterIfNeeded):
2657         (WebCore::QuickLookHandle::QuickLookHandle):
2658
2659 2014-12-07  Carlos Garcia Campos  <cgarcia@igalia.com>
2660
2661         [GTK] Add Since tags to GObject DOM bindings documentation
2662         https://bugs.webkit.org/show_bug.cgi?id=139356
2663
2664         Reviewed by Gustavo Noronha Silva.
2665
2666         Now that we have a small stable API, and new symbols are added
2667         manually, we can also add the version to the symbols file, that
2668         the code generator can ue to add Since tags to the gtk-doc.
2669
2670         * bindings/gobject/webkitdom.symbols: Add @2.8 to the new symbols
2671         added for 2.8.
2672         * bindings/scripts/CodeGeneratorGObject.pm:
2673         (GenerateConstants): Add Since tag to gtk-doc if there's a version
2674         number for the symbol in the .symbols file.
2675         (GenerateFunction): Ditto.
2676         (ReadStableSymbols):
2677
2678 2014-12-07  Carlos Garcia Campos  <cgarcia@igalia.com>
2679
2680         [GTK] Missing API detected in GObject DOM bindings after r176630
2681         https://bugs.webkit.org/show_bug.cgi?id=139201
2682
2683         Reviewed by Gustavo Noronha Silva.
2684
2685         Bring back WebKitDOMDeprecated and add custom versions of the
2686         removed symbols as deprecated in favor of the new ones. Also add
2687         the new ones as stable API.
2688
2689         * CMakeLists.txt: Pass a list of additional dependencies to GENERATE_BINDINGS.
2690         * PlatformGTK.cmake: Ditto.
2691         * PlatformMac.cmake: Ditto.
2692         * bindings/gobject/WebKitDOMDeprecated.cpp: Added.
2693         (webkit_dom_html_element_get_inner_html):
2694         (webkit_dom_html_element_set_inner_html):
2695         (webkit_dom_html_element_get_outer_html):
2696         (webkit_dom_html_element_set_outer_html):
2697         * bindings/gobject/WebKitDOMDeprecated.h: Added.
2698         * bindings/gobject/WebKitDOMDeprecated.symbols: Added.
2699         * bindings/gobject/webkitdom.symbols:
2700
2701 2014-12-06  Csaba Osztrogonác  <ossy@webkit.org>
2702
2703         URTBF after r176915.
2704
2705         DisplayRefreshMonitorClient is the parent class of GraphicsLayerUpdater
2706         only if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) is true, so override
2707         is incorrect if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) is false.
2708
2709         That's why r176915 broke the build on non PLATFORM(COCOA) platforms,
2710         such as GTK, EFL, Apple Windows.
2711
2712         Additionally displayRefreshFired is only used inside USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
2713         guard, so there is no reason to define it for non COCOA platforms.
2714
2715         * platform/graphics/GraphicsLayerUpdater.cpp:
2716         * platform/graphics/GraphicsLayerUpdater.h:
2717
2718 2014-12-06  Anders Carlsson  <andersca@apple.com>
2719
2720         Fix build with newer versions of clang.
2721         rdar://problem/18978733
2722
2723         Add a bunch of overrides since we're not disabling the "inconsistent missing override" warning in WebKit.
2724
2725         * page/scrolling/AsyncScrollingCoordinator.h:
2726         * page/scrolling/ScrollingStateFixedNode.h:
2727         * page/scrolling/ScrollingStateFrameScrollingNode.h:
2728         * page/scrolling/ScrollingStateOverflowScrollingNode.h:
2729         * page/scrolling/ScrollingStateStickyNode.h:
2730         * page/scrolling/ScrollingTreeFrameScrollingNode.h:
2731         (WebCore::ScrollingTreeFrameScrollingNode::updateLayersAfterDelegatedScroll): Deleted.
2732         * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
2733         * platform/graphics/GraphicsLayerUpdater.h:
2734         * platform/mac/ScrollbarThemeMac.h:
2735         (WebCore::ScrollbarThemeMac::supportsControlTints): Deleted.
2736         (WebCore::ScrollbarThemeMac::maxOverlapBetweenPages): Deleted.
2737         * rendering/RenderLayerCompositor.h:
2738         * rendering/RenderSnapshottedPlugIn.h:
2739
2740 2014-12-06  Anders Carlsson  <andersca@apple.com>
2741
2742         Fix build with newer versions of clang.
2743         rdar://problem/18978687
2744
2745         Add a bunch of overrides since we're not disabling the "inconsistent missing override" warning in WebKit.
2746
2747         * html/HTMLElement.h:
2748         * html/HTMLMediaElement.h:
2749         * html/track/VTTCue.h:
2750         * loader/FrameNetworkingContext.h:
2751         (WebCore::FrameNetworkingContext::shouldClearReferrerOnHTTPSToHTTPRedirect): Deleted.
2752         * loader/cache/CachedImage.h:
2753         * page/SuspendableTimer.h:
2754         * platform/Scrollbar.h:
2755         * platform/graphics/InbandTextTrackPrivate.h:
2756         * rendering/RenderBlockFlow.h:
2757
2758 2014-12-06  Anders Carlsson  <andersca@apple.com>
2759
2760         Follow-up build fix.
2761
2762         * Configurations/Base.xcconfig:
2763
2764 2014-12-06  Anders Carlsson  <andersca@apple.com>
2765
2766         Fix build with newer versions of clang.
2767         rdar://problem/18978689
2768
2769         Disable the "inconsistent missing override" warning due to our use of macros in SVG where it's hard to
2770         know whether we can add an override or not.
2771
2772         Also, cast return values of +alloc to the right type, and add some casts for vector iterator arithmetic.
2773
2774         * Configurations/Base.xcconfig:
2775         * Modules/webdatabase/DatabaseBackendBase.cpp:
2776         (WebCore::guidForOriginAndName):
2777         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
2778         (-[WebAccessibilityObjectWrapper _stringForRange:attributed:]):
2779         * editing/cocoa/HTMLConverter.mm:
2780         (_shadowForShadowStyle):
2781         (HTMLConverter::_addTableForElement):
2782         * platform/graphics/SVGGlyph.cpp:
2783         (WebCore::isCompatibleArabicForm):
2784         * platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
2785         (WebCore::AudioSourceProviderAVFObjC::createMix):
2786         * platform/graphics/mac/FontMac.mm:
2787         (WebCore::showLetterpressedGlyphsWithAdvances):
2788         * platform/ios/PlatformSpeechSynthesizerIOS.mm:
2789         (-[WebSpeechSynthesisWrapper speakUtterance:]):
2790         * platform/ios/WebCoreMotionManager.mm:
2791         (-[WebCoreMotionManager initializeOnMainThread]):
2792         * rendering/RenderTableSection.cpp:
2793         (WebCore::RenderTableSection::spannedRows):
2794         (WebCore::RenderTableSection::spannedColumns):
2795
2796 2014-12-06  peavo@outlook.com  <peavo@outlook.com>
2797
2798         [WinCairo] Compile error, missing guard.
2799         https://bugs.webkit.org/show_bug.cgi?id=139338
2800
2801         Reviewed by Alex Christensen.
2802
2803         There is missing a ENABLE(CSS_SELECTORS_LEVEL4) guard in CSSParser.cpp.
2804
2805         * css/CSSParser.cpp:
2806         (WebCore::CSSParser::realLex):
2807
2808 2014-12-05  Chris Fleizach  <cfleizach@apple.com>
2809
2810         AX: I cannot activate links on the mobile version of news.google.com
2811         https://bugs.webkit.org/show_bug.cgi?id=139330
2812
2813         Reviewed by Simon Fraser.
2814
2815         This website only listens for touch events. VoiceOver normally dispatches click and mouse events,
2816         so on iOS this falls and VoiceOver is not able to activate anything.
2817
2818         The solution here is to dispatch simulated touch down/up events.
2819
2820         Test: platform/ios-simulator/ios-accessibility/press-fires-touch-events.html
2821
2822         * accessibility/AccessibilityObject.cpp:
2823         (WebCore::AccessibilityObject::press):
2824         (WebCore::AccessibilityObject::dispatchTouchEvent):
2825         * accessibility/AccessibilityObject.h:
2826         (WebCore::AccessibilityObject::isDetachedFromParent):
2827         * page/EventHandler.h:
2828         * page/ios/EventHandlerIOS.mm:
2829         (WebCore::EventHandler::dispatchSimulatedTouchEvent):
2830         * platform/ios/PlatformEventFactoryIOS.h:
2831         * platform/ios/PlatformEventFactoryIOS.mm:
2832         (WebCore::PlatformTouchEventBuilder::PlatformTouchEventBuilder):
2833         (WebCore::PlatformEventFactory::createPlatformSimulatedTouchEvent):
2834
2835 2014-12-05  Myles C. Maxfield  <mmaxfield@apple.com>
2836
2837         Directional single quotation marks are not rotated in vertical text
2838         https://bugs.webkit.org/show_bug.cgi?id=138526
2839
2840         Reviewed by Darin Adler.
2841
2842         In vertical text, directional single quotation marks are not rotated along with
2843         the rest of the letters.
2844
2845         Test: fast/text/vertical-quotation-marks.html
2846
2847         * platform/graphics/FontGlyphs.cpp:
2848         (WebCore::shouldIgnoreRotation):
2849
2850 2014-12-05  Dhi Aurrahman  <diorahman@rockybars.com>
2851
2852         Implement parser for :lang pseudo class selector arguments that contain wildcard '*' subtags
2853         https://bugs.webkit.org/show_bug.cgi?id=139014
2854
2855         Reviewed by Benjamin Poulain.
2856
2857         Consider each language range in :lang() that consists of an asterisk 
2858         immediately followed by an identifier beginning with an ASCII hyphen 
2859         as a valid input for the selector as specified in [1].
2860
2861         [1] http://dev.w3.org/csswg/selectors4/#the-lang-pseudo 
2862
2863         Test: fast/css/parsing-css-lang.html
2864
2865         * css/CSSGrammar.y.in:
2866         * css/CSSParser.cpp:
2867         (WebCore::CSSParser::realLex):
2868
2869 2014-12-05  Simon Fraser  <simon.fraser@apple.com>
2870
2871         Programmatic scrolling and content changes are not always synchronized
2872         https://bugs.webkit.org/show_bug.cgi?id=139245
2873         rdar://problem/18833612
2874
2875         Reviewed by Anders Carlsson.
2876         
2877         For programmatic scrolls, AsyncScrollingCoordinator::requestScrollPositionUpdate()
2878         calls updateScrollPositionAfterAsyncScroll(), then dispatches the requested
2879         scroll position to the scrolling thread.
2880         
2881         Once the scrolling thread commits, it calls back to the main thread via
2882         scheduleUpdateScrollPositionAfterAsyncScroll(), which schedules a second
2883         call to updateScrollPositionAfterAsyncScroll() on a timer. That's a problem,
2884         because some other scroll may have happened in the meantime; when the timer
2885         fires, it can sometimes restore a stale scroll position.
2886         
2887         Fix by bailing early from scheduleUpdateScrollPositionAfterAsyncScroll()
2888         for programmatic scrolls, since we know that requestScrollPositionUpdate()
2889         already did the updateScrollPositionAfterAsyncScroll().
2890
2891         Test:
2892             ManualTests/programmatic-scroll-flicker.html
2893
2894         * page/FrameView.cpp:
2895         (WebCore::FrameView::reset): nullptr.
2896         (WebCore::FrameView::setScrollPosition): Ditto.
2897         (WebCore::FrameView::setWasScrolledByUser): Ditto.
2898         * page/scrolling/AsyncScrollingCoordinator.cpp:
2899         (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate): Use a local variable for
2900         isProgrammaticScroll just to make sure we use the same value for the duration of this function.
2901         (WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll): Do nothing
2902         if this is a programmatic scroll.
2903
2904 2014-12-05  Timothy Horton  <timothy_horton@apple.com>
2905
2906         Build fix.
2907
2908         * platform/spi/mac/TUCallSPI.h:
2909
2910 2014-12-05  Roger Fong  <roger_fong@apple.com>
2911
2912         [Win] proj files copying over too many resources..
2913         https://bugs.webkit.org/show_bug.cgi?id=139315.
2914         <rdar://problem/19148278>
2915
2916         Reviewed by Brent Fulgham.
2917
2918         * WebCore.vcxproj/WebCore.proj: Don't copy over bin32 build output.
2919
2920 2014-12-05  Timothy Horton  <timothy_horton@apple.com>
2921
2922         Use the system string for telephone number menu
2923         https://bugs.webkit.org/show_bug.cgi?id=139324
2924         <rdar://problem/18726471>
2925
2926         * platform/spi/mac/TUCallSPI.h: Added.
2927         Actually add the SPI header from the last commit.
2928
2929 2014-12-05  Tim Horton  <timothy_horton@apple.com>
2930
2931         Use the system string for telephone number menu
2932         https://bugs.webkit.org/show_bug.cgi?id=139324
2933         <rdar://problem/18726471>
2934
2935         Reviewed by Anders Carlsson.
2936
2937         * WebCore.xcodeproj/project.pbxproj:
2938         * platform/spi/mac/TUCallSPI.h: Added.
2939         Add an SPI header.
2940
2941 2014-12-05  Jer Noble  <jer.noble@apple.com>
2942
2943         [MSE][Mac] Return absolute value of error code from CDMSessionMediaSourceAVFObjC::update().
2944         https://bugs.webkit.org/show_bug.cgi?id=139316
2945
2946         Reviewed by Eric Carlson.
2947
2948         Similarly to our asynchronous error reporting, return the absolute value of the error code.
2949
2950         * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
2951         (WebCore::systemCodeForError):
2952         (WebCore::CDMSessionMediaSourceAVFObjC::update):
2953
2954 2014-12-05  Anders Carlsson  <andersca@apple.com>
2955
2956         Fix build on Windows.
2957
2958         * page/SessionIDHash.h:
2959
2960 2014-12-05  Zalan Bujtas  <zalan@apple.com>
2961
2962         Issue repaint at setUnavailablePluginIndicatorIsHidden() only when embedded object's indicator status changes.
2963         https://bugs.webkit.org/show_bug.cgi?id=139311
2964
2965         Reviewed by Tim Horton.
2966
2967         Not testable.
2968
2969         * rendering/RenderEmbeddedObject.cpp:
2970         (WebCore::RenderEmbeddedObject::setUnavailablePluginIndicatorIsHidden):
2971
2972 2014-12-05  Andreas Kling  <akling@apple.com>
2973
2974         PassRef should deref on destruction if pointee was not moved.
2975         <https://webkit.org/b/139309>
2976
2977         Reviewed by Antti Koivisto.
2978
2979         Remove calls to PassRef::dropRef() since it's no longer necessary to manually
2980         notify PassRef that you didn't move the pointee.
2981
2982         * rendering/RenderElement.cpp:
2983         (WebCore::RenderElement::createFor):
2984         (WebCore::RenderElement::setStyle):
2985         * style/StyleResolveTree.cpp:
2986         (WebCore::Style::resolveTree):
2987
2988 2014-12-05  Benjamin Poulain  <bpoulain@apple.com>
2989
2990         Fix style sharing with the "type" and "readonly" attributes
2991         https://bugs.webkit.org/show_bug.cgi?id=139283
2992
2993         Reviewed by Antti Koivisto.
2994
2995         There are two bugs adressed with this patch:
2996         1) The attributes "type" and "readonly" where only handled correctly
2997            for input elements. For everything else, they could incorrectly
2998            be ignored for style sharing.
2999         2) The handling of attributes was incorrect for selector lists, leading
3000            to various bugs (incorrect style sharing in some cases, disabling
3001            style sharing on valid cases).
3002
3003         For [1], the problem was that attribute checking had been limited to
3004         StyleResolver::canShareStyleWithControl(). That function is for handling
3005         the special states of input element. For any other element, the attributes
3006         were simply ignored.
3007
3008         For [2], there were a bunch of small problems. First, containsUncommonAttributeSelector()
3009         was not recursive, which caused it to ignored any nested selector list. This used to be
3010         correct but since we have advanced selectors we can no longer assumed selectors are not nested.
3011
3012         A second issue was that any attribute in a selector list was causing us to fall back
3013         to the slow case. Now that we have the fast :matches(), we really don't want that.
3014
3015         The function containsUncommonAttributeSelector() was transformed into a recursive function
3016         tracking where we are in the selector.
3017
3018         At the entry point, we start with the flag "startsOnRightmostElement" set to true. The flag is then
3019         updated on the stack of each recursive call.
3020
3021         For example, "webkit > is:matches(freaking > awesome)". We evalute "is" with the flag to true, then recurse
3022         into evaluating "freaking > awesome" with the flag still set to true. When we evalute ">", the flag
3023         is set to false to evaluate any following selectors.
3024         After evaluating "freaking > awesome", we go back to our previous stack frame, and the flag
3025         is back to true and we can continue evaluating with the curren top level state.
3026
3027         From some logging, I discovered that the attribute handling is way too aggressive.
3028         This is not a regression and I cannot fix that easily so I left a fixme.
3029
3030         Tests: fast/css/data-attribute-style-sharing-1.html
3031                fast/css/data-attribute-style-sharing-2.html
3032                fast/css/data-attribute-style-sharing-3.html
3033                fast/css/data-attribute-style-sharing-4.html
3034                fast/css/data-attribute-style-sharing-5.html
3035                fast/css/data-attribute-style-sharing-6.html
3036                fast/css/data-attribute-style-sharing-7.html
3037                fast/css/readonly-attribute-style-sharing-1.html
3038                fast/css/readonly-attribute-style-sharing-2.html
3039                fast/css/readonly-attribute-style-sharing-3.html
3040                fast/css/readonly-attribute-style-sharing-4.html
3041                fast/css/readonly-attribute-style-sharing-5.html
3042                fast/css/readonly-attribute-style-sharing-6.html
3043                fast/css/readonly-attribute-style-sharing-7.html
3044                fast/css/type-attribute-style-sharing-1.html
3045                fast/css/type-attribute-style-sharing-2.html
3046                fast/css/type-attribute-style-sharing-3.html
3047                fast/css/type-attribute-style-sharing-4.html
3048                fast/css/type-attribute-style-sharing-5.html
3049                fast/css/type-attribute-style-sharing-6.html
3050                fast/css/type-attribute-style-sharing-7.html
3051
3052         * css/RuleSet.cpp:
3053         (WebCore::containsUncommonAttributeSelector):
3054         (WebCore::RuleData::RuleData):
3055         (WebCore::selectorListContainsAttributeSelector): Deleted.
3056         * css/StyleResolver.cpp:
3057         (WebCore::StyleResolver::canShareStyleWithControl):
3058         (WebCore::StyleResolver::canShareStyleWithElement):
3059
3060 2014-12-05  Jer Noble  <jer.noble@apple.com>
3061
3062         [WTF] MediaTime should support round-tripping from and to doubles.
3063         https://bugs.webkit.org/show_bug.cgi?id=139248
3064
3065         Reviewed by Eric Carlson.
3066
3067         Check whether the MediaTime's underlying data is floating point before converting
3068         to a CMTime or QTTime.
3069
3070         * platform/graphics/avfoundation/MediaTimeAVFoundation.cpp:
3071         (WebCore::toCMTime):
3072         * platform/graphics/mac/MediaTimeQTKit.mm:
3073         (WebCore::toQTTime):
3074
3075 2014-12-05  Anders Carlsson  <andersca@apple.com>
3076
3077         Add a private browsing mode to MiniBrowser
3078         https://bugs.webkit.org/show_bug.cgi?id=139308
3079
3080         Reviewed by Sam Weinig.
3081
3082         Use -1 instead of -2 for the deleted value.
3083
3084         * page/SessionIDHash.h:
3085
3086 2014-12-05  Chris Dumez  <cdumez@apple.com>
3087
3088         Move 'text-emphasis-style' CSS property to the new StyleBuilder
3089         https://bugs.webkit.org/show_bug.cgi?id=139285
3090
3091         Reviewed by Sam Weinig.
3092
3093         Move 'text-emphasis-style' CSS property to the new StyleBuilder by
3094         using custom code.
3095
3096         No new tests, no behavior change.
3097
3098         * css/CSSPropertyNames.in:
3099         * css/DeprecatedStyleBuilder.cpp:
3100         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
3101         (WebCore::ApplyPropertyTextEmphasisStyle::applyInheritValue): Deleted.
3102         (WebCore::ApplyPropertyTextEmphasisStyle::applyInitialValue): Deleted.
3103         (WebCore::ApplyPropertyTextEmphasisStyle::applyValue): Deleted.
3104         (WebCore::ApplyPropertyTextEmphasisStyle::createHandler): Deleted.
3105         * css/StyleBuilderCustom.h:
3106         (WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle):
3107         (WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle):
3108         (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle):
3109
3110 2014-12-05  Eric Carlson  <eric.carlson@apple.com>
3111
3112         [iOS] remove "enter optimized fullscreen" gesture
3113         https://bugs.webkit.org/show_bug.cgi?id=139301
3114
3115         Reviewed by Jer Noble.
3116
3117         * Modules/mediacontrols/mediaControlsiOS.js:
3118         (ControllerIOS.prototype.handleWrapperTouchStart): Remove gesture recognizer.
3119
3120 2014-12-05  Beth Dakin  <bdakin@apple.com>
3121
3122         rdar://problem/19156353 Additional build-fixes needed.
3123
3124         Rubber-stamped by Tim Horton.
3125
3126         This is a bit unfortunate, but we need to always forward-declare this for now.
3127         * platform/spi/mac/QuickLookMacSPI.h:
3128
3129 2014-12-05  David Kilzer  <ddkilzer@apple.com>
3130
3131         FeatureDefines.xcconfig: Workaround bug in Xcode 5.1.1 when defining ENABLE_WEB_REPLAY
3132         <http://webkit.org/b/139286>
3133
3134         Reviewed by Daniel Bates.
3135
3136         * Configurations/FeatureDefines.xcconfig: Switch back to using
3137         PLATFORM_NAME to workaround a bug in Xcode 5.1.1 on 10.8.
3138
3139 2014-12-05  Eric Carlson  <eric.carlson@apple.com>
3140
3141         [iOS] allow host application to opt-out of alternate fullscreen pt. 2
3142         https://bugs.webkit.org/show_bug.cgi?id=139227
3143
3144         Reviewed by Jer Noble and Anders Carlsson
3145
3146         * WebCore.exp.in: Export HTMLMediaSession::allowsAlternateFullscreen, change the signature of 
3147             WebVideoFullscreenInterfaceAVKit::setupFullscreen.
3148
3149         * platform/ios/WebVideoFullscreenControllerAVKit.mm:
3150         (-[WebVideoFullscreenController enterFullscreen:mode:]): Update for
3151             WebVideoFullscreenInterfaceAVKit::setupFullscreen change.
3152
3153         * platform/ios/WebVideoFullscreenInterfaceAVKit.h: Add argument to setupFullscreen.
3154         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
3155         (WebVideoFullscreenInterfaceAVKit::setupFullscreen): Ditto.
3156
3157 2014-12-05  Shivakumar JM  <shiva.jm@samsung.com>
3158
3159         Fix build warning in WebCore/platform/graphics module
3160         https://bugs.webkit.org/show_bug.cgi?id=139290
3161
3162         Reviewed by Carlos Garcia Campos.
3163
3164         Fix a build warning by removing parameter name from function.
3165
3166         No new tests, no behavior change.
3167
3168         * platform/graphics/freetype/FontCacheFreeType.cpp:
3169         (WebCore::getFamilyNameStringFromFontDescriptionAndFamily):
3170
3171 2014-12-05  sungmin cho  <sungmin17.cho@lge.com>
3172
3173         GraphicsLayerTextureMapper: Rename parameter to be more clear
3174         https://bugs.webkit.org/show_bug.cgi?id=139288
3175
3176         Reviewed by Martin Robinson.
3177
3178         Rename 'media' to 'platformLayer'.
3179
3180         No new tests, no change in functionality.
3181
3182         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
3183         (WebCore::GraphicsLayerTextureMapper::setContentsToPlatformLayer):
3184
3185 2014-12-04  Mark Rowe  <mrowe@apple.com>
3186
3187         Fix pre-Yosemite builds.
3188
3189         The #ifs in two SPI wrapper headers were incorrect, resulting in code being included
3190         prior to Yosemite that required Yosemite to compile.
3191
3192         * platform/spi/mac/NSSharingServicePickerSPI.h:
3193         * platform/spi/mac/NSSharingServiceSPI.h:
3194
3195 2014-12-02  Brian J. Burg  <burg@cs.washington.edu>
3196
3197         Web Inspector: timeline probe records have inaccurate per-probe hit counts
3198         https://bugs.webkit.org/show_bug.cgi?id=138976
3199
3200         Reviewed by Joseph Pecoraro.
3201
3202         Update the signature for breakpointActionProbe to take batchId and sampleId.
3203         Covered by existing test inspector-protocol/debugger/didSampleProbe-multiple-probes.html.
3204
3205         * inspector/InspectorTimelineAgent.cpp:
3206         (WebCore::InspectorTimelineAgent::breakpointActionProbe):
3207         * inspector/InspectorTimelineAgent.h:
3208         * inspector/TimelineRecordFactory.cpp:
3209         (WebCore::TimelineRecordFactory::createProbeSampleData):
3210         * inspector/TimelineRecordFactory.h:
3211
3212 2014-12-04  Adenilson Cavalcanti  <cavalcantii@gmail.com>
3213
3214         Groove/inset/outset borders show solid if the color is black
3215         https://bugs.webkit.org/show_bug.cgi?id=58608
3216
3217         Reviewed by Simon Fraser.
3218
3219         Test: fast/borders/mixed-border-style2.html
3220
3221         This patch will lighten/darken the border side colors, handling
3222         border decoration in a similar way as Firefox does.
3223
3224         * rendering/RenderObject.cpp:
3225         (WebCore::RenderObject::drawLineForBoxSide):
3226         (WebCore::RenderObject::calculateBorderStyleColor):
3227         * rendering/RenderObject.h:
3228
3229 2014-12-04  Chris Dumez  <cdumez@apple.com>
3230
3231         Move 'webkit-aspect-ratio' CSS property to the new StyleBuilder
3232         https://bugs.webkit.org/show_bug.cgi?id=139250
3233
3234         Reviewed by Sam Weinig.
3235
3236         Move 'aspect-ratio' CSS property to the new StyleBuilder by
3237         using custom code.
3238
3239         No new tests, no behavior change.
3240
3241         * css/CSSPropertyNames.in:
3242         * css/DeprecatedStyleBuilder.cpp:
3243         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
3244         (WebCore::ApplyPropertyAspectRatio::applyInheritValue): Deleted.
3245         (WebCore::ApplyPropertyAspectRatio::applyInitialValue): Deleted.
3246         (WebCore::ApplyPropertyAspectRatio::applyValue): Deleted.
3247         (WebCore::ApplyPropertyAspectRatio::createHandler): Deleted.
3248         * css/StyleBuilderCustom.h:
3249         (WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio):
3250         (WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio):
3251         (WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio):
3252
3253 2014-12-04  Timothy Horton  <timothy_horton@apple.com>
3254
3255         Further fix the 32-bit build.
3256
3257         * page/mac/TextIndicatorWindow.mm:
3258         (WebCore::TextIndicatorWindow::setTextIndicator):
3259
3260 2014-12-04  Timothy Horton  <timothy_horton@apple.com>
3261
3262         Fix the 32-bit build.
3263
3264         * page/mac/TextIndicatorWindow.h:
3265         * page/mac/TextIndicatorWindow.mm:
3266         (WebCore::TextIndicatorWindow::setTextIndicator):
3267
3268 2014-12-04  Tim Horton  <timothy_horton@apple.com>
3269
3270         TextIndicator::createWithSelectionInFrame does synchronous IPC in WebKit2
3271         https://bugs.webkit.org/show_bug.cgi?id=139252
3272         <rdar://problem/19140827>
3273
3274         Reviewed by Anders Carlsson.
3275
3276         * WebCore.exp.in:
3277         * page/TextIndicator.cpp:
3278         (WebCore::TextIndicator::createWithSelectionInFrame):
3279         (WebCore::TextIndicator::TextIndicator):
3280         * page/TextIndicator.h:
3281         (WebCore::TextIndicator::selectionRectInWindowCoordinates):
3282         (WebCore::TextIndicator::textBoundingRectInWindowCoordinates):
3283         (WebCore::TextIndicator::selectionRectInScreenCoordinates): Deleted.
3284         (WebCore::TextIndicator::textBoundingRectInScreenCoordinates): Deleted.
3285         Go back to keeping the rects in "window" coordinates.
3286
3287         * page/mac/TextIndicatorWindow.h:
3288         * page/mac/TextIndicatorWindow.mm:
3289         (-[WebTextIndicatorView initWithFrame:textIndicator:margin:]):
3290         (WebCore::TextIndicatorWindow::setTextIndicator):
3291         Let callers pass in the contentRect instead of trying to share the code
3292         to compute it, since it needs to be different for legacy and modern WebKit.
3293
3294 2014-12-04  Oliver Hunt  <oliver@apple.com>
3295
3296         Serialization of MapData object provides unsafe access to internal types
3297         https://bugs.webkit.org/show_bug.cgi?id=138653
3298
3299         Reviewed by Geoffrey Garen.
3300
3301         We now keep the value portion of the key/value pair in MapData as a
3302         separate stack. This allows us to maintain the spec semantic of
3303         "atomic" serialisation of the key/value pair without retaining the
3304         use of a potentially invalid iterator.
3305
3306         * bindings/js/SerializedScriptValue.cpp:
3307         (WebCore::CloneSerializer::serialize):
3308
3309 2014-12-04  Radu Stavila  <stavila@adobe.com>
3310
3311         [SVG Masking] Add support for referencing <mask> elements from -webkit-mask-image
3312         https://bugs.webkit.org/show_bug.cgi?id=139092
3313
3314         Reviewed by Simon Fraser.
3315
3316         This patch improves the -webkit-mask-image property by allowing it to reference
3317         a <mask> element defined in an inline or external SVG document.
3318         Up until now, each image to be used as a mask consisted of a FillLayer object 
3319         whose m_image member represented the mask. Now, in order to accomodate
3320         <mask> elements referenced by a fragment identifier (e.g. file.svg#mask1)
3321         a new class was created (MaskImageOperation) and added as a member of the 
3322         FillLayer. As such, from now on, all FillLayer objects used for masking will
3323         store the masking information in this new member.
3324         When parsing the -webkit-mask-image property (or the -webkit-mask shorthand)
3325         a new MaskImageOperation object is created for each image. If the value represents
3326         an external URL, a pending SVG document will be created which will be loaded 
3327         during the phase that loads the pending resources. When the download is complete,
3328         the MaskImageOperation is notified by the CachedSVGDocument class and checks if
3329         the received download is a valid SVG and the requested fragment identifier
3330         actually exists and identifies a <mask> element. If it does, that element's
3331         renderer (of type RenderSVGResourceMasker) will be used when painting the mask layers.
3332         Otherwise, the MaskImageOperation class will use the already downloaded data 
3333         buffer to create a CachedImage from it and use that instead, basically emulating
3334         the previous behavior, when only images were accepted. This ensures that all existing
3335         behavior, like painting entire SVGs, painting normal images (e.g. PNG/JPG), painting
3336         generated images (e.g. linear-gradient) works as it did before.
3337
3338         No new tests required, this patch doesn't change any current functionality. 
3339         It only adds support for referencing <mask> elements for the -webkit-mask-image 
3340         property. This is sub-part 1 of the bigger patch https://bugs.webkit.org/show_bug.cgi?id=129682.
3341
3342         * CMakeLists.txt:
3343         * WebCore.vcxproj/WebCore.vcxproj:
3344         * WebCore.vcxproj/WebCore.vcxproj.filters:
3345         * WebCore.xcodeproj/project.pbxproj:
3346         * css/CSSValue.cpp:
3347         (WebCore::CSSValue::cssText):
3348         (WebCore::CSSValue::destroy):
3349         * css/CSSValue.h:
3350         (WebCore::CSSValue::isWebKitCSSResourceValue):
3351         * css/StyleResolver.cpp:
3352         (WebCore::StyleResolver::State::clear):
3353         (WebCore::StyleResolver::createMaskImageOperations):
3354         * css/StyleResolver.h:
3355         (WebCore::StyleResolver::State::maskImagesWithPendingSVGDocuments):
3356         * css/WebKitCSSResourceValue.cpp: Added.
3357         (WebCore::WebKitCSSResourceValue::WebKitCSSResourceValue):
3358         (WebCore::WebKitCSSResourceValue::customCSSText):
3359         (WebCore::WebKitCSSResourceValue::isCSSValueNone):
3360         * css/WebKitCSSResourceValue.h: Added.
3361         (WebCore::WebKitCSSResourceValue::create):
3362         (WebCore::WebKitCSSResourceValue::innerValue):
3363         * loader/cache/CachedResourceLoader.cpp:
3364         (WebCore::CachedResourceLoader::addCachedResource):
3365         * loader/cache/CachedResourceLoader.h:
3366         * loader/cache/CachedSVGDocument.cpp:
3367         (WebCore::CachedSVGDocument::CachedSVGDocument):
3368         (WebCore::CachedSVGDocument::finishLoading):
3369         * loader/cache/CachedSVGDocument.h:
3370         * loader/cache/CachedSVGDocumentReference.cpp:
3371         (WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
3372         (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
3373         (WebCore::CachedSVGDocumentReference::load):
3374         * loader/cache/CachedSVGDocumentReference.h:
3375         * page/FrameView.cpp:
3376         (WebCore::FrameView::isSVGDocument):
3377         * page/FrameView.h:
3378         * page/Page.cpp:
3379         (WebCore::Page::createPageFromBuffer):
3380         * page/Page.h:
3381         * platform/ScrollView.h:
3382         (WebCore::ScrollView::isSVGDocument):
3383         * platform/graphics/MaskImageOperation.cpp: Added.
3384         (WebCore::MaskImageOperation::create):
3385         (WebCore::MaskImageOperation::MaskImageOperation):
3386         (WebCore::MaskImageOperation::~MaskImageOperation):
3387         (WebCore::MaskImageOperation::isCSSValueNone):
3388         (WebCore::MaskImageOperation::cssValue):
3389         (WebCore::MaskImageOperation::isMaskLoaded):
3390         (WebCore::MaskImageOperation::setRenderLayerImageClient):
3391         (WebCore::MaskImageOperation::addRendererImageClient):
3392         (WebCore::MaskImageOperation::removeRendererImageClient):
3393         (WebCore::MaskImageOperation::getOrCreateCachedSVGDocumentReference):
3394         (WebCore::MaskImageOperation::notifyFinished): This is the method that gets called when the document has finished 
3395         downloading and checks if it can find a valid <mask> element.
3396         (WebCore::MaskImageOperation::drawMask):
3397         (WebCore::MaskImageOperation::getSVGMasker):
3398         * platform/graphics/MaskImageOperation.h: Added.
3399         * rendering/RenderBoxModelObject.cpp: The BackgroundImageGeometry class was moved out of RenderBoxModelObject in 
3400         order to be used as a parameter for other methods. This was necessary to avoid having methods with very many parameters.
3401         (WebCore::BackgroundImageGeometry::setNoRepeatX):
3402         (WebCore::BackgroundImageGeometry::setNoRepeatY):
3403         (WebCore::BackgroundImageGeometry::useFixedAttachment):
3404         (WebCore::BackgroundImageGeometry::clip):
3405         (WebCore::BackgroundImageGeometry::relativePhase):
3406         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setNoRepeatX): Deleted.
3407         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setNoRepeatY): Deleted.
3408         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::useFixedAttachment): Deleted.
3409         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::clip): Deleted.
3410         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::relativePhase): Deleted.
3411         * rendering/RenderBoxModelObject.h:
3412         (WebCore::BackgroundImageGeometry::BackgroundImageGeometry):
3413         (WebCore::BackgroundImageGeometry::destOrigin):
3414         (WebCore::BackgroundImageGeometry::setDestOrigin):
3415         (WebCore::BackgroundImageGeometry::destRect):
3416         (WebCore::BackgroundImageGeometry::setDestRect):
3417         (WebCore::BackgroundImageGeometry::phase):
3418         (WebCore::BackgroundImageGeometry::setPhase):
3419         (WebCore::BackgroundImageGeometry::tileSize):
3420         (WebCore::BackgroundImageGeometry::setTileSize):
3421         (WebCore::BackgroundImageGeometry::spaceSize):
3422         (WebCore::BackgroundImageGeometry::setSpaceSize):
3423         (WebCore::BackgroundImageGeometry::setPhaseX):
3424         (WebCore::BackgroundImageGeometry::setPhaseY):
3425         (WebCore::BackgroundImageGeometry::setHasNonLocalGeometry):
3426         (WebCore::BackgroundImageGeometry::hasNonLocalGeometry):
3427         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::BackgroundImageGeometry): Deleted.
3428         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::destOrigin): Deleted.
3429         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setDestOrigin): Deleted.
3430         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::destRect): Deleted.
3431         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setDestRect): Deleted.
3432         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::phase): Deleted.
3433         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhase): Deleted.
3434         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::tileSize): Deleted.
3435         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setTileSize): Deleted.
3436         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::spaceSize): Deleted.
3437         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setSpaceSize): Deleted.
3438         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhaseX): Deleted.
3439         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhaseY): Deleted.
3440         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setHasNonLocalGeometry): Deleted.
3441         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::hasNonLocalGeometry): Deleted.
3442         * rendering/RenderLayer.cpp:
3443         (WebCore::RenderLayer::RenderLayer):
3444         (WebCore::RenderLayer::~RenderLayer):
3445         * rendering/RenderLayer.h:
3446         * rendering/RenderLayerMaskImageInfo.cpp: Added.
3447         (WebCore::RenderLayer::MaskImageInfo::layerToMaskMap): Returns a static map that links MaskImageInfo objects to RenderLayers.
3448         (WebCore::RenderLayer::MaskImageInfo::getIfExists): Returns the MaskImageInfo associated with a specific RenderLayer.
3449         (WebCore::RenderLayer::MaskImageInfo::get): Returns the MaskImageInfo associated with a specific RenderLayer (creates it if necessary).
3450         (WebCore::RenderLayer::MaskImageInfo::remove): Removes the MaskImageInfo associated with a specific RenderLayer.
3451         (WebCore::RenderLayer::MaskImageInfo::MaskImageInfo):
3452         (WebCore::RenderLayer::MaskImageInfo::~MaskImageInfo):
3453         (WebCore::RenderLayer::MaskImageInfo::notifyFinished): Gets called when the SVG document finished loading, triggers repaint.
3454         (WebCore::RenderLayer::MaskImageInfo::imageChanged): Gets called when the image object changed, triggers repaint.
3455         (WebCore::RenderLayer::MaskImageInfo::updateMaskImageClients): Goes through all mask layers and sets image/SVG clients. 
3456         Updates list of internal and external SVG references.
3457         (WebCore::RenderLayer::MaskImageInfo::removeMaskImageClients): Removes all image/SVG clients and clears lists of internal and external SVG references.
3458         * rendering/RenderLayerMaskImageInfo.h: Added.
3459         * rendering/RenderObject.h:
3460         (WebCore::RenderObject::isRenderSVGResourceMasker):
3461         * rendering/style/FillLayer.cpp:
3462         (WebCore::FillLayer::FillLayer):
3463         (WebCore::FillLayer::operator=):
3464         (WebCore::FillLayer::operator==):
3465         (WebCore::FillLayer::cullEmptyLayers):
3466         (WebCore::FillLayer::hasNonEmptyMaskImage):
3467         (WebCore::FillLayer::imagesAreLoaded):
3468         * rendering/style/FillLayer.h:
3469         (WebCore::FillLayer::maskImage):
3470         (WebCore::FillLayer::imageOrMaskImage):
3471         (WebCore::FillLayer::setMaskImage):
3472         (WebCore::FillLayer::clearMaskImage):
3473         (WebCore::FillLayer::hasMaskImage):
3474         * rendering/svg/RenderSVGResourceMasker.cpp:
3475         (WebCore::RenderSVGResourceMasker::applySVGMask):
3476         (WebCore::RenderSVGResourceMasker::applyResource):
3477         (WebCore::RenderSVGResourceMasker::drawMaskForRenderer):
3478         * rendering/svg/RenderSVGResourceMasker.h:
3479         * svg/SVGMaskElement.cpp:
3480         (WebCore::SVGMaskElement::createElementRenderer):
3481         (WebCore::SVGMaskElement::addClientRenderLayer):
3482         (WebCore::SVGMaskElement::removeClientRenderLayer):
3483         * svg/SVGMaskElement.h:
3484         * svg/SVGUseElement.cpp:
3485         (WebCore::SVGUseElement::setCachedDocument):
3486         * svg/graphics/SVGImage.cpp:
3487         (WebCore::SVGImage::dataChanged):
3488
3489 2014-12-04  Commit Queue  <commit-queue@webkit.org>
3490
3491         Unreviewed, rolling out r176789.
3492         https://bugs.webkit.org/show_bug.cgi?id=139255
3493
3494         Broke the non Mac-WK2 builds (Requested by stavila on
3495         #webkit).
3496
3497         Reverted changeset:
3498
3499         "Remove isSpecifiedFont boolean from FontDescription"
3500         https://bugs.webkit.org/show_bug.cgi?id=139233
3501         http://trac.webkit.org/changeset/176789
3502
3503 2014-12-03  Antti Koivisto  <antti@apple.com>
3504
3505         Remove isSpecifiedFont boolean from FontDescription
3506         https://bugs.webkit.org/show_bug.cgi?id=139233
3507
3508         Reviewed by Andreas Kling.
3509
3510         It is barely used.
3511
3512         * css/StyleBuilderCustom.h:
3513         (WebCore::StyleBuilderCustom::applyInheritFontFamily):
3514         (WebCore::StyleBuilderCustom::applyValueFontFamily):
3515         * platform/graphics/FontDescription.cpp:
3516         (WebCore::genericFamiliesSet):
3517         (WebCore::FontDescription::hasGenericFirstFamily):
3518
3519             Add a function to test for generic families.
3520
3521         * platform/graphics/FontDescription.h:
3522         (WebCore::FontDescription::FontDescription):
3523         (WebCore::FontDescription::setTextRenderingMode):
3524         (WebCore::FontDescription::operator==):
3525         (WebCore::FontDescription::isSpecifiedFont): Deleted.
3526         (WebCore::FontDescription::setIsSpecifiedFont): Deleted.
3527         * rendering/RenderText.cpp:
3528         (WebCore::RenderText::computeUseBackslashAsYenSymbol):
3529
3530             This is the only client.
3531             Figure out the equivalent information dynamically if needed.
3532
3533 2014-12-03  Joonghun Park  <jh718.park@samsung.com>
3534
3535         Use std::unique_ptr instead of PassOwnPtr|OwnPtr for Pasteboard
3536         https://bugs.webkit.org/show_bug.cgi?id=139019
3537
3538         Reviewed by Darin Adler.
3539
3540         No new tests, no behavior changes.
3541
3542         * dom/DataTransfer.cpp:
3543         (WebCore::DataTransfer::DataTransfer):
3544         * dom/DataTransfer.h:
3545         * editing/Editor.cpp:
3546         (WebCore::Editor::dispatchCPPEvent):
3547         * page/mac/EventHandlerMac.mm:
3548         (WebCore::EventHandler::createDraggingDataTransfer):
3549         * platform/Pasteboard.h:
3550         * platform/efl/PasteboardEfl.cpp:
3551         (WebCore::Pasteboard::createForCopyAndPaste):
3552         (WebCore::Pasteboard::createPrivate):
3553         (WebCore::Pasteboard::createForDragAndDrop):
3554         * platform/gtk/PasteboardGtk.cpp:
3555         (WebCore::Pasteboard::createForCopyAndPaste):
3556         (WebCore::Pasteboard::createForGlobalSelection):
3557         (WebCore::Pasteboard::createPrivate):
3558         (WebCore::Pasteboard::createForDragAndDrop):
3559         (WebCore::Pasteboard::create): Deleted.
3560         * platform/ios/PasteboardIOS.mm:
3561         (WebCore::Pasteboard::createForCopyAndPaste):
3562         (WebCore::Pasteboard::createPrivate):
3563         * platform/mac/PasteboardMac.mm:
3564         (WebCore::Pasteboard::createForCopyAndPaste):
3565         (WebCore::Pasteboard::createPrivate):
3566         (WebCore::Pasteboard::createForDragAndDrop):
3567         (WebCore::Pasteboard::create): Deleted.
3568         * platform/win/PasteboardWin.cpp:
3569         (WebCore::Pasteboard::createForCopyAndPaste):
3570         (WebCore::Pasteboard::createPrivate):
3571         (WebCore::Pasteboard::createForDragAndDrop):
3572
3573 2014-12-03  Benjamin Poulain  <bpoulain@apple.com>
3574
3575         Get rid of FrameLoaderClient::dispatchWillRequestResource
3576         https://bugs.webkit.org/show_bug.cgi?id=139235
3577
3578         Reviewed by Alexey Proskuryakov.
3579
3580         It is useless.
3581
3582         * loader/FrameLoaderClient.h:
3583         (WebCore::FrameLoaderClient::dispatchWillRequestResource): Deleted.
3584         * loader/cache/CachedResourceLoader.cpp:
3585         (WebCore::CachedResourceLoader::requestResource):
3586
3587 2014-12-03  Myles C. Maxfield  <mmaxfield@apple.com>
3588
3589         List markers in RTL languages do not draw the first character.
3590         https://bugs.webkit.org/show_bug.cgi?id=139244
3591
3592         Reviewed by Simon Fraser.
3593
3594         Off-by-one error when reversing the string (from LTR to RTL)
3595
3596         Test: fast/lists/rtl-marker.html
3597
3598         * rendering/RenderListMarker.cpp:
3599         (WebCore::RenderListMarker::paint):
3600
3601 2014-12-03  Beth Dakin  <bdakin@apple.com>
3602
3603         <input> elements get whitespace action menu instead of editable text menu
3604         https://bugs.webkit.org/show_bug.cgi?id=139241
3605         -and corresponding-
3606         rdar://problem/19072083
3607
3608         Reviewed by Sam Weinig.
3609
3610         Since we will hit test form controls as form controls, we need a new function to 
3611         determine if the hit point is over text inside that form control or not.
3612         * WebCore.exp.in:
3613         * rendering/HitTestResult.cpp:
3614         (WebCore::HitTestResult::isOverTextInsideFormControlElement):
3615         * rendering/HitTestResult.h:
3616
3617 2014-12-03  Tim Horton  <timothy_horton@apple.com>
3618
3619         Keyboard input should be disabled in the preview popover
3620         https://bugs.webkit.org/show_bug.cgi?id=139219
3621         <rdar://problem/19052381>
3622
3623         Reviewed by Anders Carlsson.
3624
3625         * page/ChromeClient.h:
3626         (WebCore::ChromeClient::shouldDispatchFakeMouseMoveEvents):
3627         * page/EventHandler.cpp:
3628         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
3629         Allow ChromeClient to disable the dispatch of "fake" mouseMove events
3630         that happens during scrolling.
3631
3632 2014-12-03  Antti Koivisto  <antti@apple.com>
3633
3634         Remove genericFamily enum from FontDescription
3635         https://bugs.webkit.org/show_bug.cgi?id=139207
3636
3637         Reviewed by Andreas Kling.
3638
3639         We use predefined AtomicStrings for generic families. The side enum adds no information.
3640
3641         * css/CSSFontSelector.cpp:
3642         (WebCore::resolveGenericFamily):
3643         (WebCore::CSSFontSelector::getFontData):
3644
3645             Match the existing quirk where the default font can be replaced by @font-face rule but user generic families can't.
3646
3647         (WebCore::CSSFontSelector::resolvesFamilyFor):
3648         (WebCore::fontDataForGenericFamily): Deleted.
3649         * css/DeprecatedStyleBuilder.cpp:
3650         (WebCore::ApplyPropertyFontFamily::applyInheritValue):
3651         (WebCore::ApplyPropertyFontFamily::applyInitialValue):
3652         (WebCore::ApplyPropertyFontFamily::applyValue):
3653         * css/StyleResolver.cpp:
3654         (WebCore::StyleResolver::checkForGenericFamilyChange):
3655
3656             Remove the explicit monospace check, earlier useFixedDefaultSize check is equivalent.
3657
3658         (WebCore::StyleResolver::initializeFontStyle):
3659         * platform/graphics/FontDescription.h:
3660         (WebCore::FontDescription::FontDescription):
3661         (WebCore::FontDescription::useFixedDefaultSize):
3662         (WebCore::FontDescription::setWeight):
3663         (WebCore::FontDescription::equalForTextAutoSizing):
3664         (WebCore::FontDescription::operator==):
3665         (WebCore::FontDescription::genericFamily): Deleted.
3666         (WebCore::FontDescription::setGenericFamily): Deleted.
3667         * platform/mac/ThemeMac.mm:
3668         (WebCore::ThemeMac::controlFont):
3669         * rendering/RenderTheme.cpp:
3670         (WebCore::RenderTheme::adjustStyle):
3671
3672             Reset the lineheight unconditionally for buttons.
3673             This always happened before because the explicitly set generic family made the font compare false.
3674
3675         * rendering/RenderThemeIOS.mm:
3676         (WebCore::RenderThemeIOS::systemFont):
3677         * rendering/RenderThemeMac.mm:
3678         (WebCore::RenderThemeMac::systemFont):
3679         (WebCore::RenderThemeMac::setFontFromControlSize):
3680         * style/StyleResolveForDocument.cpp:
3681         (WebCore::Style::resolveForDocument):
3682
3683             Resolve document style for final value immediately as it can't be affected by @font-face rules.
3684
3685 2014-12-03  Zalan Bujtas  <zalan@apple.com>
3686
3687         ASSERTION: RenderMultiColumnFlowThread::processPossibleSpannerDescendant() when column spanner's parent is not a RenderBlockFlow.
3688         https://bugs.webkit.org/show_bug.cgi?id=139188
3689         rdar://problem/18502182
3690
3691         Reviewed by David Hyatt.
3692
3693         This patch ensures that the validation check for spanner in isValidColumnSpanner() is in synch
3694         with the expectation in RenderMultiColumnFlowThread::processPossibleSpannerDescendant().
3695         (descendant's parent is expected to be a RenderBlockFlow)
3696
3697         Test: fast/multicol/svg-content-as-column-spanner-crash.html
3698
3699         * rendering/RenderMultiColumnFlowThread.cpp:
3700         (WebCore::isValidColumnSpanner):
3701
3702 2014-12-03  peavo@outlook.com  <peavo@outlook.com>
3703
3704         [TexMap] Redundant method in GraphicsLayerTextureMapper.
3705         https://bugs.webkit.org/show_bug.cgi?id=138005
3706
3707         Reviewed by Alex Christensen.
3708
3709         The TextureMapperLayer method descendantsOrSelfHaveRunningAnimations() can be used
3710         instead of the GraphicsLayerTextureMapper method startedAnimation().
3711
3712         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
3713         (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
3714         (WebCore::GraphicsLayerTextureMapper::addAnimation):
3715         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
3716
3717 2014-12-03  Jeremy Jones  <jeremyj@apple.com>
3718
3719         Subtitle menu should only appear when useful.
3720         https://bugs.webkit.org/show_bug.cgi?id=139133
3721
3722         Reviewed by Eric Carlson.
3723
3724         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
3725         (-[WebAVPlayerController hasLegibleMediaSelectionOptions]): only enable when there are non default options.
3726         (-[WebAVPlayerController hasAudioMediaSelectionOptions]): only enable when there is more than one option.
3727
3728 2014-12-03  Joanmarie Diggs  <jdiggs@igalia.com>
3729
3730         AX: [ATK] Inline text elements with accessible object attributes and/or event handlers are not exposed
3731         https://bugs.webkit.org/show_bug.cgi?id=139071
3732
3733         Reviewed by Chris Fleizach.
3734
3735         Adds a new InlineRole accessibility role type for non-focusable inline
3736         elements which have an event handler or attribute suggesting possible
3737         inclusion by the platform. This is mapped to ATK_ROLE_STATIC for GTK and
3738         EFL. On the Mac, it is currently ignored to preserve existing behavior.
3739
3740         Added new test cases to the existing roles-exposed.html test.
3741
3742         * accessibility/AccessibilityObject.cpp:
3743         (WebCore::AccessibilityObject::supportsDatetimeAttribute): Added.
3744         * accessibility/AccessibilityObject.h: Added InlineRole.
3745         * accessibility/AccessibilityRenderObject.cpp:
3746         (WebCore::AccessibilityRenderObject::determineAccessibilityRole): Handle InlineRole.
3747         * accessibility/atk/AccessibilityObjectAtk.cpp:
3748         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject): Include InlineRole objects.
3749         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
3750         (atkRole):
3751         * accessibility/mac/AccessibilityObjectMac.mm:
3752         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject): Ignore InlineRole objects.
3753         * html/HTMLTagNames.in: Added 'time'.
3754
3755 2014-12-03  Jer Noble  <jer.noble@apple.com>
3756
3757         [Mac] Hang when calling -[AVAsset resolvedURL].
3758         https://bugs.webkit.org/show_bug.cgi?id=139223
3759
3760         Reviewed by Eric Carlson.
3761
3762         On a particularly slow-loading site, a call to -[AVAsset resolvedURL] can take an arbitrarily long
3763         time. Treat this AVAsset property similar to other "metadata" properties, and check the load status
3764         of the property before requesting it.
3765
3766         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3767         (WebCore::MediaPlayerPrivateAVFoundationObjC::hasSingleSecurityOrigin): Check the load state of -resolvedURL.
3768         (WebCore::MediaPlayerPrivateAVFoundationObjC::resolvedURL): Ditto.
3769         (WebCore::assetMetadataKeyNames): Add @"resolvedURL".
3770
3771 2014-12-03  Csaba Osztrogonác  <ossy@webkit.org>
3772
3773         URTBF after r176721 to fix ENABLE(CSS_DEVICE_ADAPTATION) build.
3774
3775         * css/CSSParser.cpp:
3776         (WebCore::CSSParser::parseViewportProperty):
3777
3778 2014-12-03  Chris Dumez  <cdumez@apple.com>
3779
3780         Move 'display' CSS property to the new StyleBuilder
3781         https://bugs.webkit.org/show_bug.cgi?id=139218
3782
3783         Reviewed by Antti Koivisto.
3784
3785         Move 'display' CSS property to the new StyleBuilder.
3786
3787         No new tests, no behavior change.
3788
3789         * css/CSSPropertyNames.in:
3790         * css/DeprecatedStyleBuilder.cpp:
3791         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
3792         (WebCore::ApplyPropertyDisplay::isValidDisplayValue): Deleted.
3793         (WebCore::ApplyPropertyDisplay::applyInheritValue): Deleted.
3794         (WebCore::ApplyPropertyDisplay::applyInitialValue): Deleted.
3795         (WebCore::ApplyPropertyDisplay::applyValue): Deleted.
3796         (WebCore::ApplyPropertyDisplay::createHandler): Deleted.
3797         * css/StyleBuilderCustom.h:
3798         (WebCore::StyleBuilderCustom::isValidDisplayValue):
3799         (WebCore::StyleBuilderCustom::applyInheritDisplay):
3800         (WebCore::StyleBuilderCustom::applyValueDisplay):
3801         * css/makeprop.pl:
3802         Add support for passing multiple values for Custom option, e.g.:
3803         'Custom=Inherit|Value'. This was useful as we did not need custom
3804         code for display's initial value.
3805
3806 2014-12-03  Chris Dumez  <cdumez@apple.com>
3807
3808         Modernize the CSSParser code
3809         https://bugs.webkit.org/show_bug.cgi?id=139209
3810
3811         Reviewed by Antti Koivisto.
3812
3813         Modernize the CSSParser code by:
3814         - Using more references instead of pointers
3815         - Using nullptr instead of 0
3816
3817         No new tests, no behavior change.
3818
3819 2014-12-03  David Kilzer  <ddkilzer@apple.com>
3820
3821         [iOS] REGRESSION (r176622): WebCore fails to link
3822
3823         Speculative fix for the following build failure:
3824
3825             Ld WebCore
3826             Undefined symbols for architecture armv7s:
3827               "__ZN3JSC10IdentifierC1EPNS_9ExecStateERKN3WTF12AtomicStringE", referenced from:
3828                   __ZN7WebCoreL24createAccelerationObjectEPKNS_16DeviceMotionData12AccelerationEPN3JSC9ExecStateE in JSDeviceMotionEventCustom.o
3829
3830         * bindings/js/JSDeviceMotionEventCustom.cpp: Include
3831         <runtime/IdentifierInlines.h> to define missing symbol.
3832
3833 2014-12-02  Dean Jackson  <dino@apple.com>
3834
3835         [Media] Audio content shouldn't have fullscreen buttons, even if in a video element
3836         https://bugs.webkit.org/show_bug.cgi?id=139200
3837         <rdar://problem/18914506>
3838
3839         Reviewed by Eric Carlson.
3840
3841         An audio-only resource, even if loaded into a <video> element, should not
3842         present the fullscreen or optimised fullscreen controls. This includes a
3843         MediaDocument, which is always a <video> element. We can detect this by
3844         examining the length of the videoTracks property as our content loads.
3845
3846         Test: media/audio-as-video-fullscreen.html
3847
3848         * Modules/mediacontrols/mediaControlsApple.js:
3849         (Controller): Initialize a hasVisualMedia to false.
3850         (Controller.prototype.handleReadyStateChange): If we see a videoTrack, hasVisualMedia is now true.
3851         (Controller.prototype.updateFullscreenButtons): Merge the updateFullscreenButton and
3852         updateOptimizedFullscreenButton methods into this single spot, and check for
3853         hasVisualMedia.
3854         (Controller.prototype.updateFullscreenButton): Deleted.
3855         (Controller.prototype.updateOptimizedFullscreenButton): Deleted.
3856
3857         * Modules/mediacontrols/mediaControlsBase.js: Do the same for the other ports.
3858
3859 2014-12-02  Dean Jackson  <dino@apple.com>
3860
3861         Missing support for innerHTML on SVGElement
3862         https://bugs.webkit.org/show_bug.cgi?id=136903
3863
3864         Unreviewed followup from r176630. Minor style nits that I missed in my review.
3865
3866         * dom/Element.h: Remove unnecessary parameter name.
3867         * html/parser/HTMLTreeBuilder.cpp: Whitespace cleanup.
3868         (WebCore::HTMLTreeBuilder::adjustedCurrentStackItem):
3869
3870 2014-12-03  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
3871
3872         [EFL] Add subtle crypto to the build system
3873         https://bugs.webkit.org/show_bug.cgi?id=138612
3874
3875         Reviewed by Csaba Osztrogonác.
3876
3877         It is obvious to make Efl use GnuTLS as well,
3878         and since there seems no reason why to separate
3879         Efl and Gtk implementations from each other, I
3880         also propose renaming the gtk directory and file
3881         suffixes to gnutls.
3882
3883         No new tests needed.
3884
3885         * PlatformEfl.cmake:
3886         * PlatformGTK.cmake:
3887         * crypto/gnutls/CryptoAlgorithmAES_CBCGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmAES_CBCGtk.cpp.
3888         (WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
3889         (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
3890         * crypto/gnutls/CryptoAlgorithmAES_KWGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmAES_KWGtk.cpp.
3891         (WebCore::CryptoAlgorithmAES_KW::platformEncrypt):
3892         (WebCore::CryptoAlgorithmAES_KW::platformDecrypt):
3893         * crypto/gnutls/CryptoAlgorithmHMACGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmHMACGtk.cpp.
3894         (WebCore::getGnutlsDigestAlgorithm):
3895         (WebCore::calculateSignature):
3896         (WebCore::CryptoAlgorithmHMAC::platformSign):
3897         (WebCore::CryptoAlgorithmHMAC::platformVerify):
3898         * crypto/gnutls/CryptoAlgorithmRSAES_PKCS1_v1_5GnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmRSAES_PKCS1_v1_5Gtk.cpp.
3899         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
3900         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt):
3901         * crypto/gnutls/CryptoAlgorithmRSASSA_PKCS1_v1_5GnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmRSASSA_PKCS1_v1_5Gtk.cpp.
3902         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign):
3903         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify):
3904         * crypto/gnutls/CryptoAlgorithmRSA_OAEPGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmRSA_OAEPGtk.cpp.
3905         (WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt):
3906         (WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt):
3907         * crypto/gnutls/CryptoAlgorithmRegistryGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmRegistryGtk.cpp.
3908         (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
3909         * crypto/gnutls/CryptoDigestGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoDigestGtk.cpp.
3910         (WebCore::CryptoDigest::CryptoDigest):
3911         (WebCore::CryptoDigest::~CryptoDigest):
3912         (WebCore::CryptoDigest::create):
3913         (WebCore::CryptoDigest::addBytes):
3914         (WebCore::CryptoDigest::computeHash):
3915         * crypto/gnutls/CryptoKeyRSAGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoKeyRSAGtk.cpp.
3916         (WebCore::CryptoKeyRSA::CryptoKeyRSA):
3917         (WebCore::CryptoKeyRSA::create):
3918         (WebCore::CryptoKeyRSA::~CryptoKeyRSA):
3919         (WebCore::CryptoKeyRSA::restrictToHash):
3920         (WebCore::CryptoKeyRSA::isRestrictedToHash):
3921         (WebCore::CryptoKeyRSA::keySizeInBits):
3922         (WebCore::CryptoKeyRSA::buildAlgorithmDescription):
3923         (WebCore::CryptoKeyRSA::exportData):
3924         (WebCore::CryptoKeyRSA::generatePair):
3925         * crypto/gnutls/SerializedCryptoKeyWrapGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/SerializedCryptoKeyWrapGtk.cpp.
3926         (WebCore::getDefaultWebCryptoMasterKey):
3927         (WebCore::wrapSerializedCryptoKey):
3928         (WebCore::unwrapSerializedCryptoKey):
3929         * crypto/keys/CryptoKeyRSA.h:
3930
3931 2014-12-02  Benjamin Poulain  <benjamin@webkit.org>
3932
3933         Little cleanup of the default stylesheet
3934         https://bugs.webkit.org/show_bug.cgi?id=139168
3935
3936         Reviewed by Antti Koivisto.
3937
3938         The default stylesheet has a lot of historical junk that need cleaning. This patch addresses
3939         only the bits that do not change behaviors and have positive perf and readability impact.
3940
3941         I have limited :matches() to attributes for now. The idea is to only target
3942         simple selectors that are not used for filtering by the collectors.
3943         We should eventually clean up more cases, one thing at a time.
3944
3945         Tests: fast/css/map-tag-default-display.html
3946                fast/selectors/map-tag-default-display.html
3947
3948         * css/html.css:
3949         (map): Deleted.
3950         map was explicitely setting its display to inline. Remove that since it is the default.
3951
3952         (head): Deleted.
3953         (meta): Deleted.
3954         (title): Deleted.
3955         (link): Deleted.
3956         (style): Deleted.
3957         (script): Deleted.
3958         (div): Deleted.
3959         (layer): Deleted.
3960         (article, aside, footer, header, hgroup, main, nav, section): Deleted.
3961         (address): Deleted.
3962         (head, link, meta, script, style, title):
3963         (address, article, aside, div, footer, header, hgroup, layer, main, nav, section):
3964         Group the standard blocks in a single rule.
3965
3966         (input:matches([type="hidden"], [type="image"], [type="file"])):
3967         (input:matches([type="radio"], [type="checkbox"])):
3968         (input:matches([type="button"], [type="submit"], [type="reset"])):
3969         (input:matches([type="button"], [type="submit"], [type="reset"]), input[type="file"]::-webkit-file-upload-button, button):
3970         (input:matches([type="button"], [type="submit"], [type="reset"]):active, input[type="file"]::-webkit-file-upload-button:active, button:active):
3971         (input:matches([type="button"], [type="submit"], [type="reset"]):active, input[type="file"]:active::-webkit-file-upload-button, button:active):
3972         (input[type="file"]:active:disabled::-webkit-file-upload-button, button:active:disabled):
3973         (input:matches([type="checkbox"], [type="radio"]):checked):
3974         (input:matches([type="checkbox"], [type="radio"]):checked:disabled):
3975         (select:matches([size], [multiple], [size][multiple])):
3976         (select:matches([size="0"], [size="1"])):
3977         (input[type="hidden"], input[type="image"], input[type="file"]): Deleted.
3978         (input[type="radio"], input[type="checkbox"]): Deleted.
3979         (input[type="button"], input[type="submit"], input[type="reset"]): Deleted.
3980         (input[type="button"], input[type="submit"], input[type="reset"], input[type="file"]::-webkit-file-upload-button, button): Deleted.
3981         (input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active, input[type="file"]::-webkit-file-upload-button:active, button:active): Deleted.
3982         (input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active, input[type="file"]:active::-webkit-file-upload-button, button:active): Deleted.
3983         (input[type="button"]:active:disabled, input[type="submit"]:active:disabled, input[type="reset"]:active:disabled, input[type="file"]:active:disabled::-webkit-file-upload-button, button:active:disabled): Deleted.
3984         (input[type="checkbox"]:checked, input[type="radio"]:checked): Deleted.
3985         (input[type="checkbox"]:checked:disabled, input[type="radio"]:checked:disabled): Deleted.
3986         (select[size][multiple]): Deleted.
3987         (select[size="1"]): Deleted.
3988         Group every selector lists that only differentiates complex selectors through attributes
3989         into a simple complex selector with :matches().
3990
3991 2014-12-02  Mark Lam  <mark.lam@apple.com>
3992
3993         Rolling out r176592, r176603, r176616, and r176705 until build and perf issues are resolved.
3994         https://bugs.webkit.org/show_bug.cgi?id=138821
3995
3996         Not reviewed.
3997
3998         * bindings/js/SerializedScriptValue.cpp:
3999         (WebCore::CloneDeserializer::deserializeString):
4000         * editing/TextIterator.cpp:
4001         (WebCore::SearchBuffer::isBadMatch):
4002         * page/mac/ServicesOverlayController.mm:
4003         (WebCore::ServicesOverlayController::buildSelectionHighlight):
4004         * platform/graphics/SegmentedFontData.cpp:
4005         (WebCore::SegmentedFontData::fontDataForCharacter):
4006         (WebCore::SegmentedFontData::containsCharacter):
4007         (WebCore::SegmentedFontData::isLoading):
4008         * platform/graphics/WOFFFileFormat.cpp:
4009         (WebCore::convertWOFFToSfnt):
4010         * platform/graphics/cairo/GradientCairo.cpp:
4011         (WebCore::Gradient::platformGradient):
4012         * platform/image-decoders/gif/GIFImageDecoder.cpp:
4013         (WebCore::GIFImageDecoder::clearFrameBufferCache):
4014         * rendering/RenderBox.cpp:
4015         (WebCore::RenderBox::paintFillLayers):
4016         * rendering/style/GridResolvedPosition.cpp:
4017         (WebCore::firstNamedGridLineBeforePosition):
4018         (WebCore::GridResolvedPosition::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition):
4019         * svg/SVGFontElement.cpp:
4020         (WebCore::kerningForPairOfStringsAndGlyphs):
4021         * svg/SVGPathByteStream.h:
4022         (WebCore::SVGPathByteStream::append):
4023         * xml/XPathNodeSet.h:
4024         (WebCore::XPath::NodeSet::begin):
4025         (WebCore::XPath::NodeSet::end):
4026
4027 2014-12-02  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
4028
4029         Fix build break EFL port since r176696
4030         https://bugs.webkit.org/show_bug.cgi?id=139215
4031
4032         Unreviewed, build fix for EFL port.
4033
4034         * storage/StorageNamespaceProvider.h: Include SecurityOriginHash.h from WebCore/page directory.
4035
4036 2014-12-02  Joanmarie Diggs  <jdiggs@igalia.com>
4037
4038         AX: [ATK] Table captions and table rows are missing from the accessible hierarchy
4039         https://bugs.webkit.org/show_bug.cgi?id=139005