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