1 2014-05-08 Jer Noble <jer.noble@apple.com>
3 [Mac, iOS] Add source application accounting to AVURLAsset.
4 https://bugs.webkit.org/show_bug.cgi?id=132637
6 Reviewed by Eric Carlson.
8 Properly account for the application responisble for data loading by passing the source
9 application identifier through to AVFoundation through AVURLAsset options.
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:
22 2014-05-08 Jer Noble <jer.noble@apple.com>
24 [MSE][Mac] Move AVStreamDataParser off-main-thread.
25 https://bugs.webkit.org/show_bug.cgi?id=132698
27 Reviewed by Eric Carlson.
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
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
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:
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:
62 2014-05-08 Commit Queue <commit-queue@webkit.org>
64 Unreviewed, rolling out r168498.
65 https://bugs.webkit.org/show_bug.cgi?id=132714
67 broke Mavericks WK2 (Requested by litherum on #webkit).
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
76 2014-05-08 Myles C. Maxfield <mmaxfield@apple.com>
78 http/tests/security/xss-DENIED-xsl-document-redirect.xml fails with NetworkProcess
79 https://bugs.webkit.org/show_bug.cgi?id=132523
81 Reviewed by Alexey Proskuryakov.
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.
87 Updates test expectations.
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
99 2014-05-08 Andreas Kling <akling@apple.com>
101 [iOS] WebKit should listen to critical memory warnings.
102 <https://webkit.org/b/132704>
103 <rdar://problem/16857112>
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.
109 Reviewed by Gavin Barraclough.
111 * platform/cocoa/MemoryPressureHandlerCocoa.mm:
112 (WebCore::MemoryPressureHandler::install):
114 2014-05-08 Joseph Pecoraro <pecoraro@apple.com>
116 Web Inspector: InspectorDOMAgent::getAccessibilityPropertiesForNode should gracefully handle bad node
117 https://bugs.webkit.org/show_bug.cgi?id=132697
119 Reviewed by Timothy Hatcher.
121 * inspector/InspectorDOMAgent.cpp:
122 (WebCore::InspectorDOMAgent::getAccessibilityPropertiesForNode):
123 Gracefully handle no node.
125 2014-05-08 Tim Horton <timothy_horton@apple.com>
127 Fix the iOS build after r168476.
129 * platform/graphics/mac/GraphicsContextMac.mm:
130 (WebCore::GraphicsContext::drawFocusRing):
132 2014-05-08 Bem Jones-Bey <bjonesbe@adobe.com>
134 [CSS Shapes] Shapes do not resolve dimensions specified in viewport units
135 https://bugs.webkit.org/show_bug.cgi?id=124052
137 Reviewed by Dirk Schulze.
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.
143 Tests: css3/masking/clip-path-polygon-viewport-units.html
144 fast/shapes/shape-outside-floats/shape-outside-floats-viewport-units.html
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):
174 2014-05-08 Brent Fulgham <bfulgham@apple.com>
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>
180 Reviewed by Eric Carlson.
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
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.
196 2014-05-08 Alexey Proskuryakov <ap@apple.com>
198 Make BlobDataFileReference manage its sandbox extension
199 https://bugs.webkit.org/show_bug.cgi?id=132689
201 Reviewed by Anders Carlsson.
203 * WebCore.exp.in: Export symbols that are now needed in WebKit2 to subclass BlobDataFileReference.
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.
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.
225 2014-05-08 Rik Cabanier <cabanier@adobe.com>
227 Add support for drawFocusIfNeeded
228 https://bugs.webkit.org/show_bug.cgi?id=132584
230 Reviewed by Dirk Schulze.
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.
235 Test: fast/canvas/draw-focus-if-needed.html
237 * html/canvas/CanvasRenderingContext2D.cpp:
238 (WebCore::CanvasRenderingContext2D::drawFocusIfNeeded):
239 * html/canvas/CanvasRenderingContext2D.h:
240 * html/canvas/CanvasRenderingContext2D.idl:
242 2014-05-08 Antti Koivisto <antti@apple.com>
244 [iOS WebKit2] Can't activate text fields on Facebook
245 https://bugs.webkit.org/show_bug.cgi?id=132682
247 Reviewed by Enrica Casucci.
250 (WebCore::DOMTimer::fired):
252 The isDocument() test here had reversed in the merge breaking content change observer callback.
254 2014-05-07 Sergio Villar Senin <svillar@igalia.com>
256 Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T> in svg/
257 https://bugs.webkit.org/show_bug.cgi?id=132647
259 Reviewed by Darin Adler.
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):
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):
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):
380 2014-05-08 Ion Rosca <rosca@adobe.com>
382 [CSS Blending] Replacing Unisolated with NotIsolated in variables and methods names
383 https://bugs.webkit.org/show_bug.cgi?id=132677
385 Reviewed by Dirk Schulze.
387 No new tests required.
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):
411 2014-05-08 Xabier Rodriguez Calvar <calvaris@igalia.com>
413 [GTK] Enable skipped http/tests/media/hls/video-controls-live-stream.html
414 https://bugs.webkit.org/show_bug.cgi?id=132329
416 Reviewed by Eric Carlson.
418 GTK port needed to define what happened with live stream media
419 controls. Now we disable and dim the timeline and tweak the
422 Test: http/tests/media/hls/video-controls-live-stream.html.
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.
441 2014-05-08 Ion Rosca <rosca@adobe.com>
443 [CSS Blending] Changing isolation CSS property should not trigger repaint in RenderStyle::changeRequiresLayerRepaint
444 https://bugs.webkit.org/show_bug.cgi?id=131436
446 Reviewed by Dirk Schulze.
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.
453 Tests: css3/blending/repaint/blend-mode-turn-off-isolation-no-effect.html
454 css3/blending/repaint/blend-mode-turn-off-isolation.html
456 * rendering/style/RenderStyle.cpp:
457 (WebCore::RenderStyle::changeRequiresLayerRepaint):
458 do not request repaint if isolation has changed.
460 2014-05-08 Manuel Rego Casasnovas <rego@igalia.com>
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
465 Reviewed by David Hyatt.
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.
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.
476 Test: fast/regions/selection/crash-select-all.html
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.
483 2014-05-08 Zoltan Horvath <zoltan@webkit.org>
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
488 Reviewed by Dirk Schulze.
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.
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.
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
501 Tests: fast/masking/clip-path-selection.html
502 fast/shapes/shape-outside-floats/shape-outside-clip-path-selection.html
504 * rendering/RenderBlock.cpp:
505 (WebCore::RenderBlock::nodeAtPoint):
507 2014-05-07 Ion Rosca <rosca@adobe.com>
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
512 Reviewed by Dean Jackson.
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
521 The solution in this patch is to make a layer isSelfPaintingLayer when
522 it needs to isolate blending descendants (hasUnisolatedBlendingDescendants).
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
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.
547 2014-05-06 Myles C. Maxfield <mmaxfield@apple.com>
549 Dragging text from one paragraph to another does not render as expected
550 https://bugs.webkit.org/show_bug.cgi?id=132633
552 Reviewed by Darin Adler and Ryosuke Niwa.
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
560 Test: editing/pasteboard/drag-drop-paragraph-crasher.html
562 * editing/ReplaceSelectionCommand.cpp:
563 (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
565 2014-05-07 Gyuyoung Kim <gyuyoung.kim@samsung.com>
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
570 Reviewed by Benjamin Poulain.
572 Original author : Thiago de Barros Lacerda, and finished by Gyuyoung Kim.
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.
578 This patch allows the Page::setPageScaleFactor() send stored position to WK2 implementation by calling delegatedScrollRequested()
579 directly when delegatesScrolling() is on.
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):
587 2014-05-07 Dean Jackson <dino@apple.com>
589 Using a fill pattern much larger than actual canvas reliably segfaults browser
590 https://bugs.webkit.org/show_bug.cgi?id=132635
592 Reviewed by Simon Fraser.
594 Make sure that createPattern checks that the canvas it is about to use
595 as a source is valid.
597 Test: fast/canvas/pattern-too-large-to-create.html
599 * html/canvas/CanvasRenderingContext2D.cpp:
600 (WebCore::CanvasRenderingContext2D::createPattern): Check that the source canvas has
603 2014-05-07 Pratik Solanki <psolanki@apple.com>
605 Use system defaults for hardware jpeg decoding
606 https://bugs.webkit.org/show_bug.cgi?id=132661
607 <rdar://problem/11348201>
609 Reviewed by Tim Horton.
611 Remove code that explicitly disabled hardware image decoding. Let the system decide what to do.
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):
620 2014-05-07 Radu Stavila <stavila@adobe.com>
622 Use after free in WebCore::RenderObject::nextSibling / WebCore::RenderBoxModelObject::moveChildrenTo
623 https://bugs.webkit.org/show_bug.cgi?id=132625
625 Reviewed by David Hyatt.
627 Fixed problem with dynamically inserting first letter elements.
629 Test: fast/multicol/newmulticol/first-letter-create.html
631 * rendering/RenderBlock.cpp:
632 (WebCore::RenderBlock::getFirstLetter):
633 (WebCore::RenderBlock::updateFirstLetter):
634 * rendering/RenderBlock.h:
635 * rendering/RenderBoxModelObject.cpp:
636 (WebCore::RenderBoxModelObject::moveChildrenTo):
638 2014-05-07 Enrica Casucci <enrica@apple.com>
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>
644 Reviewed by Benjamin Poulain.
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.
656 * platform/ScrollView.cpp:
657 (WebCore::ScrollView::setScrollPosition):
658 * platform/ScrollView.h:
659 (WebCore::ScrollView::inProgrammaticScroll):
661 2014-05-07 Brent Fulgham <bfulgham@apple.com>
663 [Mac, iOS] REGRESSION: WK2 YouTube support
664 https://bugs.webkit.org/show_bug.cgi?id=132568
665 <rdar://problem/11464344>
667 Reviewed by Darin Adler.
669 Move the custom YouTube loader code out of the WebFrameLoaderClient into a
670 PluginReplacement-based class.
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):
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
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.
713 2014-05-07 Simon Fraser <simon.fraser@apple.com>
715 [iOS] Acclerated overflow-scrolling broken in WK1
716 https://bugs.webkit.org/show_bug.cgi?id=132665
717 <rdar://problem/16842909>
719 Reviewed by Tim Horton.
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.
725 Fix by falling back to setting the null actions dictionary for
726 layers with custom scrolling behavior.
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):
735 2014-05-07 Jeremy Jones <jeremyj@apple.com>
737 HTMLMediaElement should exitFullscreen when view is removed from the window.
738 https://bugs.webkit.org/show_bug.cgi?id=132506
740 Reviewed by Tim Horton.
742 * platform/ios/WebVideoFullscreenControllerAVKit.h:
743 Add -requestExitFullscreen.
745 * platform/ios/WebVideoFullscreenControllerAVKit.mm:
746 (-[WebVideoFullscreenController requestExitFullscreen]):
747 Forward request onto WebVideoFullscreenModelMediaElement.
749 * platform/ios/WebVideoFullscreenModelMediaElement.mm:
750 (WebVideoFullscreenModelMediaElement::requestExitFullscreen):
751 Add some protection here since this may be called when not in fullscreen.
753 2014-05-07 Dean Jackson <dino@apple.com>
755 Clean up the difference between painting focus rings and adding PDF annotations
756 https://bugs.webkit.org/show_bug.cgi?id=132638
758 Follow-up comments from Darin Adler.
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.
767 2014-05-07 Alexey Proskuryakov <ap@apple.com>
769 Make blob size computation lazy
770 https://bugs.webkit.org/show_bug.cgi?id=132653
772 Reviewed by Anders Carlsson.
775 (WebCore::Blob::Blob):
776 (WebCore::Blob::size):
778 (WebCore::Blob::size): Deleted.
780 (WebCore::File::size): Deleted.
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:
798 2014-05-06 Simon Fraser <simon.fraser@apple.com>
800 Add scrolling tree logging to RemoteLayerTree output
801 https://bugs.webkit.org/show_bug.cgi?id=132640
803 Reviewed by Beth Dakin.
805 Support scrolling tree logging in the RemoteLayerTree log channel
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.
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.
816 * WebCore.exp.in: Export a couple of things we need.
817 * page/scrolling/ScrollingStateTree.cpp:
818 (WebCore::ScrollingStateTree::commit):
820 2014-05-07 Chris Fleizach <cfleizach@apple.com>
822 AX: aria-expanded changes are not communicated to clients
823 https://bugs.webkit.org/show_bug.cgi?id=132642
825 Reviewed by Mario Sanchez Prada.
827 When aria-expanded changes on non list/tree items, send out a generic
828 AXExpandedChange notification.
830 Test: platform/mac/accessibility/expanded-notification.html
832 * accessibility/AXObjectCache.h:
833 * accessibility/AccessibilityRenderObject.cpp:
834 (WebCore::AccessibilityRenderObject::handleAriaExpandedChanged):
835 * accessibility/mac/AXObjectCacheMac.mm:
836 (WebCore::AXObjectCache::postPlatformNotification):
838 2014-05-07 Alexey Proskuryakov <ap@apple.com>
842 * platform/MIMETypeRegistry.cpp: (WebCore::initializeSupportedImageMIMETypes):
843 Removed unused globals.
845 2014-05-07 Alexey Proskuryakov <ap@apple.com>
847 Eliminate "well known MIME type" support
848 https://bugs.webkit.org/show_bug.cgi?id=132654
850 Reviewed by Anders Carlsson.
852 Vestiges of FileSystem API.
854 * dom/DataTransfer.cpp:
855 (WebCore::DataTransfer::files):
856 (WebCore::DataTransfer::hasFileOfType):
858 (WebCore::File::File):
859 (WebCore::File::contentTypeFromFilePathOrName):
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:
869 2014-05-07 Christophe Dumez <ch.dumez@samsung.com>
871 [HTML] Default argument to HTMLTableElement.insertRow() should be -1
872 https://bugs.webkit.org/show_bug.cgi?id=132651
874 Reviewed by Alexey Proskuryakov.
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
880 The new behavior matches the one of Firefox 29 and IE11, and soon Blink:
881 https://codereview.chromium.org/270213007/
883 Test: fast/dom/HTMLTableElement/insertRow-default-argument.html
885 * html/HTMLTableElement.h:
886 * html/HTMLTableElement.idl:
888 2014-05-07 Chris Fleizach <cfleizach@apple.com>
890 AX: AXSelectTextWithCriteria should support capitalize/lowercase/uppercase
891 https://bugs.webkit.org/show_bug.cgi?id=132622
893 Reviewed by Mario Sanchez Prada.
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).
898 Updated: accessibility/select-text.html
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:
909 2014-05-07 peavo@outlook.com <peavo@outlook.com>
911 DocumentLoader::dataReceived assertion failed
912 https://bugs.webkit.org/show_bug.cgi?id=132017
914 Reviewed by Brent Fulgham.
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.
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.
925 2014-05-06 Antti Koivisto <antti@apple.com>
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
930 Reviewed by Simon Fraser.
932 Test: fast/repaint/animation-after-layer-scroll.html
934 * rendering/RenderLayer.cpp:
935 (WebCore::RenderLayer::scrollTo):
937 Check if any animations need to be restarted after layer scroll.
939 2014-05-07 Hyowon Kim <hw1008.kim@samsung.com>
941 GraphicsLayer::client() should return a reference.
942 https://bugs.webkit.org/show_bug.cgi?id=126372
944 Reviewed by Simon Fraser.
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>.
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):
1006 2014-05-07 Xabier Rodriguez Calvar <calvaris@igalia.com>
1008 [GStreamer] Corrected typo
1009 https://bugs.webkit.org/show_bug.cgi?id=132609
1011 Reviewed by Martin Robinson.
1013 Corrected m_canFallBackToLastFinishedSeekPositon typo and
1014 initialized in the constructor to prevent problems in the future.
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
1028 2014-05-07 Gyuyoung Kim <gyuyoung.kim@samsung.com>
1030 Convert PassOwnPtr to unique_ptr in CrossThreadTask.h
1031 https://bugs.webkit.org/show_bug.cgi?id=132605
1033 Reviewed by Dirk Schulze.
1035 * dom/CrossThreadTask.h: Converted.
1037 2014-05-07 Carlos Garcia Campos <cgarcia@igalia.com>
1039 [SOUP] TLSErrors do not cause page load to fail when not ignored
1040 https://bugs.webkit.org/show_bug.cgi?id=121548
1042 Reviewed by Sergio Villar Senin.
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
1049 * platform/network/soup/ResourceHandleSoup.cpp:
1050 (WebCore::sendRequestCallback): Check TLS errors before starting a
1051 possible redirection.
1053 2014-05-07 Manuel Rego Casasnovas <rego@igalia.com>
1055 [CSS Grid Layout] Remove runtime feature
1056 https://bugs.webkit.org/show_bug.cgi?id=132382
1058 Reviewed by Benjamin Poulain.
1060 Remove cssGridLayoutEnabled setting. Update methods using it accordingly.
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.
1072 * css/CSSParserMode.h:
1074 (WebCore::Document::cssGridLayoutEnabled): Deleted.
1078 2014-05-07 Praveen R Jadhav <praveen.j@samsung.com>
1080 Fix build errors for BlobDataItem after r168391.
1081 https://bugs.webkit.org/show_bug.cgi?id=132643
1083 Reviewed by Carlos Garcia Campos.
1085 Patch updates BlobDataItem params usage in ResourceHandleSoup.cpp
1086 to be inline with r168391.
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.
1094 2014-05-06 Dean Jackson <dino@apple.com>
1096 Clean up the difference between painting focus rings and adding PDF annotations
1097 https://bugs.webkit.org/show_bug.cgi?id=132638
1099 Reviewed by Simon Fraser.
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
1107 * rendering/RenderInline.cpp:
1108 (WebCore::RenderInline::paintOutline): Split calls to drawFocusRing
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:
1117 2014-05-06 Rik Cabanier <cabanier@adobe.com>
1119 Calling createPattern with a broken image must throw an invalidstate error
1120 https://bugs.webkit.org/show_bug.cgi?id=132407
1122 Reviewed by Darin Adler.
1124 Updated createPattern so it throws an invalidState exception
1125 if you pass it an image that is in the broken state.
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:
1132 * html/canvas/CanvasRenderingContext2D.cpp:
1133 (WebCore::CanvasRenderingContext2D::createPattern):
1135 2014-05-06 Jer Noble <jer.noble@apple.com>
1137 [iOS][Mac] Display sleeps while playing <video> content.
1138 https://bugs.webkit.org/show_bug.cgi?id=132624
1140 Reviewed by Darin Adler.
1142 On iOS and Mac, create a DisplaySleepDisablerCocoa rather than an (no-op) DisplaySleepDisabler.
1144 * platform/cocoa/DisplaySleepDisablerCocoa.cpp:
1145 (WebCore::DisplaySleepDisabler::create):
1146 * platform/cocoa/DisplaySleepDisablerCocoa.h:
1148 2014-05-06 Dean Jackson <dino@apple.com>
1150 [Mac] Allow focus rings to redraw themselves if necessary
1151 https://bugs.webkit.org/show_bug.cgi?id=132593
1155 * platform/graphics/mac/GraphicsContextMac.mm:
1156 (WebCore::GraphicsContext::drawFocusRing): We no longer use the color parameter.
1158 2014-05-06 Dean Jackson <dino@apple.com>
1160 [Mac] Allow focus rings to redraw themselves if necessary
1161 https://bugs.webkit.org/show_bug.cgi?id=132593
1163 Reviewed by Simon Fraser.
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.
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.
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.
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):
1193 * platform/graphics/GraphicsContext.h:
1194 (WebCore::GraphicsContext::drawFocusRing): New Mac-only method that uses timeOffset.
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
1200 (WebCore::drawFocusRingToContextAtTime): Call into the new method WKDrawFocusRingAtTime.
1201 (WebCore::GraphicsContext::drawFocusRing): Color and radius no longer used.
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.
1210 * platform/mac/WebCoreNSCellExtras.h: Removed.
1211 * platform/mac/WebCoreNSCellExtras.m: Removed.
1213 * platform/mac/WebCoreSystemInterface.h: Declare the new methods.
1214 * platform/mac/WebCoreSystemInterface.mm:
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.
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.
1225 * rendering/RenderTheme.cpp:
1226 (WebCore::RenderTheme::updateControlStatesForRenderer): Copy the value from FocusController
1227 so that the platform Theme code can use it.
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
1238 2014-05-06 Jer Noble <jer.noble@apple.com>
1240 [iOS] Animate AVPlayerLayer into and out of full screen
1241 https://bugs.webkit.org/show_bug.cgi?id=132603
1243 Reviewed by Simon Fraser.
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
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
1261 2014-05-06 Alexey Proskuryakov <ap@apple.com>
1263 Make BlobDataItem use a refcounted object for files
1264 https://bugs.webkit.org/show_bug.cgi?id=132628
1266 Reviewed by Anders Carlsson.
1269 * WebCore.vcxproj/WebCore.vcxproj:
1270 * WebCore.vcxproj/WebCore.vcxproj.filters:
1271 * WebCore.xcodeproj/project.pbxproj:
1272 Added BlobDataFileReference.{h|cpp}
1274 * WebCore.exp.in: Removed unused exports.
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.
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.
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
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.
1314 2014-05-06 Christophe Dumez <ch.dumez@samsung.com>
1316 [HTML] Default argument to HTMLTableRowElement.insertCell() should be -1
1317 https://bugs.webkit.org/show_bug.cgi?id=132615
1319 Reviewed by Darin Adler.
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
1325 The new behavior matches the one of Firefox 29 and IE11, and soon Blink:
1326 https://codereview.chromium.org/263323004/
1328 Test: fast/dom/HTMLTableRowElement/insertCell-default-argument.html
1330 * html/HTMLTableRowElement.h:
1331 * html/HTMLTableRowElement.idl:
1333 2014-05-06 Oliver Hunt <oliver@apple.com>
1339 2014-05-06 Andreas Kling <akling@apple.com>
1341 Add missing line from r168384.
1343 * dom/ContainerNode.h:
1344 (WebCore::ChildNodesLazySnapshot::~ChildNodesLazySnapshot):
1346 2014-05-06 Oliver Hunt <oliver@apple.com>
1348 Can't make a booking at virginamerica.com
1349 https://bugs.webkit.org/show_bug.cgi?id=132626
1351 Reviewed by Geoffrey Garen.
1353 Test: fast/dom/assign-to-prototype-accessor-on-prototype-should-be-silent.html
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.
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):
1442 2014-05-06 Andreas Kling <akling@apple.com>
1444 ChildNodesLazySnapshot::m_childNodes needs two heap allocations.
1445 <https://webkit.org/b/132616>
1447 This seems a bit silly, since ChildNodesLazySnapshot is always
1448 allocated on the stack.
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.
1454 Reviewed by Geoff Garen.
1456 * dom/ContainerNode.h:
1457 (WebCore::ChildNodesLazySnapshot::ChildNodesLazySnapshot):
1458 (WebCore::ChildNodesLazySnapshot::nextNode):
1459 (WebCore::ChildNodesLazySnapshot::takeSnapshot):
1460 (WebCore::ChildNodesLazySnapshot::hasSnapshot):
1462 2014-05-06 Alexey Proskuryakov <ap@apple.com>
1464 Eliminate BlobStorageData
1465 https://bugs.webkit.org/show_bug.cgi?id=132617
1467 Reviewed by Anders Carlsson.
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):
1506 2014-05-06 Simon Fraser <simon.fraser@apple.com>
1510 WebCore::Editor::replaceNodeFromPasteboard(WebCore::Node*, WTF::String const&) is Mac-only.
1511 Also sort the export file.
1515 2014-05-06 David Hyatt <hyatt@apple.com>
1517 Begin Removal of Old Multi-Column Code.
1518 https://bugs.webkit.org/show_bug.cgi?id=132480
1520 Reviewed by Andreas Kling.
1523 (WebCore::Document::regionBasedColumnsEnabled): Deleted.
1525 * page/FrameView.cpp:
1526 (WebCore::updateLayerPositionFlags):
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):
1700 2014-05-06 Brady Eidson <beidson@apple.com>
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
1705 Reviewed by Tim Horton.
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.
1715 * html/shadow/mac/ImageControlsButtonElementMac.cpp:
1716 (WebCore::ImageControlsButtonElementMac::defaultEventHandler): Don’t select the image.
1718 2014-05-06 Eric Carlson <eric.carlson@apple.com>
1720 [Mac] make metadata cue attributes consistent
1721 https://bugs.webkit.org/show_bug.cgi?id=132610
1723 Reviewed by Jer Noble.
1725 No new tests, updated http/tests/media/track-in-band-hls-metadata.html.
1727 * platform/mac/SerializedPlatformRepresentationMac.mm:
1728 (WebCore::jsValueWithAVMetadataItemInContext): Don't include keys @dataTypeNamespace
1729 or @pictureType, @dataType -> @type.
1731 2014-05-06 Brady Eidson <beidson@apple.com>
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
1736 Reviewed by Tim Horton.
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):
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):
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):
1757 2014-05-06 Alex Christensen <achristensen@webkit.org>
1759 Unreviewed build fix for debug after r168367.
1761 * platform/NotImplemented.cpp:
1762 Added include NotImplemented.h.
1764 2014-05-06 Alex Christensen <achristensen@webkit.org>
1766 Removed unnecessary notImplemented.h includes.
1767 https://bugs.webkit.org/show_bug.cgi?id=132587
1769 Reviewed by Anders Carlsson.
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.
1797 2014-05-06 Enrica Casucci <enrica@apple.com>
1799 Unreviewed build fix after http://trac.webkit.org/changeset/168364
1801 * rendering/RenderLineBreak.cpp:
1803 2014-05-06 Christophe Dumez <ch.dumez@samsung.com>
1805 [HTML] Default argument to HTMLTableSectionElement.insertRow() should be -1
1806 https://bugs.webkit.org/show_bug.cgi?id=132570
1808 Reviewed by Darin Adler.
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
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
1817 Test: fast/dom/HTMLTableSectionElement/insertRow-default-argument.html
1819 * html/HTMLTableSectionElement.h:
1820 * html/HTMLTableSectionElement.idl:
1822 2014-05-05 Enrica Casucci <enrica@apple.com>
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>
1828 Reviewed by Antti Koivisto.
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.
1834 * rendering/RenderLineBreak.cpp:
1835 (WebCore::RenderLineBreak::collectSelectionRects):
1836 * rendering/RenderLineBreak.h:
1838 2014-05-06 Andrei Bucur <abucur@adobe.com>
1840 [CSS Regions] Optimize the number of regions invalidations
1841 https://bugs.webkit.org/show_bug.cgi?id=132611
1843 Reviewed by David Hyatt.
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.
1848 This patch places the check after the height of the region
1849 is determined, reducing the number of invalidations.
1851 Tests: Less invalidations and repaints in the repaint tests for
1854 * rendering/RenderBlockFlow.cpp:
1855 (WebCore::RenderBlockFlow::updateLogicalHeight):
1856 * rendering/RenderNamedFlowFragment.cpp:
1857 (WebCore::RenderNamedFlowFragment::layoutBlock):
1858 (WebCore::RenderNamedFlowFragment::invalidateRegionIfNeeded):
1859 * rendering/RenderNamedFlowFragment.h:
1861 2014-05-03 Sam Weinig <sam@webkit.org>
1863 [Extended Background] Respect repeat-x/repeat-y when creating margin tiles
1864 https://bugs.webkit.org/show_bug.cgi?id=132534
1866 Reviewed by Beth Dakin.
1868 If the background image that is causing margin tiles only repeats in dimension only create
1869 the tiles in that dimension.
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.
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:
1892 2014-05-06 Chris Fleizach <cfleizach@apple.com>
1894 AX: VoiceOver does not announce text changes for content editable regions in Safari
1895 https://bugs.webkit.org/show_bug.cgi?id=132577
1897 Reviewed by Mario Sanchez Prada.
1899 When text or children are changed inside of a contenteditable region, we need to
1900 convert those actions into AXValueChange notifications.
1902 Test: accessibility/content-editable-set-inner-text-generates-axvalue-notification.html
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):
1914 2014-05-06 Dirk Schulze <krit@webkit.org>
1916 [SVG2] Share "on"- event attributes with HTMLElement
1917 https://bugs.webkit.org/show_bug.cgi?id=132604
1919 Reviewed by Mihnea Ovidenie.
1921 Share "on" event attribute parsing between SVGElement and HTMLElement.
1923 Tests: fast/dom/script-tests/event-attribute-availability.js:
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
1932 (WebCore::SVGElement::parseAttribute):
1934 2014-05-05 Zan Dobersek <zdobersek@igalia.com>
1936 [Soup] Use std::unique_ptr<char[]> for the read buffer in SocketStreamHandle
1937 https://bugs.webkit.org/show_bug.cgi?id=132559
1939 Reviewed by Carlos Garcia Campos.
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.
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):
1953 2014-05-05 Dirk Schulze <krit@webkit.org>
1955 Adapt inline SVG sizing behavior to Firefox and Blink
1956 https://bugs.webkit.org/show_bug.cgi?id=132569
1958 Reviewed by Dean Jackson.
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:
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
1968 This enables us to remove the concept of "percentage intrinsic size"
1969 and rely on normal CSS rules to resolve percentage values.
1971 The change has been approved by the SVG WG and the spec is being
1972 updated. Minutes here:
1974 http://www.w3.org/2014/04/07-svg-minutes.html#item03"
1976 The new model was indeed approved by the SVG WG and is basically following
1977 the CSS 2.1 model for replaced elements.
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
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
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
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:
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):
2041 2014-05-05 Ryuan Choi <ryuan.choi@samsung.com>
2043 [EFL] REGRESSION(167145): JavaScript media controls are broken
2044 https://bugs.webkit.org/show_bug.cgi?id=131573
2046 Reviewed by Brent Fulgham.
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.
2052 2014-05-05 Jeremy Jones <jeremyj@apple.com>
2054 Implement scan backward and forward in video fullscreen.
2055 https://bugs.webkit.org/show_bug.cgi?id=132517
2057 Reviewed by Simon Fraser.
2059 Implement scanning forward and backward. This implements methods in
2060 WebAVPlayerController and forwards them through WebVideoFullscreenModelMediaElement
2061 and on to HTMLMediaElement.
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:
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
2095 2014-05-05 Benjamin Poulain <bpoulain@apple.com>
2097 [iOS][WK2] Prefetch DNS hostnames on tap highlight
2098 https://bugs.webkit.org/show_bug.cgi?id=132509
2100 Reviewed by Alexey Proskuryakov.
2105 (WebCore::Element::absoluteLinkURL()):
2107 2014-05-05 Simon Fraser <simon.fraser@apple.com>
2109 [iOS WK2] Flickery scrolling inside overflow-scrolling: touch
2110 https://bugs.webkit.org/show_bug.cgi?id=132591
2111 <rdar://problem/16760466>
2113 Reviewed by Tim Horton.
2115 Avoid triggering layer tree commits that touch the layer's boundsOrigin
2116 while the user is scrolling in the UI process.
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
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
2132 Finally, a hack in GraphicsLayerCA::computeVisibleRect() is conditionalized
2133 for WebKit1 by checking the type of platform layer.
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):
2148 2014-05-05 Alexey Proskuryakov <ap@apple.com>
2150 Stop using BlobData on client side
2151 https://bugs.webkit.org/show_bug.cgi?id=132582
2153 Reviewed by Sam Weinig.
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.
2158 * Modules/websockets/WebSocket.cpp:(WebCore::WebSocket::didReceiveBinaryData):
2159 Use a new simpler Blob constructor.
2161 * WebCore.xcodeproj/project.pbxproj: Added BlobPart, removed BlobRegistrationData.
2163 * bindings/js/JSBlobCustom.cpp: (WebCore::JSBlobConstructor::constructJSBlob):
2164 Use Vector<BlobPart> instead of BlobData (1 line of code instead of 5).
2166 * dom/DataTransfer.cpp: (WebCore::DataTransfer::hasFileOfType): Updated for
2167 File::contentTypeFromFilePathOrName rename.
2169 * fileapi/Blob.cpp: (WebCore::Blob::Blob):
2171 (WebCore::Blob::create):
2172 (WebCore::Blob::deserialize):
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.
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.
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.
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.
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.
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
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.
2222 * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseBlob): Use the new simpler
2223 way to create a Blob.
2225 2014-05-05 Benjamin Poulain <benjamin@webkit.org>
2227 Clean up Image Document and tweak the layout and viewport
2228 https://bugs.webkit.org/show_bug.cgi?id=132552
2230 Reviewed by Sam Weinig.
2232 The #ifdef in every function was making quite a mess. A lot of that code does
2233 not make sense on iOS.
2235 This patch make a clean split between mouse related stuff and iOS.
2238 -Change the viewport to be only width based, and avoid scaling in portrait.
2239 -Center the image horizontally in the view.
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:
2252 2014-05-05 Beth Dakin <bdakin@apple.com>
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
2257 <rdar://problem/16806231>
2259 Reviewed by Anders Carlsson.
2261 We should default all of these pin-state value to true.
2262 * page/scrolling/ScrollingTree.cpp:
2263 (WebCore::ScrollingTree::ScrollingTree):
2265 2014-05-05 Christophe Dumez <ch.dumez@samsung.com>
2267 Named element cache can become invalid during HTMLCollection::updateNamedElementCache()
2268 https://bugs.webkit.org/show_bug.cgi?id=132575
2270 Reviewed by Ryosuke Niwa.
2272 Make sure the named element cache object stays valid in
2273 HTMLCollection::updateNamedElementCache() while it is populating it.
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.
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.
2288 Test: fast/dom/htmlcollection-selectedOptions-namedItem-crash.html
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):
2298 2014-05-05 Benjamin Poulain <benjamin@webkit.org>
2300 [iOS][WK2] Special case ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture() for image documents
2301 https://bugs.webkit.org/show_bug.cgi?id=132553
2303 Reviewed by Tim Horton.
2306 * WebCore.xcodeproj/project.pbxproj:
2307 * html/ImageDocument.cpp:
2308 (WebCore::ImageDocument::imageElement):
2309 * html/ImageDocument.h:
2311 2014-05-05 Ion Rosca <rosca@adobe.com>
2313 [CSS Blending] Webkit-blend-mode fails for accelerated parent with overflow:hidden
2314 https://bugs.webkit.org/show_bug.cgi?id=126160
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.
2322 Reviewed by Dean Jackson.
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
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
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.
2345 2014-05-05 Dirk Schulze <krit@webkit.org>
2347 AX: tabindex support in SVG2
2348 https://bugs.webkit.org/show_bug.cgi?id=130212
2350 Reviewed by Chris Fleizach.
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
2355 It adds support for tabindex to SVG by reusing the HTML code.
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
2360 Test: svg/custom/tabindex-order.html
2363 (WebCore::Element::setTabIndex): Moved from HTMLElement and shared with all elements.
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.
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:
2402 2014-05-05 Jeremy Jones <jeremyj@apple.com>
2404 Implement beginScrubbing and endScrubbing for video fullscreen.
2405 https://bugs.webkit.org/show_bug.cgi?id=132520
2407 Reviewed by Eric Carlson.
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.
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):
2423 2014-05-05 Tim Horton <timothy_horton@apple.com>
2425 More long hangs under IOSurfacePool::evict
2426 https://bugs.webkit.org/show_bug.cgi?id=132576
2427 <rdar://problem/16769469>
2429 Reviewed by Simon Fraser.
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.
2438 2014-05-05 Radu Stavila <stavila@adobe.com>
2440 [CSS Regions] Remove regionLayoutUpdate event
2441 https://bugs.webkit.org/show_bug.cgi?id=132564
2443 Reviewed by Simon Fraser.
2445 The regionLayoutUpdate event was removed from the regions spec and was replaced by two other events:
2446 regionOversetChange and regionFragmentChange.
2448 No new tests needed, this patch removes a feature.
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:
2480 2014-05-05 Rik Cabanier <cabanier@adobe.com>
2482 Enhance IDL compiler so it supports unrestricted float and double
2483 https://bugs.webkit.org/show_bug.cgi?id=132460
2485 Reviewed by Dirk Schulze.
2487 Updated IDL compiler so it supports unrestricted types.
2488 Also updated the IDL files so they use unrestricted float and
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:
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):
2529 * bindings/scripts/CodeGeneratorJS.pm:
2530 (GenerateImplementation):
2531 (GenerateParametersCheck):
2533 * bindings/scripts/CodeGeneratorObjC.pm:
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:
2544 * dom/RequestAnimationFrameCallback.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:
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:
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:
2611 2014-05-05 Tim Horton <timothy_horton@apple.com>
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>
2617 Reviewed by Simon Fraser.
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.
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.
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/.
2637 2014-05-05 Martin Hock <mhock@apple.com>
2639 Session-aware plugin autostart data
2640 https://bugs.webkit.org/show_bug.cgi?id=131758
2641 <rdar://problem/15906540>
2643 Reviewed by Alexey Proskuryakov.
2645 * html/HTMLPlugInImageElement.cpp:
2646 (WebCore::HTMLPlugInImageElement::userDidClickSnapshot):
2647 * page/PlugInClient.h:
2649 2014-05-05 Radu Stavila <stavila@adobe.com>
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
2654 Reviewed by David Hyatt.
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.
2662 Test: fast/regions/overflow-auto-after-float.html
2664 * rendering/RenderLayer.cpp:
2665 (WebCore::RenderLayer::calculateClipRects):
2667 2014-05-05 Andrei Bucur <abucur@adobe.com>
2669 [CSSRegions] Slider displayed wrong in regions
2670 https://bugs.webkit.org/show_bug.cgi?id=132243
2672 Reviewed by Mihnea Ovidenie.
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).
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.
2685 Test: fast/regions/positioned-slider-in-regions.html
2687 * rendering/RenderFlowThread.cpp:
2688 (WebCore::RenderFlowThread::hasRegionRangeForBox):
2689 (WebCore::RenderFlowThread::getRegionRangeForBox):
2690 * rendering/RenderFlowThread.h:
2692 2014-05-05 Andrei Bucur <abucur@adobe.com>
2694 [CSS Regions] ASSERT when hovering over region
2695 https://bugs.webkit.org/show_bug.cgi?id=128809
2697 Reviewed by Mihnea Ovidenie.
2699 There's no point in hit-testing a box for a region if it's not contained inside
2702 Test: fast/regions/hit-test-box-non-containing-region.html
2704 * rendering/RenderBox.cpp:
2705 (WebCore::RenderBox::nodeAtPoint):
2707 2014-05-04 Andreas Kling <akling@apple.com>
2709 Optimize JSRopeString for resolving directly to AtomicString.
2710 <https://webkit.org/b/132548>
2712 Add two bindings generator attributes for parameters to influence
2713 the way that JS rope strings are resolved:
2717 Generates code that avoids allocating a new StringImpl if there
2718 is already an existing AtomicString we can reuse.
2720 - RequiresExistingAtomicString
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.
2727 Reviewed by Filip Pizlo.
2729 * bindings/scripts/CodeGeneratorJS.pm:
2730 (GenerateParametersCheck):
2732 * bindings/scripts/IDLAttributes.txt:
2735 2014-05-04 Simon Fraser <simon.fraser@apple.com>
2737 [iOS WK2] Compositing layers in iframes are misplaced
2738 https://bugs.webkit.org/show_bug.cgi?id=132554
2739 <rdar://problem/16203027>
2741 Reviewed by Benjamin Poulain.
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
2748 * rendering/RenderLayerCompositor.cpp:
2749 (WebCore::RenderLayerCompositor::requiresScrollLayer):
2751 2014-05-04 Gyuyoung Kim <gyuyoung.kim@samsung.com>
2753 Use std::unique_ptr in m_taskTimer of Notification class
2754 https://bugs.webkit.org/show_bug.cgi?id=132544
2756 Reviewed by Andreas Kling.
2758 No new tests, no behavior change.
2760 * Modules/notifications/Notification.cpp:
2761 (WebCore::Notification::Notification):
2762 * Modules/notifications/Notification.h: Use std::unique_ptr instead of OwnPtr.
2764 2014-05-04 Tim Horton <timothy_horton@apple.com>
2766 Long hangs under IOSurfacePool::evict
2767 https://bugs.webkit.org/show_bug.cgi?id=132549
2768 <rdar://problem/16769469>
2770 Reviewed by Simon Fraser.
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.
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.
2781 2014-05-04 Pratik Solanki <psolanki@apple.com>
2783 Shortcircuit shouldUseCredentialStorage callback
2784 https://bugs.webkit.org/show_bug.cgi?id=132308
2785 <rdar://problem/16806708>
2787 Reviewed by Alexey Proskuryakov.
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.
2795 No new tests because no change in functionality.
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:
2822 2014-05-04 Brent Fulgham <bfulgham@apple.com>
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>
2828 Reviewed by Jer Noble.
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.
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.
2854 2014-05-04 Beth Dakin <bdakin@apple.com>
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
2860 <rdar://problem/16613039>
2862 Reviewed by Simon Fraser.
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.
2876 In order to achieve this, the scrolling thread needs to know about the
2877 topContentInset, the clip layer, and the root contents layer.
2879 AsyncScrollingCoordinator::updateScrollingNode() now takes an additional parameter
2880 for the clip layer. Also export the topContentInset symbol for UI-side
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):
2891 Set the topContentInset, the insetClipLayer, and the scrolledContentsLayer when
2893 * page/scrolling/AsyncScrollingCoordinator.cpp:
2894 (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
2895 (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
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:
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):
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:
2920 Similarly, ScrollingTreeScrollingNode has two new members for m_topContentInset
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):
2931 Compute positions for the two new layers.
2932 (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
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:
2946 2014-05-04 Benjamin Poulain <benjamin@webkit.org>
2948 Clear the Selector Query caches on memory pressure
2949 https://bugs.webkit.org/show_bug.cgi?id=132545
2951 Reviewed by Andreas Kling.
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.
2958 (WebCore::Document::clearSelectorQueryCache):
2959 (WebCore::Document::setCompatibilityMode):
2960 (WebCore::Document::updateBaseURL):
2962 * dom/SelectorQuery.cpp:
2963 (WebCore::SelectorQueryCache::invalidate): Deleted.
2964 * dom/SelectorQuery.h:
2965 * platform/MemoryPressureHandler.cpp:
2966 (WebCore::MemoryPressureHandler::releaseMemory):
2968 2014-05-04 Gyuyoung Kim <gyuyoung.kim@samsung.com>
2970 Convert OwnPtr to std::unique_ptr in CDM
2971 https://bugs.webkit.org/show_bug.cgi?id=132467
2973 Reviewed by Andreas Kling.
2975 Use std::unique_ptr in CDM class.
2977 No new tests, no behavior change.
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:
2992 2014-05-03 Commit Queue <commit-queue@webkit.org>
2994 Unreviewed, rolling out r168232.
2995 https://bugs.webkit.org/show_bug.cgi?id=132543
2997 broke ~15 tests on WK2 debug (Requested by kling on #webkit).
3001 "Shortcircuit shouldUseCredentialStorage callback"
3002 https://bugs.webkit.org/show_bug.cgi?id=132308
3003 http://trac.webkit.org/changeset/168232
3005 2014-05-03 Andreas Kling <akling@apple.com>
3007 RenderSVGResourcePattern should deal in RenderElement&.
3008 <https://webkit.org/b/132536>
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.
3014 Reviewed by Sam Weinig.
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:
3027 2014-05-03 Yusuke Suzuki <utatane.tea@gmail.com>
3029 CSS JIT: optimize direct / indirect adjacent's traversal backtracking
3030 https://bugs.webkit.org/show_bug.cgi?id=132319
3032 Reviewed by Benjamin Poulain.
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.
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.
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.
3065 Test: fast/selectors/backtracking-adjacent.html
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.
3076 2014-05-03 Andreas Kling <akling@apple.com>
3078 Clear the JSString cache when under memory pressure.
3079 <https://webkit.org/b/132539>
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.
3085 1.1 MB progression on Membuster3.
3087 Reviewed by Sam Weinig.
3089 * platform/MemoryPressureHandler.cpp:
3090 (WebCore::MemoryPressureHandler::releaseMemory):
3092 2014-05-03 Benjamin Poulain <benjamin@webkit.org>
3094 [iOS][WK2] Support disabling speculative tiling
3095 https://bugs.webkit.org/show_bug.cgi?id=132512
3097 Reviewed by Tim Horton.
3099 Move ScrollView::setScrollVelocity() and ScrollView::computeCoverageRect() to FrameView.
3100 When speculative tiling is disabled, return an unmodified exposed rect.
3102 Time/velocity adjusments are completely unnecessary at the moment since speculative tiling
3103 is enabled as soon as the view scrolls.
3106 * page/FrameView.cpp:
3107 (WebCore::FrameView::setScrollVelocity):
3108 (WebCore::FrameView::computeCoverageRect):
3110 * platform/ScrollView.h:
3111 * platform/ios/ScrollViewIOS.mm:
3112 (WebCore::ScrollView::setScrollVelocity): Deleted.
3113 (WebCore::ScrollView::computeCoverageRect): Deleted.
3115 2014-05-02 Pratik Solanki <psolanki@apple.com>
3117 Shortcircuit shouldUseCredentialStorage callback
3118 https://bugs.webkit.org/show_bug.cgi?id=132308
3119 <rdar://problem/16806708>
3121 Reviewed by Alexey Proskuryakov.
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.
3129 No new tests because no change in functionality.
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:
3156 2014-05-03 Andreas Kling <akling@apple.com>
3158 Invalidate scrollbars when custom scrollbar style changes dynamically.
3159 <https://webkit.org/b/132529>
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.
3164 Reviewed by Antti Koivisto.
3166 Test: fast/css/scrollbar-dynamic-style-change.html
3168 * platform/ScrollView.cpp:
3169 (WebCore::ScrollView::styleDidChange):
3170 * platform/ScrollView.h:
3171 * rendering/RenderView.cpp:
3172 (WebCore::RenderView::styleDidChange):
3174 2014-05-03 Simon Fraser <simon.fraser@apple.com>
3176 Very fuzzy layers under non-decompasable matrices
3177 https://bugs.webkit.org/show_bug.cgi?id=132516
3178 <rdar://problem/16717478>
3180 Reviewed by Sam Weinig.
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.
3188 Fix by testing for success of decomposition.
3190 Test: compositing/contents-scale/non-decomposable-matrix.html
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.
3204 2014-05-03 Simon Fraser <simon.fraser@apple.com>
3206 Fix crash in WebKit client app when zooming
3207 https://bugs.webkit.org/show_bug.cgi?id=132475
3208 <rdar://problem/16703405>
3210 Reviewed by Tim Horton.
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.
3216 * platform/graphics/ca/mac/WebTiledBackingLayer.mm:
3217 (-[WebTiledBackingLayer isOpaque]):
3218 (-[WebTiledBackingLayer acceleratesDrawing]):
3219 (-[WebTiledBackingLayer contentsScale]):
3221 2014-05-03 Carlos Garcia Campos <cgarcia@igalia.com>
3223 Unreviewed. Fix GTK+ build after r168209.
3225 * platform/leveldb/LevelDBDatabase.cpp:
3226 (WebCore::LevelDBDatabase::write):
3228 2014-05-03 Zalan Bujtas <zalan@apple.com>
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>
3234 Reviewed by Simon Fraser.
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.
3239 Existing fieldset tests cover it.
3241 * rendering/RenderFieldset.cpp:
3242 (WebCore::RenderFieldset::paintBoxDecorations):
3244 2014-05-02 Zalan Bujtas <zalan@apple.com>
3246 CodeCleanup: Remove *MaintainsPixelAlignment from GraphicsLayer*.
3247 https://bugs.webkit.org/show_bug.cgi?id=132501
3249 Reviewed by Simon Fraser.
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:
3269 2014-05-02 Simon Fraser <simon.fraser@apple.com>
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>
3275 Reviewed by Tim Horton.
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.
3283 Fix by having RenderLayerCompositor schedule a flush, rather
3284 than just doing a flush, in response to GraphicsLayerUpdater.
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.
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:
3298 2014-05-02 Jeremy Jones <jeremyj@apple.com>
3300 Use displayNameForTrack instead of textTrack->label() for captions.
3301 https://bugs.webkit.org/show_bug.cgi?id=131311
3303 Reviewed by Darin Adler.
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.
3308 * platform/ios/WebVideoFullscreenModelMediaElement.h:
3309 * platform/ios/WebVideoFullscreenModelMediaElement.mm:
3310 (WebVideoFullscreenModelMediaElement::setMediaElement):
3311 move legible track code into updateLegibleOptions()
3313 (WebVideoFullscreenModelMediaElement::handleEvent):
3314 updateLegibleOptions on addTrack and removeTrack
3316 (WebVideoFullscreenModelMediaElement::selectLegibleMediaOption):
3317 select the corresponding TextTrack on HTMLMediaElement.
3319 (WebVideoFullscreenModelMediaElement::updateLegibleOptions):
3320 use the same mechanism as desktop to build the captions menu.
3322 2014-05-02 Jeremy Jones <jeremyj@apple.com>
3324 CSS-based Media Controls Show Different times content longer than 1 hour.
3325 https://bugs.webkit.org/show_bug.cgi?id=132443
3327 Reviewed by Jer Noble.
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.
3333 * Modules/mediacontrols/mediaControlsApple.js:
3334 (Controller.prototype.updateDuration):
3335 Apply .hour-long-time class as appropriate.
3337 (Controller.prototype.formatTime):
3338 More robust formatting to handle hours.
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.
3344 * Modules/mediacontrols/mediaControlsiOS.js:
3345 (ControllerIOS.prototype.formatTime):
3346 More robust formatting to handle hours.
3348 2014-05-02 Jer Noble <jer.noble@apple.com>
3350 [MSE][Mac] AVAssetTrack returns incorrect track size
3351 https://bugs.webkit.org/show_bug.cgi?id=132469
3353 Reviewed by Brent Fulgham.
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.
3361 2014-05-02 Zalan Bujtas <zalan@apple.com>
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>
3367 Reviewed by Simon Fraser.
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.
3372 Currently not testable.
3374 * rendering/RenderThemeIOS.mm:
3375 (WebCore::RenderThemeIOS::paintTextFieldDecorations):
3377 2014-05-02 Andreas Kling <akling@apple.com>
3379 Remove HistogramSupport.
3380 <https://webkit.org/b/132354>
3382 Prune some leftover Chromium gunk that no other ports ever used.
3384 Reviewed by Simon Fraser.
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):
3406 (WebCore::Document::~Document):
3407 (WebCore::histogramMutationEventUsage): Deleted.
3408 * dom/ShadowRoot.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):
3425 2014-05-02 Brady Eidson <beidson@apple.com>
3427 Stop flipping the ImageControlsButton
3428 <rdar://problem/16773238> and https://bugs.webkit.org/show_bug.cgi?id=132502
3430 Reviewed by Tim Horton.
3432 * rendering/RenderThemeMac.mm:
3433 (WebCore::RenderThemeMac::paintImageControlsButton):
3435 2014-05-02 Jeremy Jones <jeremyj@apple.com>
3437 Fullscreen UI does not appear after WebProcess has crashed
3438 https://bugs.webkit.org/show_bug.cgi?id=132442
3440 Reviewed by Darin Adler.
3442 Clean up immediately when there is a WebProcess crash.
3445 * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
3446 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
3447 (WebVideoFullscreenInterfaceAVKit::invalidate):
3448 Clean-up resources immediately.
3450 2014-05-02 Commit Queue <commit-queue@webkit.org>
3452 Unreviewed, rolling out r168192.
3453 https://bugs.webkit.org/show_bug.cgi?id=132498
3455 Was not the correct fix (blurry!) (Requested by bfulgham_ on
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
3465 2014-05-02 Alexey Proskuryakov <ap@apple.com>
3467 Remove Blob contentDisposition handling
3468 https://bugs.webkit.org/show_bug.cgi?id=132490
3470 Reviewed by Sam Weinig.
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.
3488 2014-05-02 Anders Carlsson <andersca@apple.com>
3490 Implement FormData decoding using KeyedDecoder
3491 https://bugs.webkit.org/show_bug.cgi?id=132494
3493 Reviewed by Tim Horton.
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:
3502 2014-05-02 Brent Fulgham <bfulgham@apple.com>
3504 [iOS] deviceScaleFactor is being double-applied when rendering captions in full screen mode
3505 https://bugs.webkit.org/show_bug.cgi?id=132481
3507 Reviewed by Jer Noble.
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.
3513 2014-05-02 Simon Fraser <simon.fraser@apple.com>
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>
3519 Reviewed by Sam Weinig.
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.
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.
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):
3549 2014-05-02 Anders Carlsson <andersca@apple.com>
3551 Clean up FormDataElement
3552 https://bugs.webkit.org/show_bug.cgi?id=132483
3554 Reviewed by Sam Weinig.
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):
3581 2014-05-02 Jer Noble <jer.noble@apple.com>
3583 [iOS] Wireless playback button not blue when active
3584 https://bugs.webkit.org/show_bug.cgi?id=132473
3586 Reviewed by Simon Fraser.
3588 The playback button's class was being set to 'undefined', due to Controller.ClassNames.active being undefined.
3590 * Modules/mediacontrols/mediaControlsApple.js:
3592 2014-05-02 Alexey Proskuryakov <ap@apple.com>
3594 Don't abuse Blob deserialization constructor in WebSocket
3595 https://bugs.webkit.org/show_bug.cgi?id=132478
3597 Reviewed by Sam Weinig.
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
3607 (WebCore::Blob::deserialize):
3608 (WebCore::Blob::create): Deleted.
3610 (WebCore::File::deserialize):
3611 (WebCore::File::create): Deleted.
3612 Renamed a special case of "create" function to avoid explaining what it is for.
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):
3629 2014-05-02 Anders Carlsson <andersca@apple.com>
3631 Add and implement KeyedDecoder::decodeBytes
3632 https://bugs.webkit.org/show_bug.cgi?id=132479
3634 Reviewed by Tim Horton.
3636 * platform/KeyedCoding.h:
3637 (WebCore::KeyedDecoder::decodeBytes):
3639 2014-05-02 Joseph Pecoraro <pecoraro@apple.com>
3641 [iOS] WebKit2 File Upload Support
3642 https://bugs.webkit.org/show_bug.cgi?id=132024
3644 Reviewed by Enrica Casucci.
3646 * English.lproj/Localizable.strings:
3647 New localized strings for <input type="file"> on iOS.
3649 2014-05-02 Chris Fleizach <cfleizach@apple.com>
3651 AX: WK2: iOS web page scrolling doesn't work with VoiceOver
3652 https://bugs.webkit.org/show_bug.cgi?id=132028
3654 Reviewed by Mario Sanchez Prada.
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.
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]):
3673 2014-05-02 Jeremy Jones <jeremyj@apple.com>
3675 Pause playback on exit fullscreen when inline playback not allowed.
3676 https://bugs.webkit.org/show_bug.cgi?id=132450
3678 Reviewed by Jer Noble.
3680 Use correct method of determining if inline playback is allowed.
3682 * html/HTMLMediaElement.cpp:
3683 (WebCore::HTMLMediaElement::parseAttribute):
3684 Use m_mediaSession->requiresFullscreenForVideoPlayback to detect if inline playback is allowed.
3686 * platform/ios/WebVideoFullscreenModelMediaElement.mm:
3687 (WebVideoFullscreenModelMediaElement::requestExitFullscreen):
3688 Prevent duplicate exit requests.
3690 2014-05-02 Ion Rosca <rosca@adobe.com>
3692 [CSS Blending] Remove support for non-separable blend modes from background-blend-mode
3693 https://bugs.webkit.org/show_bug.cgi?id=132327
3695 Reviewed by Dean Jackson.
3697 Removed support for non-separable background blend modes from the CSS parser.
3698 Covered by existing tests.
3700 * css/CSSParser.cpp:
3701 (WebCore::CSSParser::parseFillProperty):
3703 2014-05-02 Gyuyoung Kim <gyuyoung.kim@samsung.com>
3705 Clean up #include <OwnPtr.h>|<PassOwnPtr.h> in Supplementable classes
3706 https://bugs.webkit.org/show_bug.cgi?id=132466
3708 Reviewed by Tim Horton.
3710 Since r168144, Supplementable classes don't need to include OwnPtr.h or PassOwnPtr.h.
3711 Clean up those inclusions.
3713 No new tests, just clean up patch.
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:
3731 2014-05-01 Ryuan Choi <ryuan.choi@samsung.com>
3733 Remove TiledBackingStore stuff from Frame
3734 https://bugs.webkit.org/show_bug.cgi?id=132458
3736 Reviewed by Andreas Kling.
3738 Although TiledBackingStore is using for the CoordinatedGraphics,
3739 CoordinatedGraphics does not use tiledBackingStore of Frame.
3741 This patch removed TiledBackingStore related code of the Frame.
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.
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.
3761 (WebCore::Settings::tiledBackingStoreEnabled): Deleted.
3763 2014-05-01 Myles C. Maxfield <mmaxfield@apple.com>
3765 Migrate all uses of DeviceMotionController and DeviceOrientationController to std::unique_ptr
3766 https://bugs.webkit.org/show_bug.cgi?id=132461
3768 Unreviewed build fix.
3773 (WebCore::Document::Document):
3775 * platform/ios/DeviceMotionClientIOS.h:
3776 (WebCore::DeviceMotionClientIOS::create): Deleted.
3777 * platform/ios/DeviceOrientationClientIOS.h:
3778 (WebCore::DeviceOrientationClientIOS::create): Deleted.
3780 2014-05-01 Gyuyoung Kim <gyuyoung.kim@samsung.com>
3782 Convert OwnPtr and PassOwnPtr uses to std::unique_ptr in Supplement
3783 https://bugs.webkit.org/show_bug.cgi?id=132165
3785 Reviewed by Darin Adler.
3787 According to convert from PassOwnPtr to std::unique_ptr, provideTo() callers also begin
3788 to use std::make_unique.
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):
3860 2014-05-01 Andreas Kling <akling@apple.com>
3862 HTMLMediaElement: Remove two unnecessary virtual overrides.
3863 <https://webkit.org/b/132445>
3865 Now that ENABLE_PLUGIN_PROXY_FOR_VIDEO is gone, we can remove
3868 - defaultEventHandler()
3869 - willRespondToMouseClickEvents()
3871 Reviewed by Darin Adler.
3873 * html/HTMLMediaElement.cpp:
3874 * html/HTMLMediaElement.h:
3876 2014-05-01 Benjamin Poulain <bpoulain@apple.com>
3878 ViewportConfiguration::minimumScale() uses the initial scale as initial value
3879 https://bugs.webkit.org/show_bug.cgi?id=132451
3880 <rdar://problem/16780111>
3882 Reviewed by Enrica Casucci.
3884 * page/ViewportConfiguration.cpp:
3885 (WebCore::ViewportConfiguration::minimumScale):
3886 The initial minimum scale was set to the initial scale, preventing some pages from zooming
3889 2014-05-01 Alexey Proskuryakov <ap@apple.com>
3891 Build fix for !ENABLE(BLOB) builds.
3893 * fileapi/ThreadableBlobRegistry.cpp:
3894 (WebCore::ThreadableBlobRegistry::registerBlobURL):
3895 (WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):
3897 2014-05-01 Alexey Proskuryakov <ap@apple.com>
3899 Move size computation for Blob constructor into BlobRegistryImpl
3900 https://bugs.webkit.org/show_bug.cgi?id=132439
3902 Reviewed by Sam Weinig.
3904 * Modules/websockets/WebSocket.cpp: (WebCore::WebSocket::didReceiveBinaryData):
3905 Don't pass the size, anyone who cares can get it from BlobData.
3907 * bindings/js/JSBlobCustom.cpp: (WebCore::JSBlobConstructor::constructJSBlob):
3908 Updated for BlobBuilder changes.
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.
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).
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.
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.
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.
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.
3950 2014-05-01 Eric Carlson <eric.carlson@apple.com>
3952 [iOS] audio and video should automatically play to active external device
3953 https://bugs.webkit.org/show_bug.cgi?id=132428
3955 Reviewed by Jer Noble.
3957 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3958 (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Set
3959 AVPlayer.usesExternalPlaybackWhileExternalScreenIsActive.
3961 2014-05-01 David Hyatt <hyatt@apple.com>
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
3966 Reviewed by Oliver Hunt.
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
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):
3984 2014-05-01 Simon Fraser <simon.fraser@apple.com>
3986 Don't always make backing store for -webkit-backface-visibility:hidden
3987 https://bugs.webkit.org/show_bug.cgi?id=132420
3989 Reviewed by Sam Weinig.
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").
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.
4001 Tests: compositing/backing/backface-visibility-in-3dtransformed.html
4002 compositing/backing/backface-visibility-in-transformed.html
4003 compositing/backing/backface-visibility.html
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:
4016 2014-05-01 Alex Christensen <achristensen@webkit.org>
4018 Finish updating ANGLE.
4019 https://bugs.webkit.org/show_bug.cgi?id=132434
4021 Reviewed by Dean Jackson.
4024 Removed Uniform.cpp which is no longer in ANGLE.
4026 2014-05-01 David Hyatt <hyatt@app