[iOS WK2] Bottom-relative position:fixed elements are misplaced on page load
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-05-08  Simon Fraser  <simon.fraser@apple.com>
2
3         [iOS WK2] Bottom-relative position:fixed elements are misplaced on page load
4         https://bugs.webkit.org/show_bug.cgi?id=132719
5         <rdar://problem/16860837>
6
7         Reviewed by Benjamin Poulain.
8
9         Add a couple of functions, and sort.
10
11         * WebCore.exp.in:
12
13 2014-05-08  Jer Noble  <jer.noble@apple.com>
14
15         [Mac, iOS] Add source application accounting to AVURLAsset.
16         https://bugs.webkit.org/show_bug.cgi?id=132637
17
18         Reviewed by Eric Carlson.
19
20         Properly account for the application responisble for data loading by passing the source
21         application identifier through to AVFoundation through AVURLAsset options.
22
23         * html/HTMLMediaElement.cpp:
24         (WebCore::HTMLMediaElement::parseAttribute):
25         * html/HTMLMediaElement.h:
26         * platform/graphics/MediaPlayer.cpp:
27         (WebCore::MediaPlayer::sourceApplicationIdentifier):
28         * platform/graphics/MediaPlayer.h:
29         (WebCore::MediaPlayerClient::mediaPlayerSourceApplicationIdentifier):
30         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
31         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
32         * platform/network/NetworkingContext.h:
33
34 2014-05-08  Jer Noble  <jer.noble@apple.com>
35
36         [MSE][Mac] Move AVStreamDataParser off-main-thread.
37         https://bugs.webkit.org/show_bug.cgi?id=132698
38
39         Reviewed by Eric Carlson.
40
41         -[AVStreamDataParser appendStreamData:] can casue the main thread to hang when a
42         large amount of media data is appended at once. Move the actual parsing of data
43         to a background (synchronous) dispatch queue, and split SourceBuffer::appendBufferTimerFired
44         into two functions, the latter of which will be called after the background queue
45         completes.
46
47         * Modules/mediasource/SourceBuffer.cpp:
48         (WebCore::SourceBuffer::appendBufferTimerFired): Split into sourceBufferPrivateAppendComplete.
49         (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Split from appendBufferTimerFired.
50         * Modules/mediasource/SourceBuffer.h:
51         * platform/graphics/SourceBufferPrivate.h:
52         * platform/graphics/SourceBufferPrivateClient.h:
53         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
54         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
55         (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]): Re-dispatch to the
56                 web thread.
57         (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]): Ditto.
58         (-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]): Ditto.
59         (-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]): Ditto.
60         (-[WebAVStreamDataParserListener streamDataParser:didReachEndOfTrackWithTrackID:mediaType:]): Ditto.
61         (-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]): Ditto.
62         (WebCore::globalDataParserQueue): Added.
63         (WebCore::SourceBufferPrivateAVFObjC::append): Dispatch to the globalDataParserQueue.
64         (WebCore::SourceBufferPrivateAVFObjC::appendCompleted): Added.
65         * platform/mock/mediasource/MockSourceBufferPrivate.cpp:
66         (WebCore::MockSourceBufferPrivate::append): Adopt sourceBufferPrivateAppendComplete.
67         * platform/mock/mediasource/MockSourceBufferPrivate.h:
68
69         Update SourceBufferPrivateGStreamer to match the new append return value:
70         * platform/graphics/gstreamer/SourceBufferPrivateGStreamer.cpp:
71         (WebCore::SourceBufferPrivateGStreamer::append):
72         * platform/graphics/gstreamer/SourceBufferPrivateGStreamer.h:
73
74 2014-05-08  Commit Queue  <commit-queue@webkit.org>
75
76         Unreviewed, rolling out r168498.
77         https://bugs.webkit.org/show_bug.cgi?id=132714
78
79         broke Mavericks WK2 (Requested by litherum on #webkit).
80
81         Reverted changeset:
82
83         "http/tests/security/xss-DENIED-xsl-document-redirect.xml
84         fails with NetworkProcess"
85         https://bugs.webkit.org/show_bug.cgi?id=132523
86         http://trac.webkit.org/changeset/168498
87
88 2014-05-08  Myles C. Maxfield  <mmaxfield@apple.com>
89
90         http/tests/security/xss-DENIED-xsl-document-redirect.xml fails with NetworkProcess
91         https://bugs.webkit.org/show_bug.cgi?id=132523
92
93         Reviewed by Alexey Proskuryakov.
94
95         We should not manufacture a response in the event of an error during a
96         synchronous XHR. In addition, this test removes one place that is
97         sensitive to such a manufactured response.
98
99         Updates test expectations.
100
101         * platform/network/cf/ResourceHandleCFNet.cpp:
102         (WebCore::ResourceHandle::platformLoadResourceSynchronously): Do not
103         manufacture a response
104         * platform/network/mac/ResourceHandleMac.mm:
105         (WebCore::ResourceHandle::platformLoadResourceSynchronously): Do not
106         manufacture a response
107         * xml/XSLTProcessorLibxslt.cpp:
108         (WebCore::docLoaderFunc): Only use the response's URL if no error
109         occurred.
110
111 2014-05-08  Andreas Kling  <akling@apple.com>
112
113         [iOS] WebKit should listen to critical memory warnings.
114         <https://webkit.org/b/132704>
115         <rdar://problem/16857112>
116
117         Listen for DISPATCH_MEMORYSTATUS_PRESSURE_CRITICAL in addition to
118         DISPATCH_MEMORYSTATUS_PRESSURE_WARN, since we may only get the critical
119         notification on some systems.
120
121         Reviewed by Gavin Barraclough.
122
123         * platform/cocoa/MemoryPressureHandlerCocoa.mm:
124         (WebCore::MemoryPressureHandler::install):
125
126 2014-05-08  Joseph Pecoraro  <pecoraro@apple.com>
127
128         Web Inspector: InspectorDOMAgent::getAccessibilityPropertiesForNode should gracefully handle bad node
129         https://bugs.webkit.org/show_bug.cgi?id=132697
130
131         Reviewed by Timothy Hatcher.
132
133         * inspector/InspectorDOMAgent.cpp:
134         (WebCore::InspectorDOMAgent::getAccessibilityPropertiesForNode):
135         Gracefully handle no node.
136
137 2014-05-08  Tim Horton  <timothy_horton@apple.com>
138
139         Fix the iOS build after r168476.
140
141         * platform/graphics/mac/GraphicsContextMac.mm:
142         (WebCore::GraphicsContext::drawFocusRing):
143
144 2014-05-08  Bem Jones-Bey  <bjonesbe@adobe.com>
145
146         [CSS Shapes] Shapes do not resolve dimensions specified in viewport units
147         https://bugs.webkit.org/show_bug.cgi?id=124052
148
149         Reviewed by Dirk Schulze.
150
151         Viewport unit resolution doesn't work unless the RenderView is passed
152         down into the floatValueForLength methods. All this does is plumb down
153         a RenderView in all of these cases.
154
155         Tests: css3/masking/clip-path-polygon-viewport-units.html
156                fast/shapes/shape-outside-floats/shape-outside-floats-viewport-units.html
157
158         * css/BasicShapeFunctions.cpp:
159         (WebCore::floatValueForCenterCoordinate):
160         * css/BasicShapeFunctions.h:
161         * css/LengthFunctions.cpp:
162         (WebCore::floatSizeForLengthSize):
163         * css/LengthFunctions.h:
164         * rendering/ClipPathOperation.h:
165         (WebCore::ShapeClipPathOperation::pathForReferenceRect):
166         (WebCore::BoxClipPathOperation::pathForReferenceRect):
167         * rendering/RenderLayer.cpp:
168         (WebCore::RenderLayer::setupClipPath):
169         * rendering/shapes/Shape.cpp:
170         (WebCore::Shape::createShape):
171         * rendering/shapes/Shape.h:
172         * rendering/shapes/ShapeOutsideInfo.cpp:
173         (WebCore::ShapeOutsideInfo::computedShape):
174         * rendering/style/BasicShapes.cpp:
175         (WebCore::BasicShapeCircle::floatValueForRadiusInBox):
176         (WebCore::BasicShapeCircle::path):
177         (WebCore::BasicShapeEllipse::floatValueForRadiusInBox):
178         (WebCore::BasicShapeEllipse::path):
179         (WebCore::BasicShapePolygon::path):
180         (WebCore::floatSizeForLengthSize):
181         (WebCore::BasicShapeInset::path):
182         * rendering/style/BasicShapes.h:
183         * rendering/svg/SVGRenderingContext.cpp:
184         (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
185
186 2014-05-08  Brent Fulgham  <bfulgham@apple.com>
187
188         Cue display events may not be registered during page load.
189         https://bugs.webkit.org/show_bug.cgi?id=132696
190         <rdar://problem/16652874>
191
192         Reviewed by Eric Carlson.
193
194         * Modules/mediacontrols/mediaControlsApple.js:
195         (Controller.prototype.handleTextTrackAdd): Don't register
196         for 'cuechange' events anymore.
197         (Controller.prototype.handleTextTrackRemove): Ditto.
198         (Controller.prototype.updateCaptionContainer): Reduce CSS
199         churn by not adding/removing 'Hidden' class every time a
200         new cue is processed. Only do this when transitioning
201         track display state.
202         (Controller.prototype.handleTextTrackCueChange): Deleted.
203         * html/HTMLMediaElement.cpp:
204         (WebCore::HTMLMediaElement::updateTextTrackDisplay): Call
205         'updateTextTrackContainer' directory when processing cues,
206         rather than trampolining through the JS layer.
207
208 2014-05-08  Alexey Proskuryakov  <ap@apple.com>
209
210         Make BlobDataFileReference manage its sandbox extension
211         https://bugs.webkit.org/show_bug.cgi?id=132689
212
213         Reviewed by Anders Carlsson.
214
215         * WebCore.exp.in: Export symbols that are now needed in WebKit2 to subclass BlobDataFileReference.
216
217         * fileapi/ThreadableBlobRegistry.cpp: (WebCore::ThreadableBlobRegistry::registerFileBlobURL):
218         * platform/network/BlobData.cpp: (WebCore::BlobData::appendFile):
219         * platform/network/BlobData.h: (WebCore::BlobDataItem::BlobDataItem):
220         * platform/network/BlobRegistry.h:
221         * platform/network/BlobRegistryImpl.cpp: (WebCore::BlobRegistryImpl::registerFileBlobURL):
222         * platform/network/BlobRegistryImpl.h:
223         BlobRegistry now takes a BlobDataFileReference and not a path, so that WebKit2
224         could pass objects that include sandbox extensions.
225
226         * platform/network/BlobDataFileReference.h:
227         * platform/network/BlobDataFileReference.cpp:
228         (WebCore::BlobDataFileReference::~BlobDataFileReference): Added a virtual destructor.
229         (WebCore::BlobDataFileReference::size): We now record the size and modification time right away, no need to lazily calculate them.
230         (WebCore::BlobDataFileReference::expectedModificationTime): Ditto.
231         (WebCore::BlobDataFileReference::startTrackingModifications): Record time and size
232         (since it's a single call). However, size calculation will become complicated again soon.
233         (WebCore::BlobDataFileReference::prepareForFileAccess): A hook for subclasses.
234         (WebCore::BlobDataFileReference::revokeFileAccess): Ditto.
235         (WebCore::BlobDataFileReference::computeFileSystemData): Deleted.
236
237 2014-05-08  Rik Cabanier  <cabanier@adobe.com>
238
239         Add support for drawFocusIfNeeded
240         https://bugs.webkit.org/show_bug.cgi?id=132584
241
242         Reviewed by Dirk Schulze.
243
244         The drawFocusIfNeeded API will draw a focus ring if the element that is passed
245         in is focused and a child element of the canvas.
246
247         Test: fast/canvas/draw-focus-if-needed.html
248
249         * html/canvas/CanvasRenderingContext2D.cpp:
250         (WebCore::CanvasRenderingContext2D::drawFocusIfNeeded):
251         * html/canvas/CanvasRenderingContext2D.h:
252         * html/canvas/CanvasRenderingContext2D.idl:
253
254 2014-05-08  Antti Koivisto  <antti@apple.com>
255
256         [iOS WebKit2] Can't activate text fields on Facebook
257         https://bugs.webkit.org/show_bug.cgi?id=132682
258
259         Reviewed by Enrica Casucci.
260
261         * page/DOMTimer.cpp:
262         (WebCore::DOMTimer::fired):
263         
264             The isDocument() test here had reversed in the merge breaking content change observer callback.
265
266 2014-05-07  Sergio Villar Senin  <svillar@igalia.com>
267
268         Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T> in svg/
269         https://bugs.webkit.org/show_bug.cgi?id=132647
270
271         Reviewed by Darin Adler.
272
273         * svg/SVGAElement.cpp:
274         (WebCore::SVGAElement::isSupportedAttribute):
275         * svg/SVGAnimateMotionElement.cpp:
276         (WebCore::SVGAnimateMotionElement::isSupportedAttribute):
277         * svg/SVGAnimateTransformElement.cpp:
278         (WebCore::SVGAnimateTransformElement::isSupportedAttribute):
279         * svg/SVGAnimatedLength.cpp:
280         (WebCore::sharedSVGLength):
281         * svg/SVGAnimationElement.cpp:
282         (WebCore::SVGAnimationElement::isSupportedAttribute):
283         * svg/SVGCircleElement.cpp:
284         (WebCore::SVGCircleElement::isSupportedAttribute):
285         * svg/SVGClipPathElement.cpp:
286         (WebCore::SVGClipPathElement::isSupportedAttribute):
287         * svg/SVGComponentTransferFunctionElement.cpp:
288         (WebCore::SVGComponentTransferFunctionElement::isSupportedAttribute):
289         * svg/SVGCursorElement.cpp:
290         (WebCore::SVGCursorElement::isSupportedAttribute):
291         * svg/SVGElement.cpp:
292         (WebCore::SVGElement::instancesForElement):
293         (WebCore::SVGElement::childShouldCreateRenderer):
294         * svg/SVGEllipseElement.cpp:
295         (WebCore::SVGEllipseElement::isSupportedAttribute):
296         * svg/SVGFEBlendElement.cpp:
297         (WebCore::SVGFEBlendElement::isSupportedAttribute):
298         * svg/SVGFEColorMatrixElement.cpp:
299         (WebCore::SVGFEColorMatrixElement::isSupportedAttribute):
300         * svg/SVGFEComponentTransferElement.cpp:
301         (WebCore::SVGFEComponentTransferElement::isSupportedAttribute):
302         * svg/SVGFECompositeElement.cpp:
303         (WebCore::SVGFECompositeElement::isSupportedAttribute):
304         * svg/SVGFEConvolveMatrixElement.cpp:
305         (WebCore::SVGFEConvolveMatrixElement::isSupportedAttribute):
306         * svg/SVGFEDiffuseLightingElement.cpp:
307         (WebCore::SVGFEDiffuseLightingElement::isSupportedAttribute):
308         * svg/SVGFEDisplacementMapElement.cpp:
309         (WebCore::SVGFEDisplacementMapElement::isSupportedAttribute):
310         * svg/SVGFEDropShadowElement.cpp:
311         (WebCore::SVGFEDropShadowElement::isSupportedAttribute):
312         * svg/SVGFEGaussianBlurElement.cpp:
313         (WebCore::SVGFEGaussianBlurElement::isSupportedAttribute):
314         * svg/SVGFEImageElement.cpp:
315         (WebCore::SVGFEImageElement::isSupportedAttribute):
316         * svg/SVGFELightElement.cpp:
317         (WebCore::SVGFELightElement::isSupportedAttribute):
318         * svg/SVGFEMergeNodeElement.cpp:
319         (WebCore::SVGFEMergeNodeElement::isSupportedAttribute):
320         * svg/SVGFEMorphologyElement.cpp:
321         (WebCore::SVGFEMorphologyElement::isSupportedAttribute):
322         * svg/SVGFEOffsetElement.cpp:
323         (WebCore::SVGFEOffsetElement::isSupportedAttribute):
324         * svg/SVGFESpecularLightingElement.cpp:
325         (WebCore::SVGFESpecularLightingElement::isSupportedAttribute):
326         * svg/SVGFETileElement.cpp:
327         (WebCore::SVGFETileElement::isSupportedAttribute):
328         * svg/SVGFETurbulenceElement.cpp:
329         (WebCore::SVGFETurbulenceElement::isSupportedAttribute):
330         * svg/SVGFilterElement.cpp:
331         (WebCore::SVGFilterElement::isSupportedAttribute):
332         (WebCore::SVGFilterElement::childShouldCreateRenderer):
333         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
334         (WebCore::SVGFilterPrimitiveStandardAttributes::isSupportedAttribute):
335         * svg/SVGForeignObjectElement.cpp:
336         (WebCore::SVGForeignObjectElement::isSupportedAttribute):
337         * svg/SVGGElement.cpp:
338         (WebCore::SVGGElement::isSupportedAttribute):
339         * svg/SVGGradientElement.cpp:
340         (WebCore::SVGGradientElement::isSupportedAttribute):
341         * svg/SVGGraphicsElement.cpp:
342         (WebCore::SVGGraphicsElement::isSupportedAttribute):
343         * svg/SVGImageElement.cpp:
344         (WebCore::SVGImageElement::isSupportedAttribute):
345         * svg/SVGLength.cpp:
346         (WebCore::SVGLength::lengthModeForAnimatedLengthAttribute):
347         * svg/SVGLineElement.cpp:
348         (WebCore::SVGLineElement::isSupportedAttribute):
349         * svg/SVGLinearGradientElement.cpp:
350         (WebCore::SVGLinearGradientElement::isSupportedAttribute):
351         * svg/SVGMPathElement.cpp:
352         (WebCore::SVGMPathElement::isSupportedAttribute):
353         * svg/SVGMarkerElement.cpp:
354         (WebCore::SVGMarkerElement::isSupportedAttribute):
355         * svg/SVGMaskElement.cpp:
356         (WebCore::SVGMaskElement::isSupportedAttribute):
357         * svg/SVGPathElement.cpp:
358         (WebCore::SVGPathElement::isSupportedAttribute):
359         * svg/SVGPatternElement.cpp:
360         (WebCore::SVGPatternElement::isSupportedAttribute):
361         * svg/SVGPolyElement.cpp:
362         (WebCore::SVGPolyElement::isSupportedAttribute):
363         * svg/SVGRadialGradientElement.cpp:
364         (WebCore::SVGRadialGradientElement::isSupportedAttribute):
365         * svg/SVGRectElement.cpp:
366         (WebCore::SVGRectElement::isSupportedAttribute):
367         * svg/SVGScriptElement.cpp:
368         (WebCore::SVGScriptElement::isSupportedAttribute):
369         * svg/SVGStopElement.cpp:
370         (WebCore::SVGStopElement::isSupportedAttribute):
371         * svg/SVGStyleElement.cpp:
372         (WebCore::SVGStyleElement::isSupportedAttribute):
373         * svg/SVGSymbolElement.cpp:
374         (WebCore::SVGSymbolElement::isSupportedAttribute):
375         * svg/SVGTRefElement.cpp:
376         (WebCore::SVGTRefElement::isSupportedAttribute):
377         * svg/SVGTests.cpp:
378         (WebCore::SVGTests::attributeToPropertyMap):
379         * svg/SVGTextContentElement.cpp:
380         (WebCore::SVGTextContentElement::textLengthAnimated):
381         (WebCore::SVGTextContentElement::isSupportedAttribute):
382         * svg/SVGTextPathElement.cpp:
383         (WebCore::SVGTextPathElement::isSupportedAttribute):
384         * svg/SVGTextPositioningElement.cpp:
385         (WebCore::SVGTextPositioningElement::isSupportedAttribute):
386         * svg/SVGUseElement.cpp:
387         (WebCore::SVGUseElement::isSupportedAttribute):
388         (WebCore::isDisallowedElement):
389         * svg/SVGViewElement.cpp:
390         (WebCore::SVGViewElement::isSupportedAttribute):
391
392 2014-05-08  Ion Rosca  <rosca@adobe.com>
393
394         [CSS Blending] Replacing Unisolated with NotIsolated in variables and methods names
395         https://bugs.webkit.org/show_bug.cgi?id=132677
396
397         Reviewed by Dirk Schulze.
398
399         No new tests required.
400
401         * rendering/RenderLayer.cpp:
402         (WebCore::RenderLayer::RenderLayer):
403         (WebCore::RenderLayer::updateAncestorChainHasBlendingDescendants):
404         (WebCore::RenderLayer::dirtyAncestorChainHasBlendingDescendants):
405         (WebCore::RenderLayer::updateDescendantDependentFlags):
406         hasUnisolatedBlendingDescendants -> hasNotIsolatedBlendingDescendants
407         (WebCore::RenderLayer::addChild):
408         (WebCore::RenderLayer::removeChild):
409         (WebCore::RenderLayer::updateStackingContextsAfterStyleChange):
410         * rendering/RenderLayer.h:
411         m_hasUnisolatedBlendingDescendants -> m_hasNotIsolatedBlendingDescendants
412         m_hasUnisolatedBlendingDescendantsStatusDirty -> m_hasNotIsolatedBlendingDescendantsStatusDirty
413         hasUnisolatedBlendingDescendants() -> hasNotIsolatedBlendingDescendants()
414         hasUnisolatedBlendingDescendantsStatusDirty() -> hasNotIsolatedBlendingDescendantsStatusDirty()
415         m_hasUnisolatedCompositedBlendingDescendants -> m_hasNotIsolatedCompositedBlendingDescendants
416         hasUnisolatedCompositedBlendingDescendants() -> hasNotIsolatedCompositedBlendingDescendants()
417         setHasUnisolatedCompositedBlendingDescendants() -> setHasNotIsolatedCompositedBlendingDescendants
418         * rendering/RenderLayerCompositor.cpp:
419         (WebCore::CompositingState::CompositingState):
420         m_hasUnisolatedCompositedBlendingDescendants -> m_hasNotIsolatedCompositedBlendingDescendants
421         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
422
423 2014-05-08  Xabier Rodriguez Calvar  <calvaris@igalia.com>
424
425         [GTK] Enable skipped http/tests/media/hls/video-controls-live-stream.html
426         https://bugs.webkit.org/show_bug.cgi?id=132329
427
428         Reviewed by Eric Carlson.
429
430         GTK port needed to define what happened with live stream media
431         controls. Now we disable and dim the timeline and tweak the
432         timers.
433
434         Test: http/tests/media/hls/video-controls-live-stream.html.
435
436         * Modules/mediacontrols/mediaControlsGtk.js:
437         (ControllerGtk.prototype.configureControls): Moved logic from
438         setControlsType and changed to use an early return.
439         (ControllerGtk.prototype.reconnectControls): Redefined to just
440         configure the controls.
441         (ControllerGtk.prototype.handlePlay): If stream is live we don't
442         activate the current time just in case.
443         (ControllerGtk.prototype.updateDuration): Calls the superclass and
444         sets timeline.max to 0.
445         (ControllerGtk.prototype.setControlsType): Deleted.
446         (ControllerGtk.prototype.setIsLive): Configures controls and
447         disables the timeline if stream is live.
448         * css/mediaControlsGtk.css:
449         (audio::-webkit-media-controls-timeline[disabled])
450         (video::-webkit-media-controls-timeline[disabled]): Dimmed the
451         timeline by setting opacity to 0.3.
452
453 2014-05-08  Ion Rosca  <rosca@adobe.com>
454
455         [CSS Blending] Changing isolation CSS property should not trigger repaint in RenderStyle::changeRequiresLayerRepaint
456         https://bugs.webkit.org/show_bug.cgi?id=131436
457
458         Reviewed by Dirk Schulze.
459
460         The isolation:isolate property will create a stacking context. This is done in
461         StyleResolver::adjustRenderStyle where z-index is forced to 0.
462         If the element is already a stacking context for any other reason,
463         changing the isolation flag should not have any effect.
464
465         Tests: css3/blending/repaint/blend-mode-turn-off-isolation-no-effect.html
466                css3/blending/repaint/blend-mode-turn-off-isolation.html
467
468         * rendering/style/RenderStyle.cpp:
469         (WebCore::RenderStyle::changeRequiresLayerRepaint):
470         do not request repaint if isolation has changed.
471
472 2014-05-08  Manuel Rego Casasnovas  <rego@igalia.com>
473
474         REGRESSION (r167652): SelectionState is not set properly for non leaf objects in pages with regions
475         https://bugs.webkit.org/show_bug.cgi?id=132493
476
477         Reviewed by David Hyatt.
478
479         Non selection leaf elements were not included in the selection ranges,
480         that was causing that their selection state was not set properly and
481         when one of the element was removed as it was marked as SelectionNone
482         current selection was not removed.
483
484         Due to this fix, the regression detected in bug #131982 arose again.
485         Reverted changes from r167675 and reopened bug as previous fix was not
486         right. Updated TestExpectations accordingly.
487
488         Test: fast/regions/selection/crash-select-all.html
489
490         * rendering/RenderView.cpp:
491         (WebCore::RenderView::splitSelectionBetweenSubtrees): We need to include
492         non selection leafs in the range, otherwise we won't be marking
493         selection state of some elements properly.
494
495 2014-05-08  Zoltan Horvath  <zoltan@webkit.org>
496
497         [CSS Shapes] Can't select content within the area of the floating box when clip-path is applied
498         https://bugs.webkit.org/show_bug.cgi?id=131375
499
500         Reviewed by Dirk Schulze.
501
502         According to http://www.w3.org/TR/css-masking-1/, the clipped part of the element should
503         not have pointer event dispatching. So add this logic to RenderBlock::nodeAtPoint. This
504         fixes the bug as it disallows selection on any clipped parts.
505
506         I implemented the proper selection for the various CSS box types and added testing
507         for them. Also, I made and run performance tests for exposing mouse events over the
508         clipped/non-clipped area, which results can be seen in bugzilla.
509
510         Based on the patch made by Rob Buis <rob.buis@samsung.com>
511         Blink revision: http://src.chromium.org/viewvc/blink?view=revision&revision=172619
512
513         Tests: fast/masking/clip-path-selection.html
514                fast/shapes/shape-outside-floats/shape-outside-clip-path-selection.html
515
516         * rendering/RenderBlock.cpp:
517         (WebCore::RenderBlock::nodeAtPoint):
518
519 2014-05-07  Ion Rosca  <rosca@adobe.com>
520
521         [CSS Blending] Blending doesn't work if the parent stacking context is not a self painting layer
522         https://bugs.webkit.org/show_bug.cgi?id=130891
523
524         Reviewed by Dean Jackson.
525
526         The stacking context layers having unisolated blending descendants should be able
527         to create transparency layers or to become composited in order to restrict blending 
528         content to accessing the information outside the current stacking context.
529         Some layers are not self painting layers and these layers cannot crate transparency
530         layers and cannot be composited, thus they are not able to isolate blending descendants
531         when it's required.
532         
533         The solution in this patch is to make a layer isSelfPaintingLayer when
534         it needs to isolate blending descendants (hasUnisolatedBlendingDescendants).
535
536         Tests: css3/blending/blend-mode-isolation-accelerated-overflow-hidden.html
537                css3/blending/blend-mode-isolation-overflow-hidden.html
538                css3/blending/blend-mode-isolation-turn-off-self-painting-layer.html
539                css3/blending/blend-mode-isolation-turn-off-self-painting-layer1.html
540                css3/blending/blend-mode-isolation-turn-off-self-painting-layer2.html
541                css3/blending/blend-mode-isolation-turn-on-self-painting-layer.html
542
543         * rendering/RenderLayer.cpp:
544         (WebCore::RenderLayer::updateAncestorChainHasBlendingDescendants):
545         When hasUnisolatedBlendingDescendants is set we make sure that isSelfPaintingLayer flag is set too.
546         (WebCore::RenderLayer::updateDescendantDependentFlags):
547         The flags might be read or changed while walking the descendants, so we don't want to reset
548         them before traversing the tree.
549         (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
550         Adding isolatesBlending() condition for a layer to be self painting.
551         * rendering/RenderLayer.h:
552         Removing ASSERT from hasUnisolatedBlendingDescendants(). It crashes in minibrowser
553         and in layout tests when painting contents. Similar bugs on other flags: #71044, #71277.
554         * rendering/RenderLayerModelObject.cpp:
555         (WebCore::RenderLayerModelObject::styleDidChange):
556         Telling ancestors that blend mode property has been removed from CSS when the layer for
557         this element is going to be removed; styleChanged will not be called anymore.
558
559 2014-05-06  Myles C. Maxfield  <mmaxfield@apple.com>
560
561         Dragging text from one paragraph to another does not render as expected
562         https://bugs.webkit.org/show_bug.cgi?id=132633
563
564         Reviewed by Darin Adler and Ryosuke Niwa.
565
566         When we are dragging and dropping into a content editable field, we detect
567         if we are trying to put a <p> into an existing <p>, and if so, split the
568         outer <p> and insert the new <p> as its sibling. However, the outer <p>
569         might not be editable, so we don't want to do any splitting and inserting
570         at that location.
571
572         Test: editing/pasteboard/drag-drop-paragraph-crasher.html
573
574         * editing/ReplaceSelectionCommand.cpp:
575         (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
576
577 2014-05-07  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
578
579         [CoordinatedGraphics][WK2] Scale factor and scroll position is not being restored properly in a back/forward load
580         https://bugs.webkit.org/show_bug.cgi?id=126022
581
582         Reviewed by Benjamin Poulain.
583
584         Original author : Thiago de Barros Lacerda, and finished by Gyuyoung Kim.
585
586         When user is navigating back/forward to a page that has been scrolled and/or scaled, that page must be shown
587         with its last scroll position and scale factor. However, when fixed layout was enabled with CoordinatedGraphics
588         and TILED_BACKING_STORE, Page::setPageScaleFactor() doesn't send previous scroll position since r165652 and r165913.
589
590         This patch allows the Page::setPageScaleFactor() send stored position to WK2 implementation by calling delegatedScrollRequested()
591         directly when delegatesScrolling() is on.
592
593         * page/Page.cpp:
594         (WebCore::Page::setPageScaleFactor): TILED_BACKING_STORE and delegateScrolling are enabled, we pass new scroll position to WK2 though
595         delegateScrolling is disabled.
596         * platform/ScrollView.cpp: delegatedScrollRequested() call is moved from ScrollView::setScrollPosition() to Page::setPageScaleFactor().
597         (WebCore::ScrollView::setScrollPosition): 
598
599 2014-05-07  Dean Jackson  <dino@apple.com>
600
601         Using a fill pattern much larger than actual canvas reliably segfaults browser
602         https://bugs.webkit.org/show_bug.cgi?id=132635
603
604         Reviewed by Simon Fraser.
605
606         Make sure that createPattern checks that the canvas it is about to use
607         as a source is valid.
608
609         Test: fast/canvas/pattern-too-large-to-create.html
610
611         * html/canvas/CanvasRenderingContext2D.cpp:
612         (WebCore::CanvasRenderingContext2D::createPattern): Check that the source canvas has
613         an ok ImageBuffer.
614
615 2014-05-07  Pratik Solanki  <psolanki@apple.com>
616
617         Use system defaults for hardware jpeg decoding
618         https://bugs.webkit.org/show_bug.cgi?id=132661
619         <rdar://problem/11348201>
620
621         Reviewed by Tim Horton.
622
623         Remove code that explicitly disabled hardware image decoding. Let the system decide what to do.
624
625         * WebCore.exp.in:
626         * platform/graphics/ImageSource.h:
627         (WebCore::ImageSource::acceleratedImageDecodingEnabled): Deleted.
628         (WebCore::ImageSource::setAcceleratedImageDecodingEnabled): Deleted.
629         * platform/graphics/cg/ImageSourceCG.cpp:
630         (WebCore::ImageSource::imageSourceOptions):
631
632 2014-05-07  Radu Stavila  <stavila@adobe.com>
633
634         Use after free in WebCore::RenderObject::nextSibling / WebCore::RenderBoxModelObject::moveChildrenTo
635         https://bugs.webkit.org/show_bug.cgi?id=132625
636
637         Reviewed by David Hyatt.
638
639         Fixed problem with dynamically inserting first letter elements.
640
641         Test: fast/multicol/newmulticol/first-letter-create.html
642
643         * rendering/RenderBlock.cpp:
644         (WebCore::RenderBlock::getFirstLetter):
645         (WebCore::RenderBlock::updateFirstLetter):
646         * rendering/RenderBlock.h:
647         * rendering/RenderBoxModelObject.cpp:
648         (WebCore::RenderBoxModelObject::moveChildrenTo):
649
650 2014-05-07  Enrica Casucci  <enrica@apple.com>
651
652         WK2: Programatic scroll requests during scroll or zoom animation to reveal focused element are ignored.
653         https://bugs.webkit.org/show_bug.cgi?id=132657
654         <rdar://problem/16468462>
655
656         Reviewed by Benjamin Poulain.
657
658         With the scrolling model we use on iOS, a programatic scroll
659         request can be received while we are still animating to reveal
660         the focused input element. The WebProcess is unaware that the
661         scroll position is being changed in the UIProcess, and does not
662         honor the scroll request from JavaScript.
663         This is patch changes the behavior for clients using scroll delegates
664         to always send the scroll request to the UIProcess without checking
665         the current scroll position.
666
667         * page/FrameView.h:
668         * platform/ScrollView.cpp:
669         (WebCore::ScrollView::setScrollPosition):
670         * platform/ScrollView.h:
671         (WebCore::ScrollView::inProgrammaticScroll):
672
673 2014-05-07  Brent Fulgham  <bfulgham@apple.com>
674
675         [Mac, iOS] REGRESSION: WK2 YouTube support
676         https://bugs.webkit.org/show_bug.cgi?id=132568
677         <rdar://problem/11464344>
678
679         Reviewed by Darin Adler.
680
681         Move the custom YouTube loader code out of the WebFrameLoaderClient into a
682         PluginReplacement-based class.
683
684         * Modules/plugins/PluginReplacement.h:
685         (WebCore::PluginReplacement::supportsURL): New predicate so we can restrict
686         use of a plugin to a particular category of URLs.
687         * Modules/plugins/QuickTimePluginReplacement.mm:
688         (WebCore::QuickTimePluginReplacement): Updated for new registrar signature.
689         * Modules/plugins/YouTubePluginReplacement.h: Added.
690         (WebCore::YouTubePluginReplacement::parentElement):
691         * Modules/plugins/YouTubePluginReplacement.cpp: Added.
692         (WebCore::YouTubePluginReplacement::registerPluginReplacement):
693         (WebCore::YouTubePluginReplacement::create):
694         (WebCore::YouTubePluginReplacement::supportsMimeType):
695         (WebCore::YouTubePluginReplacement::supportsFileExtension):
696         (WebCore::kit):
697         (WebCore::YouTubePluginReplacement::YouTubePluginReplacement):
698         (WebCore::YouTubePluginReplacement::createElementRenderer):
699         (WebCore::objectForKey):
700         (WebCore::YouTubePluginReplacement::installReplacement):
701         (WebCore::createYouTubeURL):
702         (WebCore::processAndCreateYouTubeURL):
703         (WebCore::YouTubePluginReplacement::youTubeURL):
704         * WebCore.exp.in: Add new export from WebCore.
705         * WebCore.xcodeproj/project.pbxproj:
706         * html/HTMLPlugInElement.cpp:
707         (WebCore::pluginReplacementForType): Update to also check that the URL is supported
708         by the plugin.
709         (WebCore::registeredPluginReplacements): Add new YouTubePluginReplacement to registry.
710         * html/HTMLPlugInImageElement.cpp:
711         (WebCore::HTMLPlugInImageElement::createElementRenderer): Remove custom YouTube code
712         now that this logic is handled in the plugin replacement class.
713         (WebCore::HTMLPlugInImageElement::createShadowIFrameSubtree): Deleted.
714         * html/HTMLPlugInImageElement.h:
715         * html/shadow/YouTubeEmbedShadowElement.cpp:
716         (WebCore::YouTubeEmbedShadowElement::YouTubeEmbedShadowElement):
717         (WebCore::YouTubeEmbedShadowElement::shadowPseudoId): Use correct pseudoID for the
718         plugin replacement architecture.
719         * html/shadow/YouTubeEmbedShadowElement.h:
720         * platform/mac/WebCoreNSURLExtras.h:
721         * platform/mac/WebCoreNSURLExtras.mm:
722         (WebCore::unescapedQueryValue): Moved from WebKit/Misc/WebNSURLExtras.
723         (WebCore::queryKeysAndValues): Ditto.
724
725 2014-05-07  Simon Fraser  <simon.fraser@apple.com>
726
727         [iOS] Acclerated overflow-scrolling broken in WK1
728         https://bugs.webkit.org/show_bug.cgi?id=132665
729         <rdar://problem/16842909>
730
731         Reviewed by Tim Horton.
732
733         r168301 added a CALayer delegate to disable implicit animations,
734         but for some layers we wrap them in UIViews (which are themselves
735         layer delegates), so bad things happened.
736         
737         Fix by falling back to setting the null actions dictionary for
738         layers with custom scrolling behavior.
739
740         * platform/graphics/GraphicsLayer.h:
741         * platform/graphics/ca/mac/PlatformCALayerMac.h:
742         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
743         (PlatformCALayerMac::updateCustomBehavior):
744         * rendering/RenderLayerBacking.cpp:
745         (WebCore::RenderLayerBacking::updateScrollingLayers):
746
747 2014-05-07  Jeremy Jones  <jeremyj@apple.com>
748
749         HTMLMediaElement should exitFullscreen when view is removed from the window.
750         https://bugs.webkit.org/show_bug.cgi?id=132506
751
752         Reviewed by Tim Horton.
753
754         * platform/ios/WebVideoFullscreenControllerAVKit.h:
755         Add -requestExitFullscreen.
756
757         * platform/ios/WebVideoFullscreenControllerAVKit.mm:
758         (-[WebVideoFullscreenController requestExitFullscreen]):
759         Forward request onto WebVideoFullscreenModelMediaElement.
760
761         * platform/ios/WebVideoFullscreenModelMediaElement.mm:
762         (WebVideoFullscreenModelMediaElement::requestExitFullscreen):
763         Add some protection here since this may be called when not in fullscreen.
764
765 2014-05-07  Dean Jackson  <dino@apple.com>
766
767         Clean up the difference between painting focus rings and adding PDF annotations
768         https://bugs.webkit.org/show_bug.cgi?id=132638
769
770         Follow-up comments from Darin Adler.
771
772         * rendering/RenderInline.cpp:
773         (WebCore::RenderInline::paintOutline): Move "else if" to a separate "if" for clarity.
774         * rendering/RenderObject.cpp:
775         (WebCore::RenderObject::paintFocusRing): Don't guard against outlineIsAuto(). ASSERT instead.
776         (WebCore::RenderObject::addPDFURLRect): Give "rect" variable a better name.
777         (WebCore::RenderObject::paintOutline): Move "else if" to a separate "if" for clarity.
778
779 2014-05-07  Alexey Proskuryakov  <ap@apple.com>
780
781         Make blob size computation lazy
782         https://bugs.webkit.org/show_bug.cgi?id=132653
783
784         Reviewed by Anders Carlsson.
785
786         * fileapi/Blob.cpp:
787         (WebCore::Blob::Blob):
788         (WebCore::Blob::size):
789         * fileapi/Blob.h:
790         (WebCore::Blob::size): Deleted.
791         * fileapi/File.cpp:
792         (WebCore::File::size): Deleted.
793         * fileapi/File.h:
794         * fileapi/ThreadableBlobRegistry.cpp:
795         (WebCore::ThreadableBlobRegistry::registerFileBlobURL):
796         (WebCore::ThreadableBlobRegistry::registerBlobURL):
797         (WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):
798         (WebCore::ThreadableBlobRegistry::blobSize):
799         (WebCore::ThreadableBlobRegistry::unregisterBlobURL):
800         (WebCore::unregisterBlobURLTask): Deleted.
801         * fileapi/ThreadableBlobRegistry.h:
802         * platform/network/BlobData.cpp:
803         (WebCore::BlobData::appendData):
804         * platform/network/BlobRegistry.h:
805         * platform/network/BlobRegistryImpl.cpp:
806         (WebCore::BlobRegistryImpl::registerBlobURL):
807         (WebCore::BlobRegistryImpl::registerBlobURLForSlice):
808         * platform/network/BlobRegistryImpl.h:
809
810 2014-05-06  Simon Fraser  <simon.fraser@apple.com>
811
812         Add scrolling tree logging to RemoteLayerTree output
813         https://bugs.webkit.org/show_bug.cgi?id=132640
814
815         Reviewed by Beth Dakin.
816
817         Support scrolling tree logging in the RemoteLayerTree log channel
818         output.
819         
820         ScrollingStateTree::commit() unconditionally set treeStateClone->m_hasChangedProperties
821         to true, but we should set it based on original scrolling state tree's 
822         m_hasChangedProperties.
823         
824         We have to encode all of the scrolling state nodes anyway (they only encode
825         changed properties), but we can use this for future optimizations, and to
826         avoid spurious logging.
827         
828         * WebCore.exp.in: Export a couple of things we need.
829         * page/scrolling/ScrollingStateTree.cpp:
830         (WebCore::ScrollingStateTree::commit):
831
832 2014-05-07  Chris Fleizach  <cfleizach@apple.com>
833
834         AX: aria-expanded changes are not communicated to clients
835         https://bugs.webkit.org/show_bug.cgi?id=132642
836
837         Reviewed by Mario Sanchez Prada.
838
839         When aria-expanded changes on non list/tree items, send out a generic
840         AXExpandedChange notification.
841
842         Test: platform/mac/accessibility/expanded-notification.html
843
844         * accessibility/AXObjectCache.h:
845         * accessibility/AccessibilityRenderObject.cpp:
846         (WebCore::AccessibilityRenderObject::handleAriaExpandedChanged):
847         * accessibility/mac/AXObjectCacheMac.mm:
848         (WebCore::AXObjectCache::postPlatformNotification):
849
850 2014-05-07  Alexey Proskuryakov  <ap@apple.com>
851
852         Release build fix.
853
854         * platform/MIMETypeRegistry.cpp: (WebCore::initializeSupportedImageMIMETypes):
855         Removed unused globals.
856
857 2014-05-07  Alexey Proskuryakov  <ap@apple.com>
858
859         Eliminate "well known MIME type" support
860         https://bugs.webkit.org/show_bug.cgi?id=132654
861
862         Reviewed by Anders Carlsson.
863
864         Vestiges of FileSystem API.
865
866         * dom/DataTransfer.cpp:
867         (WebCore::DataTransfer::files):
868         (WebCore::DataTransfer::hasFileOfType):
869         * fileapi/File.cpp:
870         (WebCore::File::File):
871         (WebCore::File::contentTypeFromFilePathOrName):
872         * fileapi/File.h:
873         * html/FileInputType.cpp:
874         (WebCore::FileInputType::createFileList):
875         * platform/MIMETypeRegistry.cpp:
876         (WebCore::initializeSupportedImageMIMETypes):
877         (WebCore::findMimeType): Deleted.
878         (WebCore::MIMETypeRegistry::getWellKnownMIMETypeForExtension): Deleted.
879         * platform/MIMETypeRegistry.h:
880
881 2014-05-07  Christophe Dumez  <ch.dumez@samsung.com>
882
883         [HTML] Default argument to HTMLTableElement.insertRow() should be -1
884         https://bugs.webkit.org/show_bug.cgi?id=132651
885
886         Reviewed by Alexey Proskuryakov.
887
888         HTMLTableElement.insertRow()'s argument default value should be -1, not 0,
889         as per the specification:
890         http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#htmltableelement
891
892         The new behavior matches the one of Firefox 29 and IE11, and soon Blink:
893         https://codereview.chromium.org/270213007/
894
895         Test: fast/dom/HTMLTableElement/insertRow-default-argument.html
896
897         * html/HTMLTableElement.h:
898         * html/HTMLTableElement.idl:
899
900 2014-05-07  Chris Fleizach  <cfleizach@apple.com>
901
902         AX: AXSelectTextWithCriteria should support capitalize/lowercase/uppercase
903         https://bugs.webkit.org/show_bug.cgi?id=132622
904
905         Reviewed by Mario Sanchez Prada.
906
907         The select text with criteria mechanism used through accessibility needs to support
908         a few more parameters to be complete (including capitalize, lowercase and uppercase).
909
910         Updated: accessibility/select-text.html
911
912         * accessibility/AccessibilityObject.cpp:
913         (WebCore::AccessibilityObject::selectText):
914         * accessibility/AccessibilityObject.h:
915         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
916         (accessibilitySelectTextCriteriaForCriteriaParameterizedAttribute):
917         * rendering/RenderText.cpp:
918         (WebCore::makeCapitalized):
919         * rendering/RenderText.h:
920
921 2014-05-07  peavo@outlook.com  <peavo@outlook.com>
922
923         DocumentLoader::dataReceived assertion failed
924         https://bugs.webkit.org/show_bug.cgi?id=132017
925
926         Reviewed by Brent Fulgham.
927
928         We need to call didReceiveResponse client method before the didReceiveData client method, otherwise we get a lot of asserts.
929         This patch also fixes frequent crashes in downloadTimerCallback method on page loading.
930
931         * platform/network/curl/ResourceHandleManager.cpp:
932         (WebCore::calculateWebTimingInformations): Initialize local variables.
933         (WebCore::headerCallback): Call didReceiveResponse client method here instead of in downloadTimerCallback.
934         (WebCore::ResourceHandleManager::downloadTimerCallback): Remove call to didReceiveResponse method.
935         (WebCore::ResourceHandleManager::dispatchSynchronousJob): Removed empty line.
936
937 2014-05-06  Antti Koivisto  <antti@apple.com>
938
939         REGRESSION: Animated GIF inside compositing layer never resumes animation when scrolled back into view
940         https://bugs.webkit.org/show_bug.cgi?id=132608
941
942         Reviewed by Simon Fraser.
943
944         Test: fast/repaint/animation-after-layer-scroll.html
945
946         * rendering/RenderLayer.cpp:
947         (WebCore::RenderLayer::scrollTo):
948         
949             Check if any animations need to be restarted after layer scroll.
950
951 2014-05-07  Hyowon Kim  <hw1008.kim@samsung.com>
952
953         GraphicsLayer::client() should return a reference.
954         https://bugs.webkit.org/show_bug.cgi?id=126372
955
956         Reviewed by Simon Fraser.
957
958         GraphicsLayers always have a GraphicsLayerClient attached,
959         so make client() a reference and remove some unnecessary branches.
960         The author of the changes in the mac port is Andreas Kling <akling@apple.com>.
961
962         * WebCore.exp.in:
963         * platform/graphics/GraphicsLayer.cpp:
964         (WebCore::GraphicsLayer::GraphicsLayer):
965         (WebCore::GraphicsLayer::willBeDestroyed):
966         (WebCore::GraphicsLayer::paintGraphicsLayerContents):
967         (WebCore::GraphicsLayer::addRepaintRect):
968         (WebCore::dumpChildren):
969         (WebCore::GraphicsLayer::dumpProperties):
970         * platform/graphics/GraphicsLayer.h:
971         (WebCore::GraphicsLayer::client):
972         (WebCore::GraphicsLayer::pageScaleFactor):
973         (WebCore::GraphicsLayer::deviceScaleFactor):
974         * platform/graphics/GraphicsLayerFactory.h:
975         * platform/graphics/ca/GraphicsLayerCA.cpp:
976         (WebCore::GraphicsLayer::create):
977         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
978         (WebCore::GraphicsLayerCA::initialize):
979         (WebCore::GraphicsLayerCA::platformCALayerAnimationStarted):
980         (WebCore::GraphicsLayerCA::computePositionRelativeToBase):
981         (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly):
982         (WebCore::GraphicsLayerCA::computeVisibleRect):
983         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
984         (WebCore::GraphicsLayerCA::platformCALayerContentsScaleMultiplierForNewTiles):
985         (WebCore::GraphicsLayerCA::platformCALayerShouldAggressivelyRetainTiles):
986         (WebCore::GraphicsLayerCA::platformCALayerShouldTemporarilyRetainTileCohorts):
987         (WebCore::GraphicsLayerCA::updateContentsOpaque):
988         (WebCore::GraphicsLayerCA::updateContentsScale):
989         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
990         (WebCore::GraphicsLayerCA::noteLayerPropertyChanged):
991         * platform/graphics/ca/GraphicsLayerCA.h:
992         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
993         (WebCore::GraphicsLayer::create):
994         (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
995         (WebCore::GraphicsLayerTextureMapper::notifyChange):
996         (WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
997         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
998         * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
999         (WebCore::CompositingCoordinator::createRootLayer):
1000         (WebCore::CompositingCoordinator::createGraphicsLayer):
1001         * platform/graphics/texmap/coordinated/CompositingCoordinator.h:
1002         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
1003         (WebCore::CoordinatedGraphicsLayer::notifyFlushRequired):
1004         (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
1005         (WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):
1006         (WebCore::CoordinatedGraphicsLayer::animationStartedTimerFired):
1007         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
1008         * rendering/RenderLayerBacking.cpp:
1009         (WebCore::RenderLayerBacking::createGraphicsLayer):
1010         * rendering/RenderLayerCompositor.cpp:
1011         (WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
1012         (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
1013         (WebCore::RenderLayerCompositor::updateLayerForHeader):
1014         (WebCore::RenderLayerCompositor::updateLayerForFooter):
1015         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
1016         (WebCore::RenderLayerCompositor::ensureRootLayer):
1017
1018 2014-05-07  Xabier Rodriguez Calvar  <calvaris@igalia.com>
1019
1020         [GStreamer] Corrected typo
1021         https://bugs.webkit.org/show_bug.cgi?id=132609
1022
1023         Reviewed by Martin Robinson.
1024
1025         Corrected m_canFallBackToLastFinishedSeekPositon typo and
1026         initialized in the constructor to prevent problems in the future.
1027
1028         No test needed.
1029
1030         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1031         (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
1032         Initialized m_canFallBackToLastFinishedSeekPosition as false.
1033         (WebCore::MediaPlayerPrivateGStreamer::playbackPosition):
1034         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
1035         (WebCore::MediaPlayerPrivateGStreamer::asyncStateChangeDone):
1036         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
1037         m_canFallBackToLastFinishedSeekPositon ->
1038         m_canFallBackToLastFinishedSeekPosition
1039
1040 2014-05-07  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1041
1042         Convert PassOwnPtr to unique_ptr in CrossThreadTask.h
1043         https://bugs.webkit.org/show_bug.cgi?id=132605
1044
1045         Reviewed by Dirk Schulze.
1046
1047         * dom/CrossThreadTask.h: Converted.
1048
1049 2014-05-07  Carlos Garcia Campos  <cgarcia@igalia.com>
1050
1051         [SOUP] TLSErrors do not cause page load to fail when not ignored
1052         https://bugs.webkit.org/show_bug.cgi?id=121548
1053
1054         Reviewed by Sergio Villar Senin.
1055
1056         This only happens in case of redirection, when the initial URL is
1057         an HTTPS site with an invalid certificate, that redirects to
1058         another location. We are starting the redirection without checking
1059         the TLS errors.
1060
1061         * platform/network/soup/ResourceHandleSoup.cpp:
1062         (WebCore::sendRequestCallback): Check TLS errors before starting a
1063         possible redirection.
1064
1065 2014-05-07  Manuel Rego Casasnovas  <rego@igalia.com>
1066
1067         [CSS Grid Layout] Remove runtime feature
1068         https://bugs.webkit.org/show_bug.cgi?id=132382
1069
1070         Reviewed by Benjamin Poulain.
1071
1072         Remove cssGridLayoutEnabled setting. Update methods using it accordingly.
1073
1074         * WebCore.order:
1075         * css/CSSParser.cpp:
1076         (WebCore::CSSParserContext::CSSParserContext):
1077         (WebCore::operator==):
1078         (WebCore::isValidKeywordPropertyAndValue):
1079         (WebCore::CSSParser::parseValue):
1080         (WebCore::CSSParser::parseGridTemplateShorthand):
1081         (WebCore::CSSParser::parseGridAreaShorthand):
1082         (WebCore::CSSParser::cssGridLayoutEnabled): Deleted.
1083         * css/CSSParser.h:
1084         * css/CSSParserMode.h:
1085         * dom/Document.cpp:
1086         (WebCore::Document::cssGridLayoutEnabled): Deleted.
1087         * dom/Document.h:
1088         * page/Settings.in:
1089
1090 2014-05-07  Praveen R Jadhav  <praveen.j@samsung.com>
1091
1092         Fix build errors for BlobDataItem after r168391.
1093         https://bugs.webkit.org/show_bug.cgi?id=132643
1094
1095         Reviewed by Carlos Garcia Campos.
1096
1097         Patch updates BlobDataItem params usage in ResourceHandleSoup.cpp
1098         to be inline with r168391.
1099
1100         * platform/network/soup/ResourceHandleSoup.cpp:
1101         (WebCore::blobIsOutOfDate): BlobDataItem class is updated in r168391.
1102         Corresponding parameter changes are done to resolve build error.
1103         (WebCore::addEncodedBlobItemToSoupMessageBody): BlobDataItem class is updated
1104         in r168391. Corresponding parameter changes are done to resolve build error.
1105
1106 2014-05-06  Dean Jackson  <dino@apple.com>
1107
1108         Clean up the difference between painting focus rings and adding PDF annotations
1109         https://bugs.webkit.org/show_bug.cgi?id=132638
1110
1111         Reviewed by Simon Fraser.
1112
1113         The code to add a PDF annotation when printing was called from
1114         drawFocusRing, which is quite confusing. With just little movement
1115         of code, we can detect an annotation and call addPDFURLRect in the
1116         paint phase, and drawFocusRing becomes something that only
1117         draws focus rings.
1118
1119         * rendering/RenderInline.cpp:
1120         (WebCore::RenderInline::paintOutline): Split calls to drawFocusRing
1121         and addPDFURLRect.
1122         * rendering/RenderObject.cpp:
1123         (WebCore::RenderObject::paintFocusRing): Get rid of call to PDF.
1124         (WebCore::RenderObject::addPDFURLRect): Change the signature so it
1125         can be called externally, and calculates the rectangle itself.
1126         (WebCore::RenderObject::paintOutline): Split the calls.
1127         * rendering/RenderObject.h:
1128
1129 2014-05-06  Rik Cabanier  <cabanier@adobe.com>
1130
1131         Calling createPattern with a broken image must throw an invalidstate error
1132         https://bugs.webkit.org/show_bug.cgi?id=132407
1133
1134         Reviewed by Darin Adler.
1135
1136         Updated createPattern so it throws an invalidState exception
1137         if you pass it an image that is in the broken state.
1138
1139         Tests:
1140         * canvas/philip/tests/2d.pattern.image.broken.html:
1141         * canvas/philip/tests/2d.pattern.image.incomplete.empty.html:
1142         * fast/canvas/canvas-empty-image-pattern.html:
1143
1144         * html/canvas/CanvasRenderingContext2D.cpp:
1145         (WebCore::CanvasRenderingContext2D::createPattern):
1146
1147 2014-05-06  Jer Noble  <jer.noble@apple.com>
1148
1149         [iOS][Mac] Display sleeps while playing <video> content.
1150         https://bugs.webkit.org/show_bug.cgi?id=132624
1151
1152         Reviewed by Darin Adler.
1153
1154         On iOS and Mac, create a DisplaySleepDisablerCocoa rather than an (no-op) DisplaySleepDisabler.
1155
1156         * platform/cocoa/DisplaySleepDisablerCocoa.cpp:
1157         (WebCore::DisplaySleepDisabler::create):
1158         * platform/cocoa/DisplaySleepDisablerCocoa.h:
1159
1160 2014-05-06  Dean Jackson  <dino@apple.com>
1161
1162         [Mac] Allow focus rings to redraw themselves if necessary
1163         https://bugs.webkit.org/show_bug.cgi?id=132593
1164
1165         Fix iOS build.
1166
1167         * platform/graphics/mac/GraphicsContextMac.mm:
1168         (WebCore::GraphicsContext::drawFocusRing): We no longer use the color parameter.
1169
1170 2014-05-06  Dean Jackson  <dino@apple.com>
1171
1172         [Mac] Allow focus rings to redraw themselves if necessary
1173         https://bugs.webkit.org/show_bug.cgi?id=132593
1174
1175         Reviewed by Simon Fraser.
1176
1177         Mac allows focus rings to change rendering over time. Expose this
1178         functionality to WebKit by having the rendering code detect that
1179         a focused element has asked to repaint itself, and also have
1180         the FocusController object remember how long it has been since
1181         an element was focused.
1182
1183         This patch removes WebCoreNSCellExtras, since a better version is
1184         available in WebKitSystemInterface, and it was going to be cumbersome
1185         to port the code from there into WebKit.
1186
1187         * WebCore.exp.in: Export _wkDrawFocusRingAtTime and _wkDrawCellFocusRingWithFrameAtTime.
1188         * WebCore.xcodeproj/project.pbxproj: Remove WebCoreNSCellExtras.
1189         * page/FocusController.cpp:
1190         (WebCore::FocusController::FocusController): Initialize the repaint timer.
1191         (WebCore::FocusController::~FocusController): Stop the repaint timer on deletion.
1192         (WebCore::FocusController::setFocusedElement): Keep track of the current time when focused.
1193         (WebCore::FocusController::focusedElementNeedsRepaint): Start the repaint timer.
1194         (WebCore::FocusController::focusRepaintTimerFired): Ask the focused element to repaint itself.
1195         (WebCore::FocusController::timeSinceFocusWasSet):
1196         * page/FocusController.h: Expose timeSinceFocusWasSet() and focusedElementNeedsRepaint(), as
1197         well as add the timer for repainting.
1198
1199         * platform/ControlStates.h: Add timeSinceControlWasFocused member variable, allowing the platform
1200         code such as Theme to obtain the value from FocusController.
1201         (WebCore::ControlStates::ControlStates):
1202         (WebCore::ControlStates::timeSinceControlWasFocused):
1203         (WebCore::ControlStates::setTimeSinceControlWasFocused):
1204
1205         * platform/graphics/GraphicsContext.h:
1206         (WebCore::GraphicsContext::drawFocusRing): New Mac-only method that uses timeOffset.
1207
1208         * platform/graphics/mac/GraphicsContextMac.mm:
1209         (WebCore::drawFocusRingToContext): No need to pass in color and radius - these are now
1210         ignored in WKDrawFocusRing. However, I didn't want to change the signature of the
1211         WKSI function.
1212         (WebCore::drawFocusRingToContextAtTime): Call into the new method WKDrawFocusRingAtTime.
1213         (WebCore::GraphicsContext::drawFocusRing): Color and radius no longer used.
1214
1215         * platform/mac/ThemeMac.mm:
1216         (WebCore::checkboxMargins): Update the margins since our focus ring can be a lot bigger.
1217         (WebCore::radioMargins): Ditto.
1218         (WebCore::paintToggleButton): Drawing a focus ring might trigger a repaint too.
1219         (WebCore::buttonMargins): Increase the margins.
1220         (WebCore::paintButton): If our focus ring wants to be drawn again, set the ControlStates flag.
1221
1222         * platform/mac/WebCoreNSCellExtras.h: Removed.
1223         * platform/mac/WebCoreNSCellExtras.m: Removed.
1224
1225         * platform/mac/WebCoreSystemInterface.h: Declare the new methods.
1226         * platform/mac/WebCoreSystemInterface.mm:
1227
1228         * rendering/RenderElement.cpp:
1229         (WebCore::RenderElement::initializeStyle): Expand the overflow rects by the maximum
1230         focus ring width. This might be different from the current outline size.
1231         (WebCore::RenderElement::setStyle): Ditto.
1232
1233         * rendering/RenderObject.cpp:
1234         (WebCore::RenderObject::paintFocusRing): If we're on Mac, use the new drawFocusRing method,
1235         which sets a parameter to true if the focused element needs a repaint.
1236
1237         * rendering/RenderTheme.cpp:
1238         (WebCore::RenderTheme::updateControlStatesForRenderer): Copy the value from FocusController
1239         so that the platform Theme code can use it.
1240
1241         * rendering/RenderTheme.h:
1242         (WebCore::RenderTheme::platformFocusRingMaxWidth): Add a way to get the maximum width
1243         of a focus ring for the platform. This is used to extend the overflow rects.
1244         * rendering/RenderThemeMac.h: Override the focus ring width.
1245         * rendering/RenderThemeMac.mm: On newer versions of OS X, we have a larger focus ring.
1246         (WebCore::RenderThemeMac::platformFocusRingMaxWidth):
1247         (WebCore::RenderThemeMac::paintMenuList): If a menu is focused, and needs a repaint, mark
1248         it as such.
1249
1250 2014-05-06  Jer Noble  <jer.noble@apple.com>
1251
1252         [iOS] Animate AVPlayerLayer into and out of full screen
1253         https://bugs.webkit.org/show_bug.cgi?id=132603
1254
1255         Reviewed by Simon Fraser.
1256
1257         Rather than synchronize animations across the WebProcess / UIProcess boundary, animate
1258         the AVPlayerLayer into place by first resizing the full screen layer to occupy the
1259         entire screen in the WebProcess, and use a sublayerTransform animation in the UIProcess
1260         to scale the AVPlayer from its initial screen location, as well as back to its final screen
1261         location.
1262
1263         * platform/graphics/GeometryUtilities.cpp:
1264         (WebCore::largestRectWithAspectRatioInsideRect): Added utility method.
1265         * platform/graphics/GeometryUtilities.h:
1266         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1267         (-[WebAVVideoLayer init]): Added, initialize video gravity and enable child layer masking.
1268         (-[WebAVVideoLayer setBounds:]): Create a transform to scale the video area.
1269         (WebVideoFullscreenInterfaceAVKit::enterFullscreen): Block implicit animations during setup.
1270         (WebVideoFullscreenInterfaceAVKit::exitFullscreen): Reset the gravity to ResizeAspect
1271             if necessary.
1272
1273 2014-05-06  Alexey Proskuryakov  <ap@apple.com>
1274
1275         Make BlobDataItem use a refcounted object for files
1276         https://bugs.webkit.org/show_bug.cgi?id=132628
1277
1278         Reviewed by Anders Carlsson.
1279
1280         * CMakeLists.txt:
1281         * WebCore.vcxproj/WebCore.vcxproj:
1282         * WebCore.vcxproj/WebCore.vcxproj.filters:
1283         * WebCore.xcodeproj/project.pbxproj:
1284         Added BlobDataFileReference.{h|cpp}
1285
1286         * WebCore.exp.in: Removed unused exports.
1287
1288         * platform/network/BlobData.h:
1289         (WebCore::BlobDataItem::offset):
1290         (WebCore::BlobDataItem::BlobDataItem):
1291         Use a wrapper class for files, not a path. Changed to be more class-like accordingly.
1292
1293         * platform/network/BlobData.cpp:
1294         (WebCore::BlobData::appendData):
1295         (WebCore::BlobData::appendFile):
1296         (WebCore::BlobData::appendBlob): Deleted.
1297         (WebCore::BlobData::BlobData): Deleted.
1298         We never add blobs to BlobData, they are always resolved to data of file references.
1299         Lots of very confusing code to delete.
1300
1301         * platform/network/BlobDataFileReference.h: Added.
1302         * platform/network/BlobDataFileReference.cpp: Added.
1303         (WebCore::BlobDataFileReference::size):
1304         (WebCore::BlobDataFileReference::expectedModificationTime):
1305         (WebCore::BlobDataFileReference::computeFileSystemData):
1306         A unique reference to a file referenced by blob, to be preserved when you slice
1307         or combine blobs.
1308
1309         * platform/network/BlobRegistryImpl.cpp:
1310         (WebCore::BlobRegistryImpl::appendStorageItems):
1311         (WebCore::BlobRegistryImpl::registerFileBlobURL):
1312         (WebCore::BlobRegistryImpl::registerBlobURL):
1313         (WebCore::BlobRegistryImpl::blobSize):
1314         * platform/network/BlobResourceHandle.cpp:
1315         (WebCore::BlobResourceHandle::getSizeForNext):
1316         (WebCore::BlobResourceHandle::didGetSize):
1317         (WebCore::BlobResourceHandle::readDataSync):
1318         (WebCore::BlobResourceHandle::readFileSync):
1319         (WebCore::BlobResourceHandle::readDataAsync):
1320         (WebCore::BlobResourceHandle::readFileAsync):
1321         * platform/network/BlobResourceHandle.h:
1322         * platform/network/FormData.cpp:
1323         (WebCore::appendBlobResolved):
1324         Updated for BlobDataItem interface changes.
1325
1326 2014-05-06  Christophe Dumez  <ch.dumez@samsung.com>
1327
1328         [HTML] Default argument to HTMLTableRowElement.insertCell() should be -1
1329         https://bugs.webkit.org/show_bug.cgi?id=132615
1330
1331         Reviewed by Darin Adler.
1332
1333         HTMLTableRowElement.insertCell()'s argument default value should be -1, not
1334         0, as per the specification:
1335         http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-tr-element
1336
1337         The new behavior matches the one of Firefox 29 and IE11, and soon Blink:
1338         https://codereview.chromium.org/263323004/
1339
1340         Test: fast/dom/HTMLTableRowElement/insertCell-default-argument.html
1341
1342         * html/HTMLTableRowElement.h:
1343         * html/HTMLTableRowElement.idl:
1344
1345 2014-05-06  Oliver Hunt  <oliver@apple.com>
1346
1347         Fix build.
1348
1349         * WebCore.exp.in:
1350
1351 2014-05-06  Andreas Kling  <akling@apple.com>
1352
1353         Add missing line from r168384.
1354
1355         * dom/ContainerNode.h:
1356         (WebCore::ChildNodesLazySnapshot::~ChildNodesLazySnapshot):
1357
1358 2014-05-06  Oliver Hunt  <oliver@apple.com>
1359
1360         Can't make a booking at virginamerica.com
1361         https://bugs.webkit.org/show_bug.cgi?id=132626
1362
1363         Reviewed by Geoffrey Garen.
1364
1365         Test: fast/dom/assign-to-prototype-accessor-on-prototype-should-be-silent.html
1366
1367         We can't throw an exception when a site incorrectly attempts
1368         to use a dom property setter directly on the prototype as
1369         there are sites that do this as compatibility workarounds
1370         for old browsers. Instead we treat use of the setter on
1371         the prototype object in the same way we do getters, and just
1372         log a warning to the console.
1373
1374         * bindings/js/JSDOMBinding.cpp:
1375         (WebCore::reportDeprecatedSetterError):
1376         * bindings/js/JSDOMBinding.h:
1377         * bindings/scripts/CodeGeneratorJS.pm:
1378         (GenerateImplementation):
1379         * bindings/scripts/test/JS/JSTestInterface.cpp:
1380         (WebCore::setJSTestInterfaceImplementsStr2):
1381         (WebCore::setJSTestInterfaceImplementsStr3):
1382         (WebCore::setJSTestInterfaceImplementsNode):
1383         (WebCore::setJSTestInterfaceSupplementalStr2):
1384         (WebCore::setJSTestInterfaceSupplementalStr3):
1385         (WebCore::setJSTestInterfaceSupplementalNode):
1386         * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
1387         (WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
1388         (WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
1389         (WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
1390         (WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):
1391         * bindings/scripts/test/JS/JSTestObj.cpp:
1392         (WebCore::setJSTestObjTestSubObjEnabledBySettingConstructor):
1393         (WebCore::setJSTestObjEnumAttr):
1394         (WebCore::setJSTestObjByteAttr):
1395         (WebCore::setJSTestObjOctetAttr):
1396         (WebCore::setJSTestObjShortAttr):
1397         (WebCore::setJSTestObjUnsignedShortAttr):
1398         (WebCore::setJSTestObjLongAttr):
1399         (WebCore::setJSTestObjLongLongAttr):
1400         (WebCore::setJSTestObjUnsignedLongLongAttr):
1401         (WebCore::setJSTestObjStringAttr):
1402         (WebCore::setJSTestObjTestObjAttr):
1403         (WebCore::setJSTestObjXMLObjAttr):
1404         (WebCore::setJSTestObjCreate):
1405         (WebCore::setJSTestObjReflectedStringAttr):
1406         (WebCore::setJSTestObjReflectedIntegralAttr):
1407         (WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
1408         (WebCore::setJSTestObjReflectedBooleanAttr):
1409         (WebCore::setJSTestObjReflectedURLAttr):
1410         (WebCore::setJSTestObjReflectedCustomIntegralAttr):
1411         (WebCore::setJSTestObjReflectedCustomBooleanAttr):
1412         (WebCore::setJSTestObjReflectedCustomURLAttr):
1413         (WebCore::setJSTestObjTypedArrayAttr):
1414         (WebCore::setJSTestObjAttrWithGetterException):
1415         (WebCore::setJSTestObjAttrWithSetterException):
1416         (WebCore::setJSTestObjStringAttrWithGetterException):
1417         (WebCore::setJSTestObjStringAttrWithSetterException):
1418         (WebCore::setJSTestObjCustomAttr):
1419         (WebCore::setJSTestObjWithScriptStateAttribute):
1420         (WebCore::setJSTestObjWithScriptExecutionContextAttribute):
1421         (WebCore::setJSTestObjWithScriptStateAttributeRaises):
1422         (WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
1423         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
1424         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
1425         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
1426         (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
1427         (WebCore::setJSTestObjConditionalAttr1):
1428         (WebCore::setJSTestObjConditionalAttr2):
1429         (WebCore::setJSTestObjConditionalAttr3):
1430         (WebCore::setJSTestObjConditionalAttr4Constructor):
1431         (WebCore::setJSTestObjConditionalAttr5Constructor):
1432         (WebCore::setJSTestObjConditionalAttr6Constructor):
1433         (WebCore::setJSTestObjAnyAttribute):
1434         (WebCore::setJSTestObjMutablePoint):
1435         (WebCore::setJSTestObjImmutablePoint):
1436         (WebCore::setJSTestObjStrawberry):
1437         (WebCore::setJSTestObjStrictFloat):
1438         (WebCore::setJSTestObjId):
1439         (WebCore::setJSTestObjReplaceableAttribute):
1440         (WebCore::setJSTestObjNullableLongSettableAttribute):
1441         (WebCore::setJSTestObjNullableStringValue):
1442         (WebCore::setJSTestObjAttributeWithReservedEnumType):
1443         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1444         (WebCore::setJSTestSerializedScriptValueInterfaceValue):
1445         (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
1446         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
1447         (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
1448         (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
1449         (WebCore::setJSTestTypedefsAttrWithGetterException):
1450         (WebCore::setJSTestTypedefsAttrWithSetterException):
1451         (WebCore::setJSTestTypedefsStringAttrWithGetterException):
1452         (WebCore::setJSTestTypedefsStringAttrWithSetterException):
1453
1454 2014-05-06  Andreas Kling  <akling@apple.com>
1455
1456         ChildNodesLazySnapshot::m_childNodes needs two heap allocations.
1457         <https://webkit.org/b/132616>
1458
1459         This seems a bit silly, since ChildNodesLazySnapshot is always
1460         allocated on the stack.
1461
1462         Change it to be a bool + a Vector instead of using the nullity
1463         as a presence indicator. This way we also don't end up with an
1464         out-of-line ~OwnPtr for the Vector.
1465
1466         Reviewed by Geoff Garen.
1467
1468         * dom/ContainerNode.h:
1469         (WebCore::ChildNodesLazySnapshot::ChildNodesLazySnapshot):
1470         (WebCore::ChildNodesLazySnapshot::nextNode):
1471         (WebCore::ChildNodesLazySnapshot::takeSnapshot):
1472         (WebCore::ChildNodesLazySnapshot::hasSnapshot):
1473
1474 2014-05-06  Alexey Proskuryakov  <ap@apple.com>
1475
1476         Eliminate BlobStorageData
1477         https://bugs.webkit.org/show_bug.cgi?id=132617
1478
1479         Reviewed by Anders Carlsson.
1480
1481         * WebCore.vcxproj/WebCore.vcxproj:
1482         * WebCore.vcxproj/WebCore.vcxproj.filters:
1483         * WebCore.xcodeproj/project.pbxproj:
1484         * platform/network/BlobData.h:
1485         (WebCore::BlobData::create):
1486         (WebCore::BlobData::BlobData):
1487         * platform/network/BlobRegistryImpl.cpp:
1488         (WebCore::loadResourceSynchronously):
1489         (WebCore::BlobRegistryImpl::appendStorageItems):
1490         (WebCore::BlobRegistryImpl::registerFileBlobURL):
1491         (WebCore::BlobRegistryImpl::registerBlobURL):
1492         (WebCore::BlobRegistryImpl::registerBlobURLForSlice):
1493         (WebCore::BlobRegistryImpl::getBlobDataFromURL):
1494         (WebCore::BlobRegistryImpl::blobSize):
1495         * platform/network/BlobRegistryImpl.h:
1496         * platform/network/BlobResourceHandle.cpp:
1497         (WebCore::BlobResourceHandle::createAsync):
1498         (WebCore::BlobResourceHandle::loadResourceSynchronously):
1499         (WebCore::BlobResourceHandle::BlobResourceHandle):
1500         (WebCore::BlobResourceHandle::doStart):
1501         (WebCore::BlobResourceHandle::getSizeForNext):
1502         (WebCore::BlobResourceHandle::didGetSize):
1503         (WebCore::BlobResourceHandle::seek):
1504         (WebCore::BlobResourceHandle::readSync):
1505         (WebCore::BlobResourceHandle::readDataSync):
1506         (WebCore::BlobResourceHandle::readFileSync):
1507         (WebCore::BlobResourceHandle::readAsync):
1508         (WebCore::BlobResourceHandle::readDataAsync):
1509         (WebCore::BlobResourceHandle::readFileAsync):
1510         (WebCore::BlobResourceHandle::notifyResponseOnSuccess):
1511         * platform/network/BlobResourceHandle.h:
1512         * platform/network/BlobStorageData.h: Removed.
1513         * platform/network/FormData.cpp:
1514         (WebCore::appendBlobResolved):
1515         * platform/network/soup/ResourceHandleSoup.cpp:
1516         (WebCore::addEncodedBlobToSoupMessageBody):
1517
1518 2014-05-06  Simon Fraser  <simon.fraser@apple.com>
1519
1520         Fix the iOS build.
1521
1522         WebCore::Editor::replaceNodeFromPasteboard(WebCore::Node*, WTF::String const&) is Mac-only.
1523         Also sort the export file.
1524
1525         * WebCore.exp.in:
1526
1527 2014-05-06  David Hyatt  <hyatt@apple.com>
1528
1529         Begin Removal of Old Multi-Column Code.
1530         https://bugs.webkit.org/show_bug.cgi?id=132480
1531
1532         Reviewed by Andreas Kling.
1533
1534         * dom/Document.cpp:
1535         (WebCore::Document::regionBasedColumnsEnabled): Deleted.
1536         * dom/Document.h:
1537         * page/FrameView.cpp:
1538         (WebCore::updateLayerPositionFlags):
1539         * page/Settings.in:
1540         * rendering/LayoutState.cpp:
1541         (WebCore::LayoutState::LayoutState):
1542         (WebCore::LayoutState::clearPaginationInformation):
1543         (WebCore::LayoutState::addForcedColumnBreak): Deleted.
1544         * rendering/LayoutState.h:
1545         (WebCore::LayoutState::LayoutState):
1546         (WebCore::LayoutState::isPaginatingColumns): Deleted.
1547         * rendering/RenderBlock.cpp:
1548         (WebCore::RenderBlock::~RenderBlock):
1549         (WebCore::RenderBlock::addChildToContinuation):
1550         (WebCore::RenderBlock::addChild):
1551         (WebCore::RenderBlock::addChildIgnoringContinuation):
1552         (WebCore::RenderBlock::removeLeftoverAnonymousBlock):
1553         (WebCore::canMergeContiguousAnonymousBlocks):
1554         (WebCore::RenderBlock::removeChild):
1555         (WebCore::RenderBlock::recomputeLogicalWidth):
1556         (WebCore::RenderBlock::addOverflowFromChildren):
1557         (WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
1558         (WebCore::RenderBlock::simplifiedLayout):
1559         (WebCore::RenderBlock::layoutPositionedObjects):
1560         (WebCore::RenderBlock::paintObject):
1561         (WebCore::RenderBlock::selectionGaps):
1562         (WebCore::RenderBlock::nodeAtPoint):
1563         (WebCore::RenderBlock::offsetForContents):
1564         (WebCore::RenderBlock::computeIntrinsicLogicalWidths):
1565         (WebCore::RenderBlock::createAnonymousBoxWithSameTypeAs):
1566         (WebCore::RenderBlock::childBoxIsUnsplittableForFragmentation):
1567         (WebCore::RenderBlock::renderName):
1568         (WebCore::RenderBlock::addChildToAnonymousColumnBlocks): Deleted.
1569         (WebCore::RenderBlock::containingColumnsBlock): Deleted.
1570         (WebCore::RenderBlock::splitFlow): Deleted.
1571         (WebCore::RenderBlock::makeChildrenAnonymousColumnBlocks): Deleted.
1572         (WebCore::RenderBlock::columnsBlockForSpanningElement): Deleted.
1573         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): Deleted.
1574         (WebCore::RenderBlock::updateLogicalWidthAndColumnWidth): Deleted.
1575         (WebCore::RenderBlock::isTopLayoutOverflowAllowed): Deleted.
1576         (WebCore::RenderBlock::isLeftLayoutOverflowAllowed): Deleted.
1577         (WebCore::RenderBlock::paintColumnRules): Deleted.
1578         (WebCore::RenderBlock::initialBlockOffsetForPainting): Deleted.
1579         (WebCore::RenderBlock::blockDeltaForPaintingNextColumn): Deleted.
1580         (WebCore::RenderBlock::paintColumnContents): Deleted.
1581         (WebCore::ColumnRectIterator::ColumnRectIterator): Deleted.
1582         (WebCore::ColumnRectIterator::advance): Deleted.
1583         (WebCore::ColumnRectIterator::columnRect): Deleted.
1584         (WebCore::ColumnRectIterator::hasMore): Deleted.
1585         (WebCore::ColumnRectIterator::adjust): Deleted.
1586         (WebCore::ColumnRectIterator::update): Deleted.
1587         (WebCore::RenderBlock::hitTestColumns): Deleted.
1588         (WebCore::RenderBlock::adjustForColumnRect): Deleted.
1589         (WebCore::RenderBlock::availableLogicalWidth): Deleted.
1590         (WebCore::RenderBlock::columnGap): Deleted.
1591         (WebCore::RenderBlock::computeColumnCountAndWidth): Deleted.
1592         (WebCore::RenderBlock::requiresColumns): Deleted.
1593         (WebCore::RenderBlock::setComputedColumnCountAndWidth): Deleted.
1594         (WebCore::RenderBlock::updateColumnProgressionFromStyle): Deleted.
1595         (WebCore::RenderBlock::computedColumnWidth): Deleted.
1596         (WebCore::RenderBlock::computedColumnCount): Deleted.
1597         (WebCore::RenderBlock::columnInfo): Deleted.
1598         (WebCore::RenderBlock::columnCount): Deleted.
1599         (WebCore::RenderBlock::columnRectAt): Deleted.
1600         (WebCore::RenderBlock::adjustPointToColumnContents): Deleted.
1601         (WebCore::RenderBlock::adjustRectForColumns): Deleted.
1602         (WebCore::RenderBlock::flipForWritingModeIncludingColumns): Deleted.
1603         (WebCore::RenderBlock::adjustStartEdgeForWritingModeIncludingColumns): Deleted.
1604         (WebCore::RenderBlock::adjustForColumns): Deleted.
1605         (WebCore::RenderBlock::adjustIntrinsicLogicalWidthsForColumns): Deleted.
1606         (WebCore::RenderBlock::paginationUnit): Deleted.
1607         (WebCore::RenderBlock::createAnonymousColumnsWithParentRenderer): Deleted.
1608         (WebCore::RenderBlock::createAnonymousColumnSpanWithParentRenderer): Deleted.
1609         (WebCore::RenderBlock::computeLineGridPaginationOrigin): Deleted.
1610         * rendering/RenderBlock.h:
1611         (WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine):
1612         (WebCore::RenderBlock::createAnonymousBlock):
1613         (WebCore::RenderBlock::paintColumnRules):
1614         (WebCore::RenderBlock::createAnonymousColumnsBlock): Deleted.
1615         (WebCore::RenderBlock::createAnonymousColumnSpanBlock): Deleted.
1616         * rendering/RenderBlockFlow.cpp:
1617         (WebCore::RenderBlockFlow::adjustIntrinsicLogicalWidthsForColumns):
1618         (WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths):
1619         (WebCore::RenderBlockFlow::recomputeLogicalWidthAndColumnWidth):
1620         (WebCore::RenderBlockFlow::columnGap):
1621         (WebCore::RenderBlockFlow::computeColumnCountAndWidth):
1622         (WebCore::RenderBlockFlow::layoutBlock):
1623         (WebCore::inNormalFlow):
1624         (WebCore::RenderBlockFlow::applyBeforeBreak):
1625         (WebCore::RenderBlockFlow::applyAfterBreak):
1626         (WebCore::RenderBlockFlow::updateMinimumPageHeight):
1627         (WebCore::RenderBlockFlow::computeOverflow):
1628         (WebCore::RenderBlockFlow::addOverhangingFloats):
1629         (WebCore::RenderBlockFlow::hasOverhangingFloat):
1630         (WebCore::RenderBlockFlow::relayoutForPagination):
1631         (WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):
1632         (WebCore::RenderBlockFlow::requiresColumns):
1633         (WebCore::RenderBlockFlow::setComputedColumnCountAndWidth):
1634         (WebCore::RenderBlockFlow::updateColumnProgressionFromStyle):
1635         (WebCore::RenderBlockFlow::computedColumnWidth):
1636         (WebCore::RenderBlockFlow::computedColumnCount):
1637         * rendering/RenderBlockFlow.h:
1638         (WebCore::RenderBlockFlow::hasOverhangingFloats):
1639         * rendering/RenderBox.cpp:
1640         (WebCore::RenderBox::styleDidChange):
1641         (WebCore::RenderBox::offsetFromContainer):
1642         (WebCore::RenderBox::computeRectForRepaint):
1643         (WebCore::RenderBox::layoutOverflowRectForPropagation):
1644         * rendering/RenderBox.h:
1645         * rendering/RenderBoxModelObject.cpp:
1646         (WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
1647         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
1648         * rendering/RenderBoxModelObject.h:
1649         (WebCore::RenderBoxModelObject::canHaveBoxInfoInRegion):
1650         * rendering/RenderFlexibleBox.cpp:
1651         (WebCore::RenderFlexibleBox::layoutBlock):
1652         * rendering/RenderFlowThread.h:
1653         * rendering/RenderGeometryMap.cpp:
1654         (WebCore::canMapBetweenRenderers):
1655         * rendering/RenderInline.cpp:
1656         (WebCore::RenderInline::clippedOverflowRectForRepaint):
1657         (WebCore::RenderInline::computeRectForRepaint):
1658         (WebCore::RenderInline::offsetFromContainer):
1659         (WebCore::RenderInline::mapLocalToContainer):
1660         * rendering/RenderLayer.cpp:
1661         (WebCore::RenderLayer::RenderLayer):
1662         (WebCore::RenderLayer::updateLayerPositions):
1663         (WebCore::RenderLayer::updatePagination):
1664         (WebCore::accumulateOffsetTowardsAncestor):
1665         (WebCore::RenderLayer::paintList):
1666         (WebCore::RenderLayer::hitTestList):
1667         (WebCore::checkContainingBlockChainForPagination): Deleted.
1668         (WebCore::RenderLayer::useRegionBasedColumns): Deleted.
1669         (WebCore::RenderLayer::paintPaginatedChildLayer): Deleted.
1670         (WebCore::RenderLayer::paintChildLayerIntoColumns): Deleted.
1671         (WebCore::RenderLayer::hitTestPaginatedChildLayer): Deleted.
1672         (WebCore::RenderLayer::hitTestChildLayerColumns): Deleted.
1673         * rendering/RenderLayer.h:
1674         * rendering/RenderMultiColumnFlowThread.cpp:
1675         (WebCore::RenderMultiColumnFlowThread::shouldCheckColumnBreaks):
1676         * rendering/RenderMultiColumnFlowThread.h:
1677         * rendering/RenderObject.cpp:
1678         (WebCore::RenderObject::computeRectForRepaint):
1679         (WebCore::RenderObject::mapLocalToContainer):
1680         (WebCore::RenderObject::pushMappingToContainer):
1681         (WebCore::RenderObject::offsetFromContainer):
1682         * rendering/RenderObject.h:
1683         (WebCore::RenderObject::isAnonymousBlock):
1684         (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
1685         (WebCore::RenderObject::hasColumns): Deleted.
1686         (WebCore::RenderObject::setHasColumns): Deleted.
1687         (WebCore::RenderObject::isAnonymousColumnsBlock): Deleted.
1688         (WebCore::RenderObject::isAnonymousColumnSpanBlock): Deleted.
1689         (WebCore::RenderObject::adjustForColumns): Deleted.
1690         (WebCore::RenderObject::offsetForColumns): Deleted.
1691         * rendering/RenderText.cpp:
1692         (WebCore::RenderText::selectionRectForRepaint):
1693         * rendering/RenderView.cpp:
1694         (WebCore::RenderView::availableLogicalHeight):
1695         (WebCore::RenderView::pageOrViewLogicalHeight):
1696         (WebCore::RenderView::unextendedBackgroundRect):
1697         (WebCore::RenderView::backgroundRect):
1698         (WebCore::RenderView::shouldDisableLayoutStateForSubtree):
1699         (WebCore::RenderView::pageNumberForBlockProgressionOffset):
1700         (WebCore::RenderView::pageCount):
1701         (WebCore::RenderView::paginationUnit): Deleted.
1702         * rendering/RenderView.h:
1703         (WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
1704         (WebCore::LayoutStateMaintainer::push):
1705         * rendering/SimpleLineLayout.cpp:
1706         (WebCore::SimpleLineLayout::canUseFor):
1707         * rendering/svg/RenderSVGText.cpp:
1708         (WebCore::RenderSVGText::layout):
1709         * style/StyleResolveForDocument.cpp:
1710         (WebCore::Style::resolveForDocument):
1711
1712 2014-05-06  Brady Eidson  <beidson@apple.com>
1713
1714         Don't select an image that is about to have its menu shown.
1715         <rdar://problem/16807845> and https://bugs.webkit.org/show_bug.cgi?id=132579
1716
1717         Reviewed by Tim Horton.
1718
1719         * WebCore.exp.in:
1720
1721         * editing/Editor.h:
1722         * editing/mac/EditorMac.mm:
1723         (WebCore::Editor::replaceNodeFromPasteboard): New method that first selects
1724           the Node and then immediately pastes over it. Since it’s synchronous the 
1725           selection never has a chance to paint.
1726
1727         * html/shadow/mac/ImageControlsButtonElementMac.cpp:
1728         (WebCore::ImageControlsButtonElementMac::defaultEventHandler): Don’t select the image.
1729
1730 2014-05-06  Eric Carlson  <eric.carlson@apple.com>
1731
1732         [Mac] make metadata cue attributes consistent
1733         https://bugs.webkit.org/show_bug.cgi?id=132610
1734
1735         Reviewed by Jer Noble.
1736
1737         No new tests, updated http/tests/media/track-in-band-hls-metadata.html.
1738
1739         * platform/mac/SerializedPlatformRepresentationMac.mm:
1740         (WebCore::jsValueWithAVMetadataItemInContext): Don't include keys @dataTypeNamespace
1741             or @pictureType, @dataType -> @type.
1742
1743 2014-05-06  Brady Eidson  <beidson@apple.com>
1744
1745         "Flash of content without image" when pasting a raw image from the pasteboard
1746         <rdar://problem/16826199> and https://bugs.webkit.org/show_bug.cgi?id=132612
1747
1748         Reviewed by Tim Horton.
1749
1750         Let an ArchiveResource be flagged as "should load immediately":
1751         * loader/archive/ArchiveResource.cpp:
1752         (WebCore::ArchiveResource::ArchiveResource):
1753         * loader/archive/ArchiveResource.h:
1754         (WebCore::ArchiveResource::setShouldLoadImmediately):
1755         (WebCore::ArchiveResource::shouldLoadImmediately):
1756
1757         Set that flag on the ArchiveResource for the image.
1758         Note we quite explicitly do this only in the "read a single image" from the pasteboard
1759         case, because we don't want to do this synchronous step for multiple images at once
1760         such as when pasting a WebArchive:
1761         * editing/mac/EditorMac.mm:
1762         (WebCore::Editor::WebContentReader::readImage):
1763
1764         When creating a new CachedResource, if there is an ArchiveResource that is set to
1765         load immediately, populate the CachedResource immediately instead of scheduling a load:
1766         * loader/cache/CachedResourceLoader.cpp:
1767         (WebCore::CachedResourceLoader::requestResource):
1768
1769 2014-05-06  Alex Christensen  <achristensen@webkit.org>
1770
1771         Unreviewed build fix for debug after r168367.
1772
1773         * platform/NotImplemented.cpp:
1774         Added include NotImplemented.h.
1775
1776 2014-05-06  Alex Christensen  <achristensen@webkit.org>
1777
1778         Removed unnecessary notImplemented.h includes.
1779         https://bugs.webkit.org/show_bug.cgi?id=132587
1780
1781         Reviewed by Anders Carlsson.
1782
1783         * Modules/webdatabase/Database.cpp:
1784         * accessibility/AccessibilityObject.cpp:
1785         * bindings/js/Dictionary.h:
1786         * bindings/js/SerializedScriptValue.cpp:
1787         * html/HTMLMediaSession.cpp:
1788         * html/ImageDocument.cpp:
1789         * html/parser/HTMLFormattingElementList.cpp:
1790         * loader/appcache/ApplicationCacheStorage.cpp:
1791         * page/mac/EventHandlerMac.mm:
1792         * platform/NotImplemented.cpp:
1793         * platform/audio/ios/MediaSessionManagerIOS.mm:
1794         * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
1795         * platform/graphics/mac/GraphicsContext3DMac.mm:
1796         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
1797         * platform/ios/PlatformScreenIOS.mm:
1798         * platform/mac/PlatformScreenMac.mm:
1799         * platform/mac/WidgetMac.mm:
1800         * platform/mediastream/MediaStreamTrackPrivate.cpp:
1801         * platform/mediastream/mac/AVCaptureDeviceManager.mm:
1802         * platform/mediastream/mac/AVMediaCaptureSource.mm:
1803         * rendering/RenderGrid.cpp:
1804         * workers/SharedWorkerGlobalScope.cpp:
1805         * workers/WorkerGlobalScope.cpp:
1806         * workers/WorkerMessagingProxy.cpp:
1807         Removed notImplemented from list of includes.
1808
1809 2014-05-06  Enrica Casucci  <enrica@apple.com>
1810
1811         Unreviewed build fix after http://trac.webkit.org/changeset/168364
1812
1813         * rendering/RenderLineBreak.cpp:
1814
1815 2014-05-06  Christophe Dumez  <ch.dumez@samsung.com>
1816
1817         [HTML] Default argument to HTMLTableSectionElement.insertRow() should be -1
1818         https://bugs.webkit.org/show_bug.cgi?id=132570
1819
1820         Reviewed by Darin Adler.
1821
1822         HTMLTableSectionElement.insertRow()'s argument default value should be -1, not
1823         0, as per the specification:
1824         http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-tbody-element
1825
1826         The new behavior matches the one of Firefox 29 and IE11, and soon Blink:
1827         https://code.google.com/p/chromium/issues/detail?id=369803
1828
1829         Test: fast/dom/HTMLTableSectionElement/insertRow-default-argument.html
1830
1831         * html/HTMLTableSectionElement.h:
1832         * html/HTMLTableSectionElement.idl:
1833
1834 2014-05-05  Enrica Casucci  <enrica@apple.com>
1835
1836         REGRESSION(r155957): Selection rects are incorrect when the selection contains BR elements.
1837         https://bugs.webkit.org/show_bug.cgi?id=132596
1838         <rdar://problem/16692206>
1839
1840         Reviewed by Antti Koivisto.
1841
1842         This patch adds an implementation of collectSelectionRects to RenderLineBreak.
1843         It uses the same logic used by RenderText to compute and annotate the returned rect
1844         which is computed, like the caret rect, using information from the rootline box.
1845
1846         * rendering/RenderLineBreak.cpp:
1847         (WebCore::RenderLineBreak::collectSelectionRects):
1848         * rendering/RenderLineBreak.h:
1849
1850 2014-05-06  Andrei Bucur  <abucur@adobe.com>
1851
1852         [CSS Regions] Optimize the number of regions invalidations
1853         https://bugs.webkit.org/show_bug.cgi?id=132611
1854
1855         Reviewed by David Hyatt.
1856
1857         It is possible to invalidate the region chain of a flow thread
1858         during the layout of the region when its height is not final.
1859
1860         This patch places the check after the height of the region
1861         is determined, reducing the number of invalidations.
1862
1863         Tests: Less invalidations and repaints in the repaint tests for
1864         the flow threads.
1865
1866         * rendering/RenderBlockFlow.cpp:
1867         (WebCore::RenderBlockFlow::updateLogicalHeight):
1868         * rendering/RenderNamedFlowFragment.cpp:
1869         (WebCore::RenderNamedFlowFragment::layoutBlock):
1870         (WebCore::RenderNamedFlowFragment::invalidateRegionIfNeeded):
1871         * rendering/RenderNamedFlowFragment.h:
1872
1873 2014-05-03  Sam Weinig  <sam@webkit.org>
1874
1875         [Extended Background] Respect repeat-x/repeat-y when creating margin tiles
1876         https://bugs.webkit.org/show_bug.cgi?id=132534
1877
1878         Reviewed by Beth Dakin.
1879
1880         If the background image that is causing margin tiles only repeats in dimension only create
1881         the tiles in that dimension.
1882
1883         * page/FrameView.cpp:
1884         (WebCore::FrameView::updateExtendBackgroundIfNecessary):
1885         (WebCore::FrameView::calculateExtendedBackgroundMode):
1886         (WebCore::FrameView::updateTilesForExtendedBackgroundMode):
1887         (WebCore::FrameView::setBackgroundExtendsBeyondPage): Deleted.
1888         (WebCore::FrameView::needsExtendedBackgroundRectForPainting): Deleted.
1889         (WebCore::FrameView::setHasExtendedBackgroundRectForPainting): Deleted.
1890         * page/FrameView.h:
1891         * page/Settings.cpp:
1892         (WebCore::Settings::setBackgroundShouldExtendBeyondPage):
1893         * platform/graphics/TiledBacking.h:
1894         * platform/graphics/ca/mac/TileController.h:
1895         * platform/graphics/ca/mac/TileController.mm:
1896         (WebCore::TileController::hasHorizontalMargins):
1897         (WebCore::TileController::hasVerticalMargins):
1898         * rendering/RenderElement.cpp:
1899         (WebCore::RenderElement::styleWillChange):
1900         * rendering/RenderLayerBacking.cpp:
1901         (WebCore::RenderLayerBacking::setTiledBackingHasMargins):
1902         * rendering/RenderLayerBacking.h:
1903
1904 2014-05-06  Chris Fleizach  <cfleizach@apple.com>
1905
1906         AX: VoiceOver does not announce text changes for content editable regions in Safari
1907         https://bugs.webkit.org/show_bug.cgi?id=132577
1908
1909         Reviewed by Mario Sanchez Prada.
1910
1911         When text or children are changed inside of a contenteditable region, we need to 
1912         convert those actions into AXValueChange notifications.
1913
1914         Test: accessibility/content-editable-set-inner-text-generates-axvalue-notification.html
1915
1916         * accessibility/AccessibilityNodeObject.cpp:
1917         (WebCore::AccessibilityNodeObject::childrenChanged):
1918         (WebCore::AccessibilityNodeObject::hasContentEditableAttributeSet): Deleted.
1919         * accessibility/AccessibilityNodeObject.h:
1920         * accessibility/AccessibilityObject.cpp:
1921         (WebCore::AccessibilityObject::hasContentEditableAttributeSet):
1922         * accessibility/AccessibilityObject.h:
1923         * accessibility/AccessibilityRenderObject.cpp:
1924         (WebCore::AccessibilityRenderObject::textChanged):
1925
1926 2014-05-06  Dirk Schulze  <krit@webkit.org>
1927
1928         [SVG2] Share "on"- event attributes with HTMLElement
1929         https://bugs.webkit.org/show_bug.cgi?id=132604
1930
1931         Reviewed by Mihnea Ovidenie.
1932
1933         Share "on" event attribute parsing between SVGElement and HTMLElement.
1934
1935         Tests: fast/dom/script-tests/event-attribute-availability.js:
1936
1937         * html/HTMLElement.cpp:
1938         (WebCore::HTMLElement::populateEventNameForAttributeLocalNameMap):
1939         (WebCore::populateEventNameForAttributeLocalNameMap): Deleted.
1940         * html/HTMLElement.h: Make populateEventNameForAttributeLocalNameMap
1941             public for use in SVGElement.
1942         * svg/SVGElement.cpp: Use HTMLElement code to parse "on" event
1943             attributes.
1944         (WebCore::SVGElement::parseAttribute):
1945
1946 2014-05-05  Zan Dobersek  <zdobersek@igalia.com>
1947
1948         [Soup] Use std::unique_ptr<char[]> for the read buffer in SocketStreamHandle
1949         https://bugs.webkit.org/show_bug.cgi?id=132559
1950
1951         Reviewed by Carlos Garcia Campos.
1952
1953         Manage the read buffer array through a std::unique_ptr<char[]> object.
1954         This avoids handling with the raw pointer and also ensures that the memory
1955         allocated with the new[] operator is deleted with the delete[] operator,
1956         a problem exposed by the AddressSanitizer in WebSocket tests.
1957
1958         * platform/network/soup/SocketStreamHandle.h:
1959         * platform/network/soup/SocketStreamHandleSoup.cpp:
1960         (WebCore::SocketStreamHandle::SocketStreamHandle):
1961         (WebCore::SocketStreamHandle::connected):
1962         (WebCore::SocketStreamHandle::readBytes):
1963         (WebCore::SocketStreamHandle::platformClose):
1964
1965 2014-05-05  Dirk Schulze  <krit@webkit.org>
1966
1967         Adapt inline SVG sizing behavior to Firefox and Blink
1968         https://bugs.webkit.org/show_bug.cgi?id=132569
1969
1970         Reviewed by Dean Jackson.
1971
1972         This patch is ported from Blink CR 308992. Thanks to David Vest for helping
1973         with back porting his Blink patch. From the commit message:
1974
1975         "The basis of this change is to map explicit width and height
1976         attributes to CSS properties, essentially promoting them to
1977         presentation attributes. Note that implicit "100%" width and height
1978         are not mapped.
1979         
1980         This enables us to remove the concept of "percentage intrinsic size"
1981         and rely on normal CSS rules to resolve percentage values.
1982         
1983         The change has been approved by the SVG WG and the spec is being
1984         updated. Minutes here:
1985         
1986         http://www.w3.org/2014/04/07-svg-minutes.html#item03"
1987
1988         The new model was indeed approved by the SVG WG and is basically following
1989         the CSS 2.1 model for replaced elements.
1990
1991         With this patch WebKit, Firefox and Blink have the same behavior for inline SVG.
1992         This is the first successful approach to unify the sizing behavior of SVG
1993         across UAs.
1994
1995         Tests: svg/as-object/sizing/svg-in-object-placeholder-height-auto.html
1996                svg/as-object/sizing/svg-in-object-placeholder-height-fixed.html
1997                svg/as-object/sizing/svg-in-object-placeholder-height-percentage.html
1998                svg/in-html/sizing/svg-inline.html
1999
2000         * css/svg.css: Root SVG elements still need to be sized with height: 100% and
2001             width: 100%. This is necessary since width and height are presentation
2002             attributes now.
2003         (svg:root):
2004         * rendering/RenderBox.h:
2005         (WebCore::RenderBox::computeIntrinsicRatioInformation): Remove all special
2006             behavior for intrinsic and percentage based sizes in SVG. This simplifies and
2007             unifies the code a lot. Most of the logic that is used is in RenderBox and
2008             RenderReplaced now. RenderSVGRoot was cleaned up a lot and is much lighter. 
2009             And so it SVGSVGElement.
2010         * rendering/RenderBoxModelObject.cpp:
2011         (WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight):
2012         (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions):
2013         * rendering/RenderImage.cpp:
2014         (WebCore::RenderImage::computeIntrinsicRatioInformation):
2015         * rendering/RenderImage.h:
2016         * rendering/RenderReplaced.cpp:
2017         (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
2018         (WebCore::RenderReplaced::computeIntrinsicRatioInformation):
2019         (WebCore::RenderReplaced::computeReplacedLogicalWidth):
2020         (WebCore::RenderReplaced::computeReplacedLogicalHeight):
2021         (WebCore::RenderReplaced::computePreferredLogicalWidths):
2022         * rendering/RenderReplaced.h:
2023         * rendering/svg/RenderSVGRoot.cpp:
2024         (WebCore::RenderSVGRoot::computeIntrinsicRatioInformation):
2025         (WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
2026         (WebCore::RenderSVGRoot::computeReplacedLogicalHeight):
2027         (WebCore::RenderSVGRoot::hasRelativeDimensions):
2028         (WebCore::RenderSVGRoot::hasRelativeIntrinsicLogicalWidth): Deleted.
2029         (WebCore::RenderSVGRoot::hasRelativeLogicalHeight): Deleted.
2030         * rendering/svg/RenderSVGRoot.h:
2031         * svg/SVGElement.h:
2032         (WebCore::SVGElement::invalidateSVGPresentationAttributeStyle):
2033         * svg/SVGSVGElement.cpp:
2034         (WebCore::SVGSVGElement::isPresentationAttribute):
2035         (WebCore::SVGSVGElement::collectStyleForPresentationAttribute):
2036         (WebCore::SVGSVGElement::svgAttributeChanged):
2037         (WebCore::SVGSVGElement::currentViewportSize):
2038         (WebCore::SVGSVGElement::hasIntrinsicWidth):
2039         (WebCore::SVGSVGElement::hasIntrinsicHeight):
2040         (WebCore::SVGSVGElement::intrinsicWidth):
2041         (WebCore::SVGSVGElement::intrinsicHeight):
2042         (WebCore::SVGSVGElement::widthAttributeEstablishesViewport): Deleted.
2043         (WebCore::SVGSVGElement::heightAttributeEstablishesViewport): Deleted.
2044         * svg/SVGSVGElement.h:
2045         * svg/graphics/SVGImage.cpp:
2046         (WebCore::SVGImage::containerSize):
2047         * xml/XMLErrors.cpp: If an error occurs in a stand alone SVG file, we create
2048             an XHTML document with the error message and append the SVG file.
2049             This SVG file now follows the CSS sizing behavior as inline SVG.
2050             Therefore, we need to set width and height to 100% explicitly.
2051         (WebCore::XMLErrors::insertErrorMessageBlock):
2052
2053 2014-05-05  Ryuan Choi  <ryuan.choi@samsung.com>
2054
2055         [EFL] REGRESSION(167145): JavaScript media controls are broken
2056         https://bugs.webkit.org/show_bug.cgi?id=131573
2057
2058         Reviewed by Brent Fulgham.
2059
2060         * PlatformEfl.cmake: Add the localized strings file to the list of user agent scripts.
2061         * platform/efl/RenderThemeEfl.cpp:
2062         (WebCore::RenderThemeEfl::mediaControlsScript): Include the localized strings file in the script body.
2063
2064 2014-05-05  Jeremy Jones  <jeremyj@apple.com>
2065
2066         Implement scan backward and forward in video fullscreen.
2067         https://bugs.webkit.org/show_bug.cgi?id=132517
2068
2069         Reviewed by Simon Fraser.
2070
2071         Implement scanning forward and backward. This implements methods in 
2072         WebAVPlayerController and forwards them through WebVideoFullscreenModelMediaElement
2073         and on to HTMLMediaElement.
2074
2075         * WebCore.exp.in: necessary exports.
2076         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
2077         (-[WebAVPlayerController seekToTime:]):
2078         Use fastSeek in this case.
2079         (-[WebAVPlayerController canScanForward]): If you can play, you can scan.
2080         (+[WebAVPlayerController keyPathsForValuesAffectingCanScanForward]): ditto
2081         (-[WebAVPlayerController beginScanningForward:]): ditto
2082         (-[WebAVPlayerController endScanningForward:]): ditto
2083         (-[WebAVPlayerController canScanBackward]): If you can play, you can scan.
2084         (+[WebAVPlayerController keyPathsForValuesAffectingCanScanBackward]): ditto
2085         (-[WebAVPlayerController beginScanningBackward:]): ditto
2086         (-[WebAVPlayerController endScanningBackward:]): ditto
2087         (-[WebAVPlayerController canSeekToBeginning]):
2088         This looks at seekableRanges to determine if any seeking is possible.
2089         (+[WebAVPlayerController keyPathsForValuesAffectingCanSeekToBeginning]):
2090         depends on seekableRanges.
2091         (-[WebAVPlayerController seekToBeginning:]): seek to -ininity
2092         (-[WebAVPlayerController canSeekToEnd]):
2093         This looks at seekableRanges to determine if any seeking is possible.
2094         (+[WebAVPlayerController keyPathsForValuesAffectingCanSeekToEnd]):
2095         depends on seekableRanges.
2096         (-[WebAVPlayerController seekToEnd:]): seek to INFINITY.
2097         * platform/ios/WebVideoFullscreenModel.h:
2098         Add 4 new functions.
2099         * platform/ios/WebVideoFullscreenModelMediaElement.h:
2100         ditto
2101         * platform/ios/WebVideoFullscreenModelMediaElement.mm:
2102         (WebVideoFullscreenModelMediaElement::fastSeek): forwards to HTMLMediaEelement
2103         (WebVideoFullscreenModelMediaElement::beginScanningForward): forwards to HTMLMediaEelement
2104         (WebVideoFullscreenModelMediaElement::beginScanningBackward): forwards to HTMLMediaEelement
2105         (WebVideoFullscreenModelMediaElement::endScanning): forwards to HTMLMediaEelement
2106
2107 2014-05-05  Benjamin Poulain  <bpoulain@apple.com>
2108
2109         [iOS][WK2] Prefetch DNS hostnames on tap highlight
2110         https://bugs.webkit.org/show_bug.cgi?id=132509
2111
2112         Reviewed by Alexey Proskuryakov.
2113
2114         * WebCore.exp.in:
2115         * dom/Element.cpp:
2116         * dom/Element.h:
2117         (WebCore::Element::absoluteLinkURL()):
2118
2119 2014-05-05  Simon Fraser  <simon.fraser@apple.com>
2120
2121         [iOS WK2] Flickery scrolling inside overflow-scrolling: touch
2122         https://bugs.webkit.org/show_bug.cgi?id=132591
2123         <rdar://problem/16760466>
2124
2125         Reviewed by Tim Horton.
2126
2127         Avoid triggering layer tree commits that touch the layer's boundsOrigin
2128         while the user is scrolling in the UI process.
2129         
2130         Fix the WKOverflowScrollViewDelegate to pass along an "inUserInteration"
2131         flag to the ScrollingTree to say that we're in the middle of a user interaction
2132         (and also to send a final non-interactive update). That gets passed along
2133         to the web process, and turned into "SyncScrollingLayerPosition" update.
2134         AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll() consults
2135         this, and uses it to set a flag on the ScrollableArea to say that the scroll
2136         is a user scroll.
2137         
2138         RenderLayerBacking then makes use of this (in existing code, shared with WK1)
2139         to avoid triggering layer bounds setting. Instead, it now just calls syncBoundsOrigin(),
2140         which updates the GraphicsLayer without touching platform layers. This is necessary
2141         so that GraphicsLayer geometry is up-to-date (used for tiled layer visibility
2142         computations).
2143         
2144         Finally, a hack in GraphicsLayerCA::computeVisibleRect() is conditionalized
2145         for WebKit1 by checking the type of platform layer.
2146
2147         * WebCore.exp.in:
2148         * page/scrolling/AsyncScrollingCoordinator.cpp:
2149         (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
2150         * page/scrolling/ScrollingTree.cpp:
2151         (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
2152         * page/scrolling/ScrollingTree.h:
2153         * platform/graphics/GraphicsLayer.h:
2154         (WebCore::GraphicsLayer::syncBoundsOrigin):
2155         * platform/graphics/ca/GraphicsLayerCA.cpp:
2156         (WebCore::GraphicsLayerCA::computeVisibleRect):
2157         * rendering/RenderLayerBacking.cpp:
2158         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2159
2160 2014-05-05  Alexey Proskuryakov  <ap@apple.com>
2161
2162         Stop using BlobData on client side
2163         https://bugs.webkit.org/show_bug.cgi?id=132582
2164
2165         Reviewed by Sam Weinig.
2166
2167         Blob registration now uses either a single file path, or a vector of much simpler
2168         BlobPart objects, not an array with arbitrarily sliced blobs or files, which can't happen.
2169
2170         * Modules/websockets/WebSocket.cpp:(WebCore::WebSocket::didReceiveBinaryData):
2171         Use a new simpler Blob constructor.
2172
2173         * WebCore.xcodeproj/project.pbxproj: Added BlobPart, removed BlobRegistrationData.
2174
2175         * bindings/js/JSBlobCustom.cpp: (WebCore::JSBlobConstructor::constructJSBlob):
2176         Use Vector<BlobPart> instead of BlobData (1 line of code instead of 5).
2177
2178         * dom/DataTransfer.cpp: (WebCore::DataTransfer::hasFileOfType): Updated for
2179         File::contentTypeFromFilePathOrName rename.
2180
2181         * fileapi/Blob.cpp: (WebCore::Blob::Blob):
2182         * fileapi/Blob.h:
2183         (WebCore::Blob::create):
2184         (WebCore::Blob::deserialize):
2185         * fileapi/File.cpp:
2186         (WebCore::File::File):
2187         (WebCore::File::contentTypeFromFilePathOrName):
2188         (WebCore::createBlobDataForFileWithType): Deleted.
2189         (WebCore::createBlobDataForFile): Deleted.
2190         (WebCore::createBlobDataForFileWithName): Deleted.
2191         (WebCore::File::contentTypeFromFilePath): Deleted.
2192         * fileapi/File.h: (WebCore::File::deserialize): Deleted.
2193         Added and updated constructors to not use BlobData. Changed special case constructors
2194         to use name tags instead of non-enforced comments.
2195
2196         * fileapi/ThreadableBlobRegistry.h:
2197         * fileapi/ThreadableBlobRegistry.cpp:
2198         (WebCore::BlobRegistryContext::BlobRegistryContext): Updated with new data members
2199         that were split out of BlobData.
2200         (WebCore::ThreadableBlobRegistry::registerFileBlobURL): Added.
2201         (WebCore::ThreadableBlobRegistry::registerBlobURL): Updated to pass Content-Type
2202         explicitly, as it's no longer hidden in BlobData.
2203
2204         * fileapi/WebKitBlobBuilder.h:
2205         * fileapi/WebKitBlobBuilder.cpp:
2206         (WebCore::BlobBuilder::append):
2207         (WebCore::BlobBuilder::finalize):
2208         (WebCore::BlobBuilder::appendBytesData): Deleted.
2209         Updated to use BlobPart. There is no longer any need to special case Files,
2210         the registry takes care of that.
2211
2212         * platform/network/BlobData.h:
2213         * platform/network/BlobData.cpp:
2214         (WebCore::BlobDataItem::detachFromCurrentThread): Deleted.
2215         (WebCore::BlobData::detachFromCurrentThread): Deleted.
2216         BlobData will only be used on main thread by the registry.
2217
2218         * platform/network/BlobPart.h: Added. A new class to encapsulate a list of blobs
2219         that are combined into a new blob, as exposed to JS via Blob constructor.
2220
2221         * platform/network/BlobRegistry.h:
2222         * platform/network/BlobRegistryImpl.cpp:
2223         (WebCore::BlobRegistryImpl::registerFileBlobURL):
2224         (WebCore::BlobRegistryImpl::registerBlobURL):
2225         * platform/network/BlobRegistryImpl.h:
2226         Updated for the new registration methods. We no longer have arbitrary BlobDatas
2227         coming in.
2228
2229         * platform/network/FormData.cpp: Don't include BlobData for now (but really,
2230         BlobStorageData is the same thing, and they will be merged soon).
2231         Unfortunately, FormData is used by both client and registry side, and there is
2232         no clear delimitation at the time.
2233  
2234         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseBlob): Use the new simpler
2235         way to create a Blob.
2236
2237 2014-05-05  Benjamin Poulain  <benjamin@webkit.org>
2238
2239         Clean up Image Document and tweak the layout and viewport
2240         https://bugs.webkit.org/show_bug.cgi?id=132552
2241
2242         Reviewed by Sam Weinig.
2243
2244         The #ifdef in every function was making quite a mess. A lot of that code does
2245         not make sense on iOS.
2246
2247         This patch make a clean split between mouse related stuff and iOS.
2248
2249         Also:
2250         -Change the viewport to be only width based, and avoid scaling in portrait.
2251         -Center the image horizontally in the view.
2252
2253         * html/ImageDocument.cpp:
2254         (WebCore::ImageDocument::ImageDocument):
2255         (WebCore::ImageDocument::createDocumentStructure):
2256         (WebCore::ImageDocument::imageUpdated):
2257         (WebCore::ImageDocument::scale):
2258         (WebCore::ImageDocument::resizeImageToFit):
2259         (WebCore::ImageDocument::imageFitsInWindow):
2260         (WebCore::ImageDocument::windowSizeChanged):
2261         (WebCore::ImageDocument::imageClicked):
2262         * html/ImageDocument.h:
2263
2264 2014-05-05  Beth Dakin  <bdakin@apple.com>
2265
2266         Need a delegate that informs the UI process when the page's pin state changes
2267         https://bugs.webkit.org/show_bug.cgi?id=132583
2268         -and corresponding-
2269         <rdar://problem/16806231>
2270
2271         Reviewed by Anders Carlsson.
2272
2273         We should default all of these pin-state value to true.
2274         * page/scrolling/ScrollingTree.cpp:
2275         (WebCore::ScrollingTree::ScrollingTree):
2276
2277 2014-05-05  Christophe Dumez  <ch.dumez@samsung.com>
2278
2279         Named element cache can become invalid during HTMLCollection::updateNamedElementCache()
2280         https://bugs.webkit.org/show_bug.cgi?id=132575
2281
2282         Reviewed by Ryosuke Niwa.
2283
2284         Make sure the named element cache object stays valid in
2285         HTMLCollection::updateNamedElementCache() while it is populating it.
2286
2287         The method was previously creating and setting the cache first, and then start
2288         traversing the DOM tree to populate it. As a consequence, hasNamedElementCache()
2289         would start returning true before the cache is actually populated.
2290         The issue is that finding matches in the DOM tree can cause
2291         HTMLCollection::invalidateCache() to be called under certain circumstances and
2292         thus the named element cache object can become invalid while
2293         updateNamedElementCache() is populating it.
2294
2295         To avoid the issue, this patch updates updateNamedElementCache() so that the
2296         named element cache map is set *after* traversing the DOM tree. This way,
2297         hasNamedElementCache() returns false while the cache is being populated and
2298         there is no chance of it being invalidated too early.
2299
2300         Test: fast/dom/htmlcollection-selectedOptions-namedItem-crash.html
2301
2302         * html/HTMLCollection.cpp:
2303         (WebCore::HTMLCollection::updateNamedElementCache):
2304         * html/HTMLCollection.h:
2305         (WebCore::HTMLCollection::setNameItemCache):
2306         (WebCore::HTMLCollection::createNameItemCache): Deleted.
2307         * html/HTMLFormControlsCollection.cpp:
2308         (WebCore::HTMLFormControlsCollection::updateNamedElementCache):
2309
2310 2014-05-05  Benjamin Poulain  <benjamin@webkit.org>
2311
2312         [iOS][WK2] Special case ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture() for image documents
2313         https://bugs.webkit.org/show_bug.cgi?id=132553
2314
2315         Reviewed by Tim Horton.
2316
2317         * WebCore.exp.in:
2318         * WebCore.xcodeproj/project.pbxproj:
2319         * html/ImageDocument.cpp:
2320         (WebCore::ImageDocument::imageElement):
2321         * html/ImageDocument.h:
2322
2323 2014-05-05  Ion Rosca  <rosca@adobe.com>
2324
2325         [CSS Blending] Webkit-blend-mode fails for accelerated parent with overflow:hidden
2326         https://bugs.webkit.org/show_bug.cgi?id=126160
2327
2328         When the isolating layer has overflow:hidden, it will create a descendant clipping layer
2329         (m_childContainmentLayer), which will restrict the bleding layer to reading the backdrop
2330         from the isolating layer.
2331         The solution in this patch is to forbid the isolating layer to create a descendant clipping
2332         layer and make all the children to get their own ancestor clipping layers instead.
2333
2334         Reviewed by Dean Jackson.
2335
2336         Tests: css3/compositing/blend-mode-accelerated-parent-overflow-hidden.html
2337                css3/compositing/blend-mode-clip-accelerated-blending-canvas.html
2338                css3/compositing/blend-mode-clip-accelerated-blending-child.html
2339                css3/compositing/blend-mode-clip-accelerated-blending-double.html
2340                css3/compositing/blend-mode-clip-accelerated-blending-with-siblings.html
2341                css3/compositing/blend-mode-clip-accelerated-transformed-blending.html
2342                css3/compositing/blend-mode-clip-rect-accelerated-blending.html
2343
2344         * rendering/RenderLayerBacking.cpp:
2345         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2346         when the compositing ancestor isolates blending we take it into account for computing
2347         the clipping rect for this layer, because it was not allowed to create the descendant
2348         clipping layer. 
2349         * rendering/RenderLayerCompositor.cpp:
2350         (WebCore::RenderLayerCompositor::clippedByAncestor):
2351         when the compositing ancestor isolates blending we decide if a layer is clipped by ancestor
2352         by computing the clipping rect taking into account all the ancestors up to and including
2353         the compositing ancestor.
2354         (WebCore::RenderLayerCompositor::clipsCompositingDescendants):
2355         if a layer isolates blending, it is not allowed to create a descendant clipping layer.
2356
2357 2014-05-05  Dirk Schulze  <krit@webkit.org>
2358
2359         AX: tabindex support in SVG2
2360         https://bugs.webkit.org/show_bug.cgi?id=130212
2361
2362         Reviewed by Chris Fleizach.
2363
2364         The patch is mainly based on a patch for Blink by Erik Dahlström.
2365         https://src.chromium.org/viewvc/blink?revision=172964&view=revision
2366
2367         It adds support for tabindex to SVG by reusing the HTML code.
2368
2369         Spec: https://svgwg.org/svg2-draft/interact.html#sequential-focus-navigation-and-the-tabindex-attribute
2370         IDL attribute: https://svgwg.org/svg2-draft/types.html#__svg__SVGElement__tabIndex
2371
2372         Test: svg/custom/tabindex-order.html
2373
2374         * dom/Element.cpp:
2375         (WebCore::Element::setTabIndex): Moved from HTMLElement and shared with all elements.
2376         * dom/Element.h:
2377         * html/HTMLAnchorElement.cpp: Remove outdated comment.
2378         (WebCore::HTMLAnchorElement::canStartSelection):
2379         * html/HTMLElement.cpp:
2380         (WebCore::HTMLElement::setTabIndex): Deleted.
2381         * html/HTMLElement.h:
2382         * svg/SVGAElement.cpp: Uses the same logic as HTMLAnchorElement now.
2383         (WebCore::SVGAElement::tabIndex):
2384         (WebCore::SVGAElement::supportsFocus):
2385         (WebCore::SVGAElement::isMouseFocusable):
2386         (WebCore::SVGAElement::isKeyboardFocusable):
2387         (WebCore::SVGAElement::canStartSelection):
2388         * svg/SVGAElement.h:
2389         * svg/SVGCircleElement.h:
2390         * svg/SVGClipPathElement.h:
2391         * svg/SVGDefsElement.h:
2392         * svg/SVGElement.cpp:
2393         (WebCore::SVGElement::tabIndex): Return -1 if element can not be focused.
2394         (WebCore::SVGElement::parseAttribute):
2395         (WebCore::SVGElement::isMouseFocusable):
2396         (WebCore::SVGElement::isKeyboardFocusable): Deleted. Use function on Element.
2397         * svg/SVGElement.h:
2398         * svg/SVGElement.idl:
2399         * svg/SVGEllipseElement.h:
2400         * svg/SVGGElement.h:
2401         * svg/SVGGraphicsElement.h: Remove supportsFocus() from inheriting functions.
2402             Don't just return true. SVG elements should not be focusable by default.
2403             Instead check if tabindex was set explicitly.
2404         * svg/SVGImageElement.h:
2405         * svg/SVGLineElement.h:
2406         * svg/SVGPathElement.h:
2407         * svg/SVGPolyElement.h:
2408         * svg/SVGRectElement.h:
2409         * svg/SVGSVGElement.h:
2410         * svg/SVGSwitchElement.h:
2411         * svg/SVGSymbolElement.h:
2412         * svg/SVGTextElement.h:
2413
2414 2014-05-05  Jeremy Jones  <jeremyj@apple.com>
2415
2416         Implement beginScrubbing and endScrubbing for video fullscreen.
2417         https://bugs.webkit.org/show_bug.cgi?id=132520
2418
2419         Reviewed by Eric Carlson.
2420
2421         Plumb through beginScrubbing and endScrubbing from AVKit down to HTMLMediaElement.
2422         This keeps the playback state consistent while scrubbing and allows playback state
2423         to return to the original state when scrubbing is complete.
2424
2425         * WebCore.exp.in:
2426         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
2427         (-[WebAVPlayerController beginScrubbing:]):
2428         (-[WebAVPlayerController endScrubbing:]):
2429         * platform/ios/WebVideoFullscreenModel.h:
2430         * platform/ios/WebVideoFullscreenModelMediaElement.h:
2431         * platform/ios/WebVideoFullscreenModelMediaElement.mm:
2432         (WebVideoFullscreenModelMediaElement::beginScrubbing):
2433         (WebVideoFullscreenModelMediaElement::endScrubbing):
2434
2435 2014-05-05  Tim Horton  <timothy_horton@apple.com>
2436
2437         More long hangs under IOSurfacePool::evict
2438         https://bugs.webkit.org/show_bug.cgi?id=132576
2439         <rdar://problem/16769469>
2440
2441         Reviewed by Simon Fraser.
2442
2443         * platform/graphics/cg/IOSurfacePool.cpp:
2444         (WebCore::IOSurfacePool::evict):
2445         If the pool is too full, we should be evicting in-use surfaces
2446         even if the size of the in-use surfaces has dropped below maximumInUseBytes,
2447         otherwise we can get stuck in an infinite loop with 0 cached surfaces
2448         and 1+ in-use surfaces.
2449
2450 2014-05-05  Radu Stavila  <stavila@adobe.com>
2451
2452         [CSS Regions] Remove regionLayoutUpdate event
2453         https://bugs.webkit.org/show_bug.cgi?id=132564
2454
2455         Reviewed by Simon Fraser.
2456
2457         The regionLayoutUpdate event was removed from the regions spec and was replaced by two other events: 
2458         regionOversetChange and regionFragmentChange.
2459
2460         No new tests needed, this patch removes a feature.
2461
2462         * dom/EventNames.h:
2463         * dom/WebKitNamedFlow.cpp:
2464         (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent): Deleted.
2465         * dom/WebKitNamedFlow.h:
2466         * inspector/InspectorCSSAgent.cpp:
2467         (WebCore::InspectorCSSAgent::resetNonPersistentData):
2468         (WebCore::InspectorCSSAgent::willRemoveNamedFlow):
2469         (WebCore::UpdateRegionLayoutTask::UpdateRegionLayoutTask): Deleted.
2470         (WebCore::UpdateRegionLayoutTask::scheduleFor): Deleted.
2471         (WebCore::UpdateRegionLayoutTask::unschedule): Deleted.
2472         (WebCore::UpdateRegionLayoutTask::reset): Deleted.
2473         (WebCore::UpdateRegionLayoutTask::timerFired): Deleted.
2474         (WebCore::InspectorCSSAgent::didUpdateRegionLayout): Deleted.
2475         (WebCore::InspectorCSSAgent::regionLayoutUpdated): Deleted.
2476         * inspector/InspectorCSSAgent.h:
2477         * inspector/InspectorInstrumentation.cpp:
2478         (WebCore::InspectorInstrumentation::didUpdateRegionLayoutImpl): Deleted.
2479         * inspector/InspectorInstrumentation.h:
2480         (WebCore::InspectorInstrumentation::didUpdateRegionLayout): Deleted.
2481         * inspector/protocol/CSS.json:
2482         * rendering/RenderNamedFlowFragment.cpp:
2483         (WebCore::RenderNamedFlowFragment::updateOversetState):
2484         * rendering/RenderNamedFlowThread.cpp:
2485         (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
2486         (WebCore::RenderNamedFlowThread::removeRegionFromThread):
2487         (WebCore::RenderNamedFlowThread::layout):
2488         (WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEventIfNeeded): Deleted.
2489         (WebCore::RenderNamedFlowThread::regionLayoutUpdateEventTimerFired): Deleted.
2490         * rendering/RenderNamedFlowThread.h:
2491
2492 2014-05-05  Rik Cabanier  <cabanier@adobe.com>
2493
2494         Enhance IDL compiler so it supports unrestricted float and double
2495         https://bugs.webkit.org/show_bug.cgi?id=132460
2496
2497         Reviewed by Dirk Schulze.
2498
2499         Updated IDL compiler so it supports unrestricted types.
2500         Also updated the IDL files so they use unrestricted float and
2501         double.
2502
2503         Tests:
2504         * canvas/philip/tests/2d.gradient.linear.nonfinite.html:
2505         * canvas/philip/tests/2d.gradient.object.invalidoffset.html:
2506         * canvas/philip/tests/2d.gradient.radial.nonfinite.html:
2507         * canvas/philip/tests/2d.imageData.get.nonfinite.html:
2508         * canvas/philip/tests/2d.imageData.put.nonfinite.html:
2509         * canvas/philip/tests/2d.missingargs.html:
2510         * fast/canvas/canvas-getImageData-invalid-expected.txt:
2511         * fast/canvas/canvas-putImageData-expected.txt:
2512         * fast/canvas/canvas-putImageData.js:
2513
2514         * Modules/battery/BatteryManager.idl:
2515         * Modules/gamepad/Gamepad.idl:
2516         * Modules/geolocation/Coordinates.idl:
2517         * Modules/mediasource/MediaSource.idl:
2518         * Modules/mediasource/SourceBuffer.idl:
2519         * Modules/mediasource/VideoPlaybackQuality.idl:
2520         * Modules/mediastream/MediaSourceStates.idl:
2521         * Modules/proximity/DeviceProximityEvent.idl:
2522         * Modules/speech/SpeechGrammar.idl:
2523         * Modules/speech/SpeechGrammarList.idl:
2524         * Modules/speech/SpeechRecognitionAlternative.idl:
2525         * Modules/speech/SpeechSynthesisEvent.idl:
2526         * Modules/speech/SpeechSynthesisUtterance.idl:
2527         * Modules/webaudio/AnalyserNode.idl:
2528         * Modules/webaudio/AudioBuffer.idl:
2529         * Modules/webaudio/AudioBufferSourceNode.idl:
2530         * Modules/webaudio/AudioContext.idl:
2531         * Modules/webaudio/AudioListener.idl:
2532         * Modules/webaudio/AudioParam.idl:
2533         * Modules/webaudio/AudioProcessingEvent.idl:
2534         * Modules/webaudio/OfflineAudioContext.idl:
2535         * Modules/webaudio/OscillatorNode.idl:
2536         * Modules/webaudio/PannerNode.idl:
2537         * bindings/scripts/CodeGenerator.pm:
2538         * bindings/scripts/CodeGeneratorGObject.pm:
2539         (GetGValueTypeName):
2540         (GetGlibTypeName):
2541         * bindings/scripts/CodeGeneratorJS.pm:
2542         (GenerateImplementation):
2543         (GenerateParametersCheck):
2544         (JSValueToNative):
2545         * bindings/scripts/CodeGeneratorObjC.pm:
2546         (GetObjCType):
2547         (GenerateHeader):
2548         * bindings/scripts/test/TestObj.idl:
2549         * bindings/scripts/test/TestTypedefs.idl:
2550         * css/CSSPrimitiveValue.idl:
2551         * css/WebKitCSSMatrix.idl:
2552         * dom/ClientRect.idl:
2553         * dom/DeviceMotionEvent.idl:
2554         * dom/DeviceOrientationEvent.idl:
2555         * dom/Document.idl:
2556         * dom/RequestAnimationFrameCallback.idl:
2557         * dom/Touch.idl:
2558         * dom/TransitionEvent.idl:
2559         * dom/WebKitAnimationEvent.idl:
2560         * dom/WebKitTransitionEvent.idl:
2561         * dom/WheelEvent.idl:
2562         * html/HTMLInputElement.idl:
2563         * html/HTMLMediaElement.idl:
2564         * html/HTMLMeterElement.idl:
2565         * html/HTMLProgressElement.idl:
2566         * html/MediaController.idl:
2567         * html/TextMetrics.idl:
2568         * html/TimeRanges.idl:
2569         * html/canvas/CanvasRenderingContext2D.idl:
2570         * html/canvas/WebGLRenderingContext.idl:
2571         * html/track/DataCue.idl:
2572         * html/track/TextTrackCue.idl:
2573         * html/track/VTTCue.idl:
2574         * html/track/VTTRegion.idl:
2575         * inspector/InspectorFrontendHost.idl:
2576         * inspector/ScriptProfile.idl:
2577         * inspector/ScriptProfileNode.idl:
2578         * page/DOMWindow.idl:
2579         * page/Performance.idl:
2580         * page/PerformanceEntry.idl:
2581         * page/PerformanceResourceTiming.idl:
2582         * page/SpeechInputResult.idl:
2583         * page/WebKitPoint.idl:
2584         * svg/SVGAngle.idl:
2585         * svg/SVGAnimatedNumber.idl:
2586         * svg/SVGAnimationElement.idl:
2587         * svg/SVGFEDropShadowElement.idl:
2588         * svg/SVGFEGaussianBlurElement.idl:
2589         * svg/SVGFEMorphologyElement.idl:
2590         * svg/SVGGlyphRefElement.idl:
2591         * svg/SVGLength.idl:
2592         * svg/SVGMatrix.idl:
2593         * svg/SVGNumber.idl:
2594         * svg/SVGPathElement.idl:
2595         * svg/SVGPathSegArcAbs.idl:
2596         * svg/SVGPathSegArcRel.idl:
2597         * svg/SVGPathSegCurvetoCubicAbs.idl:
2598         * svg/SVGPathSegCurvetoCubicRel.idl:
2599         * svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
2600         * svg/SVGPathSegCurvetoCubicSmoothRel.idl:
2601         * svg/SVGPathSegCurvetoQuadraticAbs.idl:
2602         * svg/SVGPathSegCurvetoQuadraticRel.idl:
2603         * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
2604         * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
2605         * svg/SVGPathSegLinetoAbs.idl:
2606         * svg/SVGPathSegLinetoHorizontalAbs.idl:
2607         * svg/SVGPathSegLinetoHorizontalRel.idl:
2608         * svg/SVGPathSegLinetoRel.idl:
2609         * svg/SVGPathSegLinetoVerticalAbs.idl:
2610         * svg/SVGPathSegLinetoVerticalRel.idl:
2611         * svg/SVGPathSegMovetoAbs.idl:
2612         * svg/SVGPathSegMovetoRel.idl:
2613         * svg/SVGPoint.idl:
2614         * svg/SVGRect.idl:
2615         * svg/SVGSVGElement.idl:
2616         * svg/SVGTextContentElement.idl:
2617         * svg/SVGTransform.idl:
2618         * svg/SVGZoomEvent.idl:
2619         * testing/InternalSettings.idl:
2620         * testing/Internals.idl:
2621         * xml/XPathResult.idl:
2622
2623 2014-05-05  Tim Horton  <timothy_horton@apple.com>
2624
2625         Use a layer delegate instead of web_disableAllActions wherever possible
2626         https://bugs.webkit.org/show_bug.cgi?id=132560
2627         <rdar://problem/16459284>
2628
2629         Reviewed by Simon Fraser.
2630
2631         * WebCore.exp.in:
2632         * WebCore.xcodeproj/project.pbxproj:
2633         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2634         (PlatformCALayerMac::commonInit):
2635         If we own the platform layer, set its delegate to the action-disabling WebActionDisablingCALayerDelegate.
2636         If we don't, its actual owner might want to control the delegate, so continue using web_disableAllActions.
2637
2638         * platform/graphics/cocoa/WebActionDisablingCALayerDelegate.h: Added.
2639         * platform/graphics/cocoa/WebActionDisablingCALayerDelegate.mm: Added.
2640         (+[WebActionDisablingCALayerDelegate shared]):
2641         (-[WebActionDisablingCALayerDelegate actionForLayer:forKey:]):
2642         Add a class that can act as the delegate of a CALayer, and disables all actions.
2643
2644         * platform/graphics/cocoa/WebCoreCALayerExtras.h: Renamed from Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.h.
2645         * platform/graphics/cocoa/WebCoreCALayerExtras.mm: Renamed from Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.mm.
2646         (-[CALayer web_disableAllActions]):
2647         Move WebCoreCALayerExtras from mac/ to cocoa/.
2648
2649 2014-05-05  Martin Hock  <mhock@apple.com>
2650
2651         Session-aware plugin autostart data
2652         https://bugs.webkit.org/show_bug.cgi?id=131758
2653         <rdar://problem/15906540>
2654
2655         Reviewed by Alexey Proskuryakov.
2656
2657         * html/HTMLPlugInImageElement.cpp:
2658         (WebCore::HTMLPlugInImageElement::userDidClickSnapshot):
2659         * page/PlugInClient.h:
2660
2661 2014-05-05  Radu Stavila  <stavila@adobe.com>
2662
2663         [CSS Regions] Elements with overflow:auto are not painted inside regions when following a float
2664         https://bugs.webkit.org/show_bug.cgi?id=131161
2665
2666         Reviewed by David Hyatt.
2667
2668         When a float-avoiding element (such as overflow:auto) is flowed into a flow thread after a float, its 
2669         logical left is not set on its frameRect or its layer's topLeft, but is instead kept in its RenderBoxRegionInfo
2670         structure. In some situation, this causes paint rejection to kick-in because intersecting the layer's rect
2671         (which DOESN'T contain the logical left from the region info object) with the computed background rect 
2672         (which contains the logical left from the region info object) results in an empty rect.
2673
2674         Test: fast/regions/overflow-auto-after-float.html
2675
2676         * rendering/RenderLayer.cpp:
2677         (WebCore::RenderLayer::calculateClipRects):
2678
2679 2014-05-05  Andrei Bucur  <abucur@adobe.com>
2680
2681         [CSSRegions] Slider displayed wrong in regions
2682         https://bugs.webkit.org/show_bug.cgi?id=132243
2683
2684         Reviewed by Mihnea Ovidenie.
2685
2686         In case a box didn't have a range, getRegionRangeForBox was searching for
2687         the top-most unplittable ancestor. This is not correct in every case. It's
2688         possible to have a box with range that has children without ranges (e.g. an
2689         absolutely positioned inline box with shadow descendants).
2690
2691         I've modified getRegionRangeForBox to search for the first ancestor that
2692         has a cached range and use that instead of looking for an unsplittable box.
2693         The range of the box is the region at the top of the box, clamped by the
2694         range of the ancestor. This will be correct all the time once all the layout
2695         systems are region range aware and are able to cache it.
2696
2697         Test: fast/regions/positioned-slider-in-regions.html
2698
2699         * rendering/RenderFlowThread.cpp:
2700         (WebCore::RenderFlowThread::hasRegionRangeForBox):
2701         (WebCore::RenderFlowThread::getRegionRangeForBox):
2702         * rendering/RenderFlowThread.h:
2703
2704 2014-05-05  Andrei Bucur  <abucur@adobe.com>
2705
2706         [CSS Regions] ASSERT when hovering over region
2707         https://bugs.webkit.org/show_bug.cgi?id=128809
2708
2709         Reviewed by Mihnea Ovidenie.
2710
2711         There's no point in hit-testing a box for a region if it's not contained inside
2712         that region.
2713
2714         Test: fast/regions/hit-test-box-non-containing-region.html
2715
2716         * rendering/RenderBox.cpp:
2717         (WebCore::RenderBox::nodeAtPoint):
2718
2719 2014-05-04  Andreas Kling  <akling@apple.com>
2720
2721         Optimize JSRopeString for resolving directly to AtomicString.
2722         <https://webkit.org/b/132548>
2723
2724         Add two bindings generator attributes for parameters to influence
2725         the way that JS rope strings are resolved:
2726
2727         - AtomicString
2728
2729             Generates code that avoids allocating a new StringImpl if there
2730             is already an existing AtomicString we can reuse.
2731
2732         - RequiresExistingAtomicString
2733
2734             Generates code that fails immediately if the provided string
2735             is not found in the AtomicString table. This is now used for
2736             document.getElementById(), and works because any existing ID
2737             is guaranteed to be in the table.
2738
2739         Reviewed by Filip Pizlo.
2740
2741         * bindings/scripts/CodeGeneratorJS.pm:
2742         (GenerateParametersCheck):
2743         (JSValueToNative):
2744         * bindings/scripts/IDLAttributes.txt:
2745         * dom/Document.idl:
2746
2747 2014-05-04  Simon Fraser  <simon.fraser@apple.com>
2748
2749         [iOS WK2] Compositing layers in iframes are misplaced
2750         https://bugs.webkit.org/show_bug.cgi?id=132554
2751         <rdar://problem/16203027>
2752
2753         Reviewed by Benjamin Poulain.
2754
2755         Have requiresScrollLayer() only consider frameView.delegatesScrolling()
2756         for the main frame, so that iframes get scroll layers (even though they
2757         will never scroll), so that the rest of geometry code works as on other
2758         platforms.
2759
2760         * rendering/RenderLayerCompositor.cpp:
2761         (WebCore::RenderLayerCompositor::requiresScrollLayer):
2762
2763 2014-05-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2764
2765         Use std::unique_ptr in m_taskTimer of Notification class
2766         https://bugs.webkit.org/show_bug.cgi?id=132544
2767
2768         Reviewed by Andreas Kling.
2769
2770         No new tests, no behavior change.
2771
2772         * Modules/notifications/Notification.cpp:
2773         (WebCore::Notification::Notification):
2774         * Modules/notifications/Notification.h: Use std::unique_ptr instead of OwnPtr.
2775
2776 2014-05-04  Tim Horton  <timothy_horton@apple.com>
2777
2778         Long hangs under IOSurfacePool::evict
2779         https://bugs.webkit.org/show_bug.cgi?id=132549
2780         <rdar://problem/16769469>
2781
2782         Reviewed by Simon Fraser.
2783
2784         * platform/graphics/cg/IOSurfacePool.cpp:
2785         (WebCore::IOSurfacePool::willAddSurface):
2786         Run eviction before adding the new surface to m_bytesCached/m_inUseBytesCached.
2787         We use the additionalSize parameter to make space for the new surface.
2788
2789         (WebCore::IOSurfacePool::evict):
2790         If we want to free up the entire pool, we can do so by throwing away everything.
2791         This also avoids an underflow if additionalSize is larger than the maximum pool size.
2792
2793 2014-05-04  Pratik Solanki  <psolanki@apple.com>
2794
2795         Shortcircuit shouldUseCredentialStorage callback
2796         https://bugs.webkit.org/show_bug.cgi?id=132308
2797         <rdar://problem/16806708>
2798
2799         Reviewed by Alexey Proskuryakov.
2800
2801         If we are going to return true from the shouldUseCredentialStorage callback then we don't
2802         really need to have CFNetwork/Foundation call us. We can just disable the callback and
2803         CFNetwork will assume true. Add a separate subclass that implements this callback when we
2804         need to return false. We can also eliminate the corresponding async callbacks. This avoids
2805         pingponging between dispatch queue and main thread in the common case.
2806
2807         No new tests because no change in functionality.
2808
2809         * WebCore.exp.in:
2810         * platform/network/ResourceHandle.cpp:
2811         * platform/network/ResourceHandle.h:
2812         * platform/network/ResourceHandleClient.cpp:
2813         * platform/network/ResourceHandleClient.h:
2814         * platform/network/cf/ResourceHandleCFNet.cpp:
2815         (WebCore::ResourceHandle::createCFURLConnection):
2816         (WebCore::ResourceHandle::shouldUseCredentialStorage):
2817         * platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
2818         * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
2819         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::shouldUseCredentialStorage):
2820         * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
2821         * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
2822         * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
2823         * platform/network/mac/ResourceHandleMac.mm:
2824         (WebCore::ResourceHandle::start):
2825         (WebCore::ResourceHandle::makeDelegate):
2826         (WebCore::ResourceHandle::delegate):
2827         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
2828         (WebCore::ResourceHandle::shouldUseCredentialStorage):
2829         * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h:
2830         * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
2831         (-[WebCoreResourceHandleWithCredentialStorageAsOperationQueueDelegate connectionShouldUseCredentialStorage:]):
2832         * platform/network/soup/ResourceHandleSoup.cpp:
2833
2834 2014-05-04  Brent Fulgham  <bfulgham@apple.com>
2835
2836         [iOS] deviceScaleFactor is being double-applied when rendering captions in full screen mode 
2837         https://bugs.webkit.org/show_bug.cgi?id=132481
2838         <rdar://problem/16507482>
2839
2840         Reviewed by Jer Noble.
2841
2842         Add a new 'syncTextTrackBounds' method (and relaying functions) to keep the text track container in sync
2843         with changes to the video player's display layer.
2844
2845         * html/HTMLMediaElement.cpp:
2846         (WebCore::HTMLMediaElement::syncTextTrackBounds: Added.
2847         * html/HTMLMediaElement.h:
2848         * html/shadow/MediaControlElements.cpp:
2849         (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Don't set the platform scale factor here. It is already
2850         being accounted for in the createTextTrackRepresentationImage method.
2851         (WebCore::MediaControlTextTrackContainerElement::updateSizes): Synchronize the text track representation
2852         with any new video layer changes.
2853         * platform/graphics/MediaPlayer.cpp:
2854         (WebCore::MediaPlayer::syncTextTrackBounds): Added.
2855         * platform/graphics/MediaPlayer.h:
2856         * platform/graphics/MediaPlayerPrivate.h:
2857         (WebCore::MediaPlayerPrivateInterface::syncTextTrackBounds): Added.
2858         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2859         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2860         (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer): Use new sync function.
2861         (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame): Ditto.
2862         (WebCore::MediaPlayerPrivateAVFoundationObjC::syncTextTrackBounds): Added. Keep the text track layer size in sync with
2863         the current video layer size. This may change during animations, rotations, etc.
2864         (WebCore::MediaPlayerPrivateAVFoundationObjC::setTextTrackRepresentation): Use new sync function.
2865
2866 2014-05-04  Beth Dakin  <bdakin@apple.com>
2867
2868         Top content inset: Margin tiles should not display in the inset area when pinned 
2869         to the top of the page
2870         https://bugs.webkit.org/show_bug.cgi?id=132535
2871         -and corresponding-
2872         <rdar://problem/16613039>
2873
2874         Reviewed by Simon Fraser.
2875
2876         Prior to this change, topContentInset was implemented by positioning 
2877         RenderLayerCompositor’s m_rootContentLayer based on the inset value. In order to 
2878         ensure that no content is displayed in the inset area when we are pinned to the 
2879         top of the page, we’ll have to take a different approach. In this patch, when you 
2880         are pinned to the top of the page, the m_rootContentLayer is positioned at (0,0), 
2881         much like it would be without an inset, but the m_clip layer IS positioned at (0, 
2882         topContentInset). Then for all y-scroll values between 0 and topContentInset, the 
2883         positions of the clip layer and the contents layer are adjusted so that the clip 
2884         layer approaches a position of (0,0), and the root layer approaches a position of 
2885         (0, topContentInset). This makes sure that any content above the top the document 
2886         is aways clipped out of the inset area.
2887
2888         In order to achieve this, the scrolling thread needs to know about the 
2889         topContentInset, the clip layer, and the root contents layer.
2890
2891         AsyncScrollingCoordinator::updateScrollingNode() now takes an additional parameter 
2892         for the clip layer. Also export the topContentInset symbol for UI-side 
2893         compositing.
2894         * WebCore.exp.in:
2895
2896         Here is the new computation. Implemented in one spot that can be called from the 
2897         scrolling thread, AsyncScrollingCoordinator and RenderLayerCompositor.
2898         * page/FrameView.cpp:
2899         (WebCore::FrameView::yPositionForInsetClipLayer):
2900         (WebCore::FrameView::yPositionForRootContentLayer):
2901         * page/FrameView.h:
2902
2903         Set the topContentInset, the insetClipLayer, and the scrolledContentsLayer when 
2904         appropriate.
2905         * page/scrolling/AsyncScrollingCoordinator.cpp:
2906         (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
2907         (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
2908
2909         Set or sync the positions for the inset layer and the contents layer.
2910         (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
2911         (WebCore::AsyncScrollingCoordinator::updateScrollingNode):
2912         * page/scrolling/AsyncScrollingCoordinator.h:
2913
2914         Convenience functions for getting the clipLayer() and the rootContentLayer() from 
2915         the RenderLayerCompositor.
2916         * page/scrolling/ScrollingCoordinator.cpp:
2917         (WebCore::ScrollingCoordinator::insetClipLayerForFrameView):
2918         (WebCore::ScrollingCoordinator::rootContentLayerForFrameView):
2919         * page/scrolling/ScrollingCoordinator.h:
2920         (WebCore::ScrollingCoordinator::updateScrollingNode):
2921
2922         ScrollingStateScrolling nodes have two new members now. m_insetClipLayer and 
2923         m_topContentInset. We can use m_scrolledContentsLayer for the rootContentsLayer 
2924         since previously that member was not used for FrameViews; it was only used for 
2925         accelerated overflow:scroll nodes.
2926         * page/scrolling/ScrollingStateScrollingNode.cpp:
2927         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
2928         (WebCore::ScrollingStateScrollingNode::setTopContentInset):
2929         (WebCore::ScrollingStateScrollingNode::setInsetClipLayer):
2930         * page/scrolling/ScrollingStateScrollingNode.h:
2931
2932         Similarly, ScrollingTreeScrollingNode has two new members for m_topContentInset 
2933         and m_clipLayer.
2934         * page/scrolling/ScrollingTreeScrollingNode.cpp:
2935         (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
2936         (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
2937         * page/scrolling/ScrollingTreeScrollingNode.h:
2938         (WebCore::ScrollingTreeScrollingNode::topContentInset):
2939         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
2940         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
2941         (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
2942
2943         Compute positions for the two new layers.
2944         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
2945
2946         Now use the static FrameView functions to compute the positions for these layers.
2947         * rendering/RenderLayerCompositor.cpp:
2948         (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
2949         (WebCore::RenderLayerCompositor::positionForClipLayer):
2950         (WebCore::RenderLayerCompositor::clipLayer):
2951         (WebCore::RenderLayerCompositor::rootContentLayer):
2952         (WebCore::RenderLayerCompositor::updateRootLayerPosition):
2953         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
2954         (WebCore::RenderLayerCompositor::ensureRootLayer):
2955         (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
2956         * rendering/RenderLayerCompositor.h:
2957
2958 2014-05-04  Benjamin Poulain  <benjamin@webkit.org>
2959
2960         Clear the Selector Query caches on memory pressure
2961         https://bugs.webkit.org/show_bug.cgi?id=132545
2962
2963         Reviewed by Andreas Kling.
2964
2965         The Selector Query Cache can use quite a bit of memory if many
2966         complex selectors are compiled. This patch makes sure the cache gets
2967         cleared on memory pressure.
2968
2969         * dom/Document.cpp:
2970         (WebCore::Document::clearSelectorQueryCache):
2971         (WebCore::Document::setCompatibilityMode):
2972         (WebCore::Document::updateBaseURL):
2973         * dom/Document.h:
2974         * dom/SelectorQuery.cpp:
2975         (WebCore::SelectorQueryCache::invalidate): Deleted.
2976         * dom/SelectorQuery.h:
2977         * platform/MemoryPressureHandler.cpp:
2978         (WebCore::MemoryPressureHandler::releaseMemory):
2979
2980 2014-05-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2981
2982         Convert OwnPtr to std::unique_ptr in CDM
2983         https://bugs.webkit.org/show_bug.cgi?id=132467
2984
2985         Reviewed by Andreas Kling.
2986
2987         Use std::unique_ptr in CDM class.
2988
2989         No new tests, no behavior change.
2990
2991         * Modules/encryptedmedia/CDM.cpp:
2992         (WebCore::CDM::create):
2993         (WebCore::CDM::CDM):
2994         * Modules/encryptedmedia/CDM.h:
2995         * Modules/encryptedmedia/CDMPrivateMediaPlayer.h:
2996         (WebCore::CDMPrivateMediaPlayer::CDMPrivateMediaPlayer):
2997         (WebCore::CDMPrivateMediaPlayer::create):
2998         * Modules/encryptedmedia/MediaKeys.cpp:
2999         (WebCore::MediaKeys::create):
3000         (WebCore::MediaKeys::MediaKeys):
3001         * Modules/encryptedmedia/MediaKeys.h:
3002         * WebCore.exp.in:
3003
3004 2014-05-03  Commit Queue  <commit-queue@webkit.org>
3005
3006         Unreviewed, rolling out r168232.
3007         https://bugs.webkit.org/show_bug.cgi?id=132543
3008
3009         broke ~15 tests on WK2 debug (Requested by kling on #webkit).
3010
3011         Reverted changeset:
3012
3013         "Shortcircuit shouldUseCredentialStorage callback"
3014         https://bugs.webkit.org/show_bug.cgi?id=132308
3015         http://trac.webkit.org/changeset/168232
3016
3017 2014-05-03  Andreas Kling  <akling@apple.com>
3018
3019         RenderSVGResourcePattern should deal in RenderElement&.
3020         <https://webkit.org/b/132536>
3021
3022         Tweak buildPattern() and buildTileImageTransform() to take RenderElement&
3023         instead of RenderObject* since we know that these functions will always
3024         be called with non-null RenderElement subclasses.
3025
3026         Reviewed by Sam Weinig.
3027
3028         * rendering/svg/RenderSVGResourceContainer.cpp:
3029         (WebCore::RenderSVGResourceContainer::shouldTransformOnTextPainting):
3030         * rendering/svg/RenderSVGResourceContainer.h:
3031         * rendering/svg/RenderSVGResourceGradient.cpp:
3032         (WebCore::RenderSVGResourceGradient::applyResource):
3033         * rendering/svg/RenderSVGResourcePattern.cpp:
3034         (WebCore::RenderSVGResourcePattern::buildPattern):
3035         (WebCore::RenderSVGResourcePattern::applyResource):
3036         (WebCore::RenderSVGResourcePattern::buildTileImageTransform):
3037         * rendering/svg/RenderSVGResourcePattern.h:
3038
3039 2014-05-03  Yusuke Suzuki  <utatane.tea@gmail.com>
3040
3041         CSS JIT: optimize direct / indirect adjacent's traversal backtracking
3042         https://bugs.webkit.org/show_bug.cgi?id=132319
3043
3044         Reviewed by Benjamin Poulain.
3045
3046         Since adjacent backtracking stack reference is pre-allocated
3047         in prologue in http://trac.webkit.org/changeset/166834,
3048         clearing stack phase is not needed. So we can drop
3049         JumpToClearAdjacentTail from backtracking action and simplify
3050         backtracking handling.
3051         And optimize direct / indirect adjacent's traversal backtracking by
3052         using appropriate backtracking height.
3053
3054         When solving adjacent traversal backtracking action,
3055         1) When there's no descendant relation on the right, traversal
3056         failure becomes global failure.
3057         2) When `tagNameMatchedBacktrackingStartHeightFromDescendant` ==
3058         `heightFromDescendant` + 1, the descendant backtracking starts with
3059         the parent of the current element. So we can use the current element
3060         and the backtracking action is JumpToDescendantTreeWalkerEntryPoint.
3061         3) Otherwise, currently we take the conservative approach,
3062         JumpToDescendantTail.
3063
3064         NOTE:
3065         And if `hasDescendantRelationOnTheRight` is true and there's no child
3066         fragment on the right, the backtracking element register is not
3067         effective. So we should ensure that fragment doesn't use the
3068         backtracking element register. Such a fragment fulfills the following
3069         conditions. 1. tagNameMatchedBacktrackingStartHeightFromDescendant is
3070         always 1 (tagNames.size(), that contains only descendant fragment) 2.
3071         heightFromDescendant is always 0 (-- See
3072         computeBacktrackingHeightFromDescendant implementation) Therefore such
3073         a fragment's action always becomes
3074         JumpToDescendantTreeWalkerEntryPoint. So we can ensure that the
3075         backtracking element register is not used.
3076
3077         Test: fast/selectors/backtracking-adjacent.html
3078
3079         * cssjit/SelectorCompiler.cpp:
3080         (WebCore::SelectorCompiler::solveDescendantBacktrackingActionForChild):
3081         (WebCore::SelectorCompiler::solveAdjacentTraversalBacktrackingAction):
3082         (WebCore::SelectorCompiler::solveBacktrackingAction):
3083         (WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
3084         (WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures):
3085         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAdjacentBacktrackingTail):
3086         (WebCore::SelectorCompiler::isAfterChildRelation): Deleted.
3087
3088 2014-05-03  Andreas Kling  <akling@apple.com>
3089
3090         Clear the JSString cache when under memory pressure.
3091         <https://webkit.org/b/132539>
3092
3093         The WeakGCMap used for fast mapping from StringImpl* to JSString*
3094         can actually get pretty big, and if we find ourselves under memory
3095         pressure, it's entirely inessential.
3096
3097         1.1 MB progression on Membuster3.
3098
3099         Reviewed by Sam Weinig.
3100
3101         * platform/MemoryPressureHandler.cpp:
3102         (WebCore::MemoryPressureHandler::releaseMemory):
3103
3104 2014-05-03  Benjamin Poulain  <benjamin@webkit.org>
3105
3106         [iOS][WK2] Support disabling speculative tiling
3107         https://bugs.webkit.org/show_bug.cgi?id=132512
3108
3109         Reviewed by Tim Horton.
3110
3111         Move ScrollView::setScrollVelocity() and ScrollView::computeCoverageRect() to FrameView.
3112         When speculative tiling is disabled, return an unmodified exposed rect.
3113
3114         Time/velocity adjusments are completely unnecessary at the moment since speculative tiling
3115         is enabled as soon as the view scrolls.
3116
3117         * WebCore.exp.in:
3118         * page/FrameView.cpp:
3119         (WebCore::FrameView::setScrollVelocity):
3120         (WebCore::FrameView::computeCoverageRect):
3121         * page/FrameView.h:
3122         * platform/ScrollView.h:
3123         * platform/ios/ScrollViewIOS.mm:
3124         (WebCore::ScrollView::setScrollVelocity): Deleted.
3125         (WebCore::ScrollView::computeCoverageRect): Deleted.
3126
3127 2014-05-02  Pratik Solanki  <psolanki@apple.com>
3128
3129         Shortcircuit shouldUseCredentialStorage callback
3130         https://bugs.webkit.org/show_bug.cgi?id=132308
3131         <rdar://problem/16806708>
3132
3133         Reviewed by Alexey Proskuryakov.
3134
3135         If we are going to return true from the shouldUseCredentialStorage callback then we don't
3136         really need to have CFNetwork/Foundation call us. We can just disable the callback and
3137         CFNetwork will assume true. Add a separate subclass that implements this callback when we
3138         need to return false. We can also eliminate the corresponding async callbacks. This avoids
3139         pingponging between dispatch queue and main thread in the common case.
3140
3141         No new tests because no change in functionality.
3142
3143         * WebCore.exp.in:
3144         * platform/network/ResourceHandle.cpp:
3145         * platform/network/ResourceHandle.h:
3146         * platform/network/ResourceHandleClient.cpp:
3147         * platform/network/ResourceHandleClient.h:
3148         * platform/network/cf/ResourceHandleCFNet.cpp:
3149         (WebCore::ResourceHandle::createCFURLConnection):
3150         (WebCore::ResourceHandle::shouldUseCredentialStorage):
3151         * platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
3152         * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
3153         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::shouldUseCredentialStorage):
3154         * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
3155         * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
3156         * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
3157         * platform/network/mac/ResourceHandleMac.mm:
3158         (WebCore::ResourceHandle::start):
3159         (WebCore::ResourceHandle::makeDelegate):
3160         (WebCore::ResourceHandle::delegate):
3161         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
3162         (WebCore::ResourceHandle::shouldUseCredentialStorage):
3163         * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h:
3164         * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
3165         (-[WebCoreResourceHandleWithCredentialStorageAsOperationQueueDelegate connectionShouldUseCredentialStorage:]):
3166         * platform/network/soup/ResourceHandleSoup.cpp:
3167
3168 2014-05-03  Andreas Kling  <akling@apple.com>
3169
3170         Invalidate scrollbars when custom scrollbar style changes dynamically.
3171         <https://webkit.org/b/132529>
3172
3173         Add a ScrollView::styleDidChange() and call that from RenderView::styleDidChange()
3174         so that the scrollbars are sure to get repainted with potentially different style.
3175
3176         Reviewed by Antti Koivisto.
3177
3178         Test: fast/css/scrollbar-dynamic-style-change.html
3179
3180         * platform/ScrollView.cpp:
3181         (WebCore::ScrollView::styleDidChange):
3182         * platform/ScrollView.h:
3183         * rendering/RenderView.cpp:
3184         (WebCore::RenderView::styleDidChange):
3185
3186 2014-05-03  Simon Fraser  <simon.fraser@apple.com>
3187
3188         Very fuzzy layers under non-decompasable matrices
3189         https://bugs.webkit.org/show_bug.cgi?id=132516
3190         <rdar://problem/16717478>
3191
3192         Reviewed by Sam Weinig.
3193         
3194         r155977 added code to modify layer contentsScale based on a root-relative
3195         scale, so that scaled-up layers remained sharp. It does this by decomposing
3196         an accumulated matrix, but failed to test whether the decomposition
3197         succeeded. This would result in contentsScale of 0, which is clamped to 0.1,
3198         resulting in very fuzzy layers.
3199         
3200         Fix by testing for success of decomposition.
3201
3202         Test: compositing/contents-scale/non-decomposable-matrix.html
3203
3204         * platform/graphics/ca/GraphicsLayerCA.cpp:
3205         (WebCore::maxScaleFromTransform):
3206         * platform/graphics/transforms/TransformationMatrix.cpp:
3207         (WebCore::TransformationMatrix::decompose2): Return early for identity matrices,
3208         with fix for m11 and m22.
3209         (WebCore::TransformationMatrix::decompose4): Return early for identity matrices.
3210         * platform/graphics/transforms/TransformationMatrix.h:
3211         Make Decomposed2Type and Decomposed4Type into C++ structs.
3212         (WebCore::TransformationMatrix::Decomposed2Type::operator==): Added to make it easier
3213         to write code that asserts that decomposition is correct.
3214         (WebCore::TransformationMatrix::Decomposed4Type::operator==): Ditto.
3215
3216 2014-05-03  Simon Fraser  <simon.fraser@apple.com>
3217
3218         Fix crash in WebKit client app when zooming
3219         https://bugs.webkit.org/show_bug.cgi?id=132475
3220         <rdar://problem/16703405>
3221
3222         Reviewed by Tim Horton.
3223
3224         It's possible for a WebTiledBackingLayer CALayer to remain in the CALayer
3225         hierarchy after we've called -invalidate on it, which clears the _tileController.
3226         Project the getters against null derefs to handle this.
3227
3228         * platform/graphics/ca/mac/WebTiledBackingLayer.mm:
3229         (-[WebTiledBackingLayer isOpaque]):
3230         (-[WebTiledBackingLayer acceleratesDrawing]):
3231         (-[WebTiledBackingLayer contentsScale]):
3232
3233 2014-05-03  Carlos Garcia Campos  <cgarcia@igalia.com>
3234
3235         Unreviewed. Fix GTK+ build after r168209.
3236
3237         * platform/leveldb/LevelDBDatabase.cpp:
3238         (WebCore::LevelDBDatabase::write):
3239
3240 2014-05-03  Zalan Bujtas  <zalan@apple.com>
3241
3242         Subpixel rendering: Fieldset legend has a horizontal line through, when the fieldset is painted on odd device pixel position.
3243         https://bugs.webkit.org/show_bug.cgi?id=132521
3244         <rdar://problem/16803305>
3245
3246         Reviewed by Simon Fraser.
3247
3248         Use device pixel snapping when the fieldset's border gets clipped out for the legend's text. It ensures that
3249         the device pixel snapped border gets properly clipped out.
3250
3251         Existing fieldset tests cover it.
3252
3253         * rendering/RenderFieldset.cpp:
3254         (WebCore::RenderFieldset::paintBoxDecorations):
3255
3256 2014-05-02  Zalan Bujtas  <zalan@apple.com>
3257
3258         CodeCleanup: Remove *MaintainsPixelAlignment from GraphicsLayer*.
3259         https://bugs.webkit.org/show_bug.cgi?id=132501
3260
3261         Reviewed by Simon Fraser.
3262
3263         * WebCore.exp.in:
3264         * platform/graphics/GraphicsLayer.cpp:
3265         (WebCore::GraphicsLayer::GraphicsLayer):
3266         * platform/graphics/GraphicsLayer.h:
3267         (WebCore::GraphicsLayer::setMaintainsPixelAlignment): Deleted.
3268         (WebCore::GraphicsLayer::maintainsPixelAlignment): Deleted.
3269         (WebCore::GraphicsLayer::pixelAlignmentOffset): Deleted.
3270         * platform/graphics/ca/GraphicsLayerCA.cpp:
3271         (WebCore::GraphicsLayerCA::updateGeometry):
3272         (WebCore::GraphicsLayerCA::computePixelAlignment):
3273         (WebCore::GraphicsLayerCA::setMaintainsPixelAlignment): Deleted.
3274         * platform/graphics/ca/GraphicsLayerCA.h:
3275         * rendering/RenderLayerBacking.cpp:
3276         (WebCore::RenderLayerBacking::createGraphicsLayer):
3277         * rendering/RenderLayerCompositor.cpp:
3278         (WebCore::RenderLayerCompositor::keepLayersPixelAligned): Deleted.
3279         * rendering/RenderLayerCompositor.h:
3280
3281 2014-05-02  Simon Fraser  <simon.fraser@apple.com>
3282
3283         [iOS WK2] Tiled layer content missing on pages with animated tiled layers
3284         https://bugs.webkit.org/show_bug.cgi?id=132507
3285         <rdar://problem/16765740>
3286
3287         Reviewed by Tim Horton.
3288
3289         Updating the tiling area of content TileControllers while
3290         CSS animations are running depends on GraphicsLayerUpdater
3291         triggering repeated layer flushes. With UI-side compositing, those
3292         flushes were happening, but nothing triggered RemoteLayerTreeDrawingArea
3293         to flush changes to the UI process.
3294         
3295         Fix by having RenderLayerCompositor schedule a flush, rather
3296         than just doing a flush, in response to GraphicsLayerUpdater.
3297         
3298         Also change the name of the GraphicsLayerUpdaterClient function
3299         to indicate that it suggests that a flush is required soon, rather than
3300         that the flushing has to be synchronous.
3301
3302         * platform/graphics/GraphicsLayerUpdater.cpp:
3303         (WebCore::GraphicsLayerUpdater::displayRefreshFired):
3304         * platform/graphics/GraphicsLayerUpdater.h:
3305         * rendering/RenderLayerCompositor.cpp:
3306         (WebCore::RenderLayerCompositor::flushLayersSoon):
3307         (WebCore::RenderLayerCompositor::flushLayers): Deleted.
3308         * rendering/RenderLayerCompositor.h:
3309
3310 2014-05-02  Jeremy Jones  <jeremyj@apple.com>
3311
3312         Use displayNameForTrack instead of textTrack->label() for captions.
3313         https://bugs.webkit.org/show_bug.cgi?id=131311
3314
3315         Reviewed by Darin Adler.
3316
3317         Use the same mechanism as the desktop to build the captions list so it has the correct
3318         names in the correct order including none and automatic.
3319
3320         * platform/ios/WebVideoFullscreenModelMediaElement.h:
3321         * platform/ios/WebVideoFullscreenModelMediaElement.mm:
3322         (WebVideoFullscreenModelMediaElement::setMediaElement):
3323         move legible track code into updateLegibleOptions()
3324
3325         (WebVideoFullscreenModelMediaElement::handleEvent):
3326         updateLegibleOptions on addTrack and removeTrack
3327
3328         (WebVideoFullscreenModelMediaElement::selectLegibleMediaOption):
3329         select the corresponding TextTrack on HTMLMediaElement.
3330
3331         (WebVideoFullscreenModelMediaElement::updateLegibleOptions):
3332         use the same mechanism as desktop to build the captions menu.
3333
3334 2014-05-02  Jeremy Jones  <jeremyj@apple.com>
3335
3336         CSS-based Media Controls Show Different times content longer than 1 hour.
3337         https://bugs.webkit.org/show_bug.cgi?id=132443
3338
3339         Reviewed by Jer Noble.
3340
3341         * Modules/mediacontrols/mediaControlsApple.css:
3342         (audio::-webkit-media-controls-timeline-container .hour-long-time):
3343         This class has a wider width for longer duration times.
3344
3345         * Modules/mediacontrols/mediaControlsApple.js:
3346         (Controller.prototype.updateDuration):
3347         Apply .hour-long-time class as appropriate.
3348
3349         (Controller.prototype.formatTime):
3350         More robust formatting to handle hours.
3351
3352         * Modules/mediacontrols/mediaControlsiOS.css:
3353         (audio::-webkit-media-controls-timeline-container .hour-long-time):
3354         This class has a wider width for longer duration times.
3355
3356         * Modules/mediacontrols/mediaControlsiOS.js:
3357         (ControllerIOS.prototype.formatTime):
3358         More robust formatting to handle hours.
3359
3360 2014-05-02  Jer Noble  <jer.noble@apple.com>
3361
3362         [MSE][Mac] AVAssetTrack returns incorrect track size
3363         https://bugs.webkit.org/show_bug.cgi?id=132469
3364
3365         Reviewed by Brent Fulgham.
3366
3367         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
3368         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
3369         (WebCore::SourceBufferPrivateAVFObjC::didParseStreamDataAsAsset):  Remove the sizeChanged() notification.
3370         (WebCore::SourceBufferPrivateAVFObjC::processCodedFrame): Cache the last parsed video frame size.
3371         (WebCore::SourceBufferPrivateAVFObjC::naturalSize): Return the cached value.
3372
3373 2014-05-02  Zalan Bujtas  <zalan@apple.com>
3374
3375         Subpixel rendering[iOS]: Use pixelSnappedRoundedRectForPainting() to clip text area rect.
3376         https://bugs.webkit.org/show_bug.cgi?id=132499
3377         <rdar://problem/16631050>
3378
3379         Reviewed by Simon Fraser.
3380
3381         Snap to device pixels properly instead of relying on float arithmetics while converting from RoundedRect
3382         to FloatRoundedRect. This is the second, cleanup part of the text-area decoration is off-by-one painting issue.
3383
3384         Currently not testable.
3385
3386         * rendering/RenderThemeIOS.mm:
3387         (WebCore::RenderThemeIOS::paintTextFieldDecorations):
3388
3389 2014-05-02  Andreas Kling  <akling@apple.com>
3390
3391         Remove HistogramSupport.
3392         <https://webkit.org/b/132354>
3393
3394         Prune some leftover Chromium gunk that no other ports ever used.
3395
3396         Reviewed by Simon Fraser.
3397
3398         * CMakeLists.txt:
3399         * Modules/indexeddb/IDBDatabase.cpp:
3400         (WebCore::IDBDatabase::createObjectStore):
3401         (WebCore::IDBDatabase::deleteObjectStore):
3402         (WebCore::IDBDatabase::transaction):
3403         * Modules/indexeddb/IDBFactory.cpp:
3404         (WebCore::IDBFactory::openInternal):
3405         (WebCore::IDBFactory::deleteDatabase):
3406         * Modules/indexeddb/IDBHistograms.h: Removed.
3407         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
3408         (WebCore::IDBBackingStoreLevelDB::open):
3409         (WebCore::IDBBackingStoreLevelDB::openInMemory):
3410         (WebCore::recordInternalError): Deleted.
3411         * Modules/indexeddb/leveldb/IDBBackingStoreTransactionLevelDB.cpp:
3412         * WebCore.vcxproj/WebCore.vcxproj:
3413         * WebCore.vcxproj/WebCore.vcxproj.filters:
3414         * WebCore.xcodeproj/project.pbxproj:
3415         * css/CSSParser.cpp:
3416         (WebCore::cssPropertyID):
3417         * dom/Document.cpp:
3418         (WebCore::Document::~Document):
3419         (WebCore::histogramMutationEventUsage): Deleted.
3420         * dom/ShadowRoot.cpp:
3421         * fileapi/Blob.cpp:
3422         * fileapi/WebKitBlobBuilder.cpp:
3423         (WebCore::BlobBuilder::append):
3424         * history/PageCache.cpp:
3425         (WebCore::logCanCacheFrameDecision):
3426         (WebCore::logCanCachePageDecision):
3427         * platform/HistogramSupport.cpp: Removed.
3428         * platform/HistogramSupport.h: Removed.