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