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