6a881e99aba4e35e6ed0531c8e4e79d9b94f325a
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2015-08-17  Alex Christensen  <achristensen@webkit.org>
2
3         Move some commands from ./CMakeLists.txt to Source/cmake
4         https://bugs.webkit.org/show_bug.cgi?id=148003
5
6         Reviewed by Brent Fulgham.
7
8         * CMakeLists.txt:
9         Added commands needed to build WebCore by itself.
10
11 2015-08-17  Alex Christensen  <achristensen@webkit.org>
12
13         Remove unused multisampling check
14         https://bugs.webkit.org/show_bug.cgi?id=148030
15
16         Reviewed by Dean Jackson.
17
18         No change in behavior.
19         Extensions3DOpenGLCommon.m_maySupportMultisampling is always true.
20
21         * platform/graphics/Extensions3D.h:
22         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
23         (WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon):
24         * platform/graphics/opengl/Extensions3DOpenGLCommon.h:
25         (WebCore::Extensions3DOpenGLCommon::isImagination):
26         (WebCore::Extensions3DOpenGLCommon::vendor):
27         (WebCore::Extensions3DOpenGLCommon::requiresBuiltInFunctionEmulation):
28         (WebCore::Extensions3DOpenGLCommon::requiresRestrictedMaximumTextureSize):
29         (WebCore::Extensions3DOpenGLCommon::maySupportMultisampling): Deleted.
30         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
31         (WebCore::GraphicsContext3D::validateDepthStencil):
32
33 2015-08-17  Andy Estes  <aestes@apple.com>
34
35         REGRESSION (r188486): Crash in SubresourceLoader::didReceiveResponse() when TemporaryChange goes out of scope
36         https://bugs.webkit.org/show_bug.cgi?id=148082
37
38         Reviewed by Alexey Proskuryakov.
39
40         Covered by existing tests run under ASan or Guard Malloc.
41
42         * loader/SubresourceLoader.cpp:
43         (WebCore::SubresourceLoader::didReceiveResponse): Ensure that callingDidReceiveResponse is destroyed while the
44         SubresourceLoader is still alive by declaring it after protect.
45
46 2015-08-17  Simon Fraser  <simon.fraser@apple.com>
47
48         will-change should sometimes trigger compositing
49         https://bugs.webkit.org/show_bug.cgi?id=148072
50
51         Reviewed by Tim Horton.
52         
53         Implement the compositing side-effects of will-change, if any of the
54         following properties are specified:
55             opacity
56             filter (as -webkit-filter)
57             backdrop-filter (as -webkit-backdrop-filter)
58             transform (on transformable elements only)
59
60         Tests: compositing/layer-creation/will-change-change.html
61                compositing/layer-creation/will-change-layer-creation.html
62
63         * inspector/InspectorLayerTreeAgent.cpp:
64         (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer): Tell the inspector
65         about will-change.
66         * rendering/RenderElement.cpp:
67         (WebCore::RenderElement::adjustStyleDifference): Need to trigger a recomposite if
68         will-change includes a compositing trigger property. This gets called before and
69         after setting the style, so this checks both states.
70         (WebCore::RenderElement::shouldWillChangeCreateStackingContext):
71         * rendering/RenderElement.h:
72         (WebCore::RenderElement::willChangeCreatesStackingContext): Helper function that
73         RenderInline uses to determine if it needs to create a RenderLayer, since RenderInline
74         doesn't get automatic layer RenderLayers as a side effect of having non-auto z-index
75         in the style.
76         * rendering/RenderInline.h: Need to trigger a RenderLayer if will-change includes
77         a property that applies to inlines.
78         * rendering/RenderLayerCompositor.cpp:
79         (WebCore::RenderLayerCompositor::requiresCompositingLayer): Call requiresCompositingForWillChange().
80         (WebCore::RenderLayerCompositor::requiresOwnBackingStore): Call requiresCompositingForWillChange().
81         (WebCore::RenderLayerCompositor::reasonsForCompositing): Include requiresCompositingForWillChange().
82         (WebCore::RenderLayerCompositor::requiresCompositingForWillChange): If will-change contains a
83         property that would trigger compositing on this element, return true.
84         * rendering/RenderLayerCompositor.h:
85         * rendering/style/RenderStyle.cpp:
86         (WebCore::RenderStyle::changeRequiresLayout): Set ContextSensitivePropertyWillChange in
87         changedContextSensitiveProperties if will-change changes.
88         * rendering/style/RenderStyle.h: Rename for clarity.
89         * rendering/style/RenderStyleConstants.h: Add ContextSensitivePropertyWillChange.
90         * rendering/style/WillChangeData.cpp:
91         (WebCore::propertyCreatesStackingContext): Subset of properties that create stacking
92         context on any element.
93         (WebCore::propertyCreatesStackingContextOnBoxesOnly): Additional properties that
94         create stacking context on boxes.
95         (WebCore::propertyTriggersCompositing): Properties that trigger compositing on
96         any element.
97         (WebCore::propertyTriggersCompositingOnBoxesOnly): Additional properties that
98         trigger compositing on boxes.
99         (WebCore::WillChangeData::addFeature): As features are added, manage a set of
100         flags to know if they trigger stacking context or compositing, on inlines and boxes.
101         (WebCore::WillChangeData::createsStackingContext): Deleted.
102         * rendering/style/WillChangeData.h:
103         (WebCore::WillChangeData::canCreateStackingContext):
104         (WebCore::WillChangeData::canCreateStackingContextOnInline):
105         (WebCore::WillChangeData::canTriggerCompositing):
106         (WebCore::WillChangeData::canTriggerCompositingOnInline):
107
108 2015-08-17  Timothy Horton  <timothy_horton@apple.com>
109
110         Holes for find matches that span multiple lines are completely wrong
111         https://bugs.webkit.org/show_bug.cgi?id=148065
112         <rdar://problem/5305002>
113
114         Reviewed by Simon Fraser.
115
116         Test: fast/text/mark-matches-broken-line-rendering.html
117
118         Two big problems with find holes:
119             - RenderedDocumentMarker only has one rect, but a marker can be painted
120               by multiple text runs, each with their own rendered rect
121             - paintTextMatchMarker does std::max((unsigned)a, (unsigned)0), which is
122               obviously an overflow problem/not going to work if a is negative
123
124         The combination of these issues causes the holes for find matches to be
125         very broken: text that isn't part of the match is highlighted, and some
126         text that is part of the match isn't highlighted.
127
128         To fix, make RenderedDocumentMarker support multiple rects, and use signed
129         math (like paintDocumentMarker already did) when computing positions in paintTextMatchMarker.
130
131         * dom/DocumentMarkerController.cpp:
132         (WebCore::DocumentMarkerController::addTextMatchMarker):
133         (WebCore::DocumentMarkerController::renderedRectsForMarkers):
134         * dom/RenderedDocumentMarker.h:
135         (WebCore::RenderedDocumentMarker::RenderedDocumentMarker):
136         (WebCore::RenderedDocumentMarker::isRendered):
137         (WebCore::RenderedDocumentMarker::contains):
138         (WebCore::RenderedDocumentMarker::addRenderedRect):
139         (WebCore::RenderedDocumentMarker::renderedRects):
140         (WebCore::RenderedDocumentMarker::invalidate):
141         (WebCore::RenderedDocumentMarker::setRenderedRect): Deleted.
142         (WebCore::RenderedDocumentMarker::renderedRect): Deleted.
143         (WebCore::RenderedDocumentMarker::invalidMarkerRect): Deleted.
144         * rendering/InlineTextBox.cpp:
145         (WebCore::InlineTextBox::paintDocumentMarker):
146         (WebCore::InlineTextBox::paintTextMatchMarker):
147         (WebCore::InlineTextBox::computeRectForReplacementMarker):
148         * rendering/svg/SVGInlineFlowBox.cpp:
149         (WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer):
150
151 2015-08-17  Timothy Horton  <timothy_horton@apple.com>
152
153         Adopt shrink-wrapping for TextIndicators on Mac
154         https://bugs.webkit.org/show_bug.cgi?id=148064
155
156         Reviewed by Beth Dakin.
157
158         Instead of indicating the bounding rect when there are multiple text rects,
159         use shrink-wrapping for TextIndicatorWindow (on Mac), like we do on iOS.
160
161         * bindings/objc/DOM.mm:
162         (-[DOMNode getPreviewSnapshotImage:andRects:]):
163         Make getPreviewSnapshotImage use the same options that iOS WebKit2 uses.
164         This fixes a regression from r188420 where iOS WebKit1 TextIndicators lost
165         all of the relevant (previously hardcoded inside TextIndicator) options.
166
167         * page/TextIndicator.cpp:
168         (WebCore::TextIndicator::createWithRange):
169         (WebCore::TextIndicator::createWithSelectionInFrame):
170         (WebCore::initializeIndicator):
171         Don't keep indicatesCurrentSelection in TextIndicatorData. Instead,
172         just pass it through to initializeIndicator. Add a flag which stops us
173         from zeroing out the margin if indicatesCurrentSelection is true.
174         Move default margins into TextIndicator so they can be applied to the stored rects
175         just like on iOS, instead of trying to apply them later like we used to on Mac.
176
177         * page/TextIndicator.h:
178         (WebCore::TextIndicator::indicatesCurrentSelection): Deleted.
179         * page/mac/TextIndicatorWindow.h:
180         * page/mac/TextIndicatorWindow.mm:
181         (-[WebTextIndicatorView initWithFrame:textIndicator:margin:offset:]):
182         (WebCore::TextIndicatorWindow::setTextIndicator):
183         (outsetIndicatorRectIncludingShadow): Deleted.
184         (textIndicatorsForTextRectsOverlap): Deleted.
185         Make use of pathsWithShrinkWrappedRects for TextIndicatorWindow, instead
186         of just smushing all intersecting rects together. Use the computed path
187         for the shadows and to mask the yellow highlight and snapshot layer.
188
189         * platform/graphics/PathUtilities.cpp:
190         (WebCore::PathUtilities::pathsWithShrinkWrappedRects):
191         (WebCore::PathUtilities::pathWithShrinkWrappedRects):
192         * platform/graphics/PathUtilities.h:
193         Make it possible to retrieve each non-intersecting path individually, instead
194         of just a single giant Path, so that TextIndicatorWindow can make separate
195         layers for each one (so they can bounce separately).
196
197 2015-08-17  Simon Fraser  <simon.fraser@apple.com>
198
199         Remove some includes from Node.cpp
200         https://bugs.webkit.org/show_bug.cgi?id=148000
201
202         Reviewed by Anders Carlsson.
203
204         No need for these includes.
205
206         * dom/Node.cpp:
207
208 2015-08-17  Chris Dumez  <cdumez@apple.com>
209
210         Accessing HTMLCollection.length is slow
211         https://bugs.webkit.org/show_bug.cgi?id=148039
212
213         Reviewed by Ryosuke Niwa.
214
215         Accessing was HTMLCollection.length is slow, much slower than accessing
216         NodeList.length. The reason is that HTMLCollection's bindings code is
217         slightly different. In particular, HTMLCollection's GetOwnPropertySlot()
218         has an extra check to see if the PropertyName is available on the
219         prototype before doing:
220         1. Check static properties (getStaticValueSlotEntryWithoutCaching())
221         2. Indexed getter
222         3. Named getter
223         4. Check own properties (getStaticValueSlot())
224
225         This means that everytime the JavaScript was accessing HTMLCollection.length
226         or HTMLCollection[index], we would check if length / index was present on the
227         prototype before calling HTMLCollection::length() / HTMLCollection::item(i).
228         The prototype check is fairly expensive and was making traversing an
229         HTMLCollection much slower than traversing a NodeList.
230
231         In this patch, I refactored GetOwnPropertySlot() to do:
232         1. Indexed getter
233         2. Check static properties
234         3. Prototype check
235         4. Named getter
236         5. Check own properties
237
238         This way, the prototype check is no longer slowing down HTMLCollection
239         traversal. What matters is that we do the prototype check *before* calling
240         the named getter as we don't want named properties to mask properties on
241         the prototype.
242
243         Note that this patch takes the minimal approach to get the performance win
244         while limiting the risk of breakage. Indeed, the current behavior still
245         does not match the WebIDL specification, which seems to indicate the order
246         should be:
247         1. Indexed getter
248         2. Check static / own properties
249         3. Prototype check
250         4. Named getter
251
252         Once we match the specification, I believe we will be able to drop the
253         JSC::HasImpureGetOwnPropertySlot flag on HTMLCollection, which currently
254         makes HTMLCollection.length not cacheable. Right now, I believe we still
255         need this flag because named properties can still mask own properties.
256
257         Performance:
258         /Bindings/childNodes-traversal: 5597.54 +/- 0.7% -> 5572.10 +/- 0.4%
259         /Bindings/children-traversal: 3852.61 +/- 0.3% -> 4731.03 +/- 0.3% (~23% better)
260
261         Test: fast/dom/htmlcollection-getownproperty.html
262
263         * bindings/scripts/CodeGeneratorJS.pm:
264         (GenerateGetOwnPropertySlotBody):
265         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
266         (WebCore::JSTestEventTarget::getOwnPropertySlot):
267
268 2015-08-17  Jinyoung Hur  <hur.ims@navercorp.com>
269
270         Fix possible EGL and GLX makeCurrent problem of GLPlatformContext and GLPlatformSurface
271         https://bugs.webkit.org/show_bug.cgi?id=147695
272
273         Reviewed by Gyuyoung Kim.
274
275         GLPLatformContext::makeCurrent is implemented to do no-op when it thinks, comparing with a static
276         variable declared in GLPlatformContext.cpp, there is no changes. This can lead to not-working 
277         makeCurrent when other part of codes, e.g., Cairo-gl, change EGL or GLX current context by calling
278         something like eglMakeCurrent. So modify GLPLatformContext::makeCurrent to use the return value of
279         eglGetCurrentContext or glXGetCurrentContext as a comparing target rather than a static variable.
280         In addition, GLPlatformSurface::isCurrentDrawable is also modified to use eglGetCurrentSurface or
281         glXGetCurrentDrawable rather than a static variable.
282
283         There are no tests because already existing GL tests will verify this change.
284
285         * platform/graphics/opengl/GLPlatformContext.cpp:
286         (WebCore::GLPlatformContext::makeCurrent):
287         (WebCore::GLPlatformContext::releaseCurrent):
288         (WebCore::GLCurrentContextWrapper::GLCurrentContextWrapper): Deleted.
289         (WebCore::GLPlatformContext::~GLPlatformContext): Deleted.
290         (WebCore::GLPlatformContext::isCurrentContext): Deleted.
291         (WebCore::GLPlatformContext::getCurrent): Deleted.
292         * platform/graphics/opengl/GLPlatformContext.h:
293         * platform/graphics/opengl/GLPlatformSurface.cpp:
294         (WebCore::GLPlatformSurface::~GLPlatformSurface): Deleted.
295         (WebCore::GLPlatformSurface::isCurrentDrawable): Deleted.
296         (WebCore::GLPlatformSurface::onMakeCurrent): Deleted.
297         (WebCore::GLPlatformSurface::destroy): Deleted.
298         * platform/graphics/opengl/GLPlatformSurface.h:
299         * platform/graphics/surfaces/egl/EGLSurface.cpp:
300         (WebCore::EGLTransportSurface::isCurrentDrawable):
301         (WebCore::EGLOffScreenSurface::isCurrentDrawable):
302         * platform/graphics/surfaces/egl/EGLSurface.h:
303         * platform/graphics/surfaces/glx/GLXSurface.cpp:
304         (WebCore::GLXTransportSurface::isCurrentContext):
305         (WebCore::GLXOffScreenSurface::isCurrentContext):
306         * platform/graphics/surfaces/glx/GLXSurface.h:
307
308 2015-08-15  Chris Dumez  <cdumez@apple.com>
309
310         Refactor HTMLCollection to be as fast as CachedLiveNodeList
311         https://bugs.webkit.org/show_bug.cgi?id=147979
312
313         Reviewed by Ryosuke Niwa and Antti Koivisto.
314
315         Refactor HTMLCollection to be as fast as CachedLiveNodeList. This is in
316         preparation of having getElementsByTagName*() / getElementsByClassName()
317         return an HTMLCollection instead of a NodeList, as per the
318         specification. Chrome and Firefox already match the specification in
319         this case.
320
321         Traversing an HTMLCollection was slow because of all the extra
322         branching it had compared to CachedLiveNodeList. To address the issue,
323         this patch introduces a new templated CachedHTMLCollection subclass,
324         which behaves in a similar way as CachedLiveNodeList. The 2 template
325         parameters are:
326         1. The type of the subclass of CachedHTMLCollection, so we can call
327            elementMatches() directly on the subclass, without needed any
328            virtual function call or switch statement. This is the same approach
329            as in CachedLiveNodeList.
330         2. The type of tree traversal used (Descendants, ChildrenOnly,
331            CustomForwardOnly). Unlike LiveNodeList, HTMLCollection needs to
332            support these 3 types of tree traversal. These were causing extra
333            branching for every item() call. We are now able to choose the right
334            type of traversal for the CachedHTMLCollection at compile time.
335
336         * WebCore.xcodeproj/project.pbxproj:
337         Add new files to the Project.
338
339         * dom/ContainerNode.cpp:
340         (WebCore::ContainerNode::children):
341         (WebCore::ContainerNode::cachedHTMLCollection): Deleted.
342         * dom/ContainerNode.h:
343         Drop ContainerNode::ensureCachedHTMLCollection() and use
344         NodeListsNodeData::addCachedCollection() directly at call sites
345         instead. We need access to the CollectionType at build-time so
346         we can resolve the CollectionTraversalType parameter for the
347         GenericCachedHTMLCollection using CollectionTypeTraits.
348
349         * dom/Document.cpp:
350         * dom/Document.h:
351         Update ensureCachedCollection() so the CollectionType is now a template
352         parameter instead of a method argument. We need to know the
353         CollectionType at build time to construct the GenericCachedHTMLCollection.
354
355         * dom/ElementChildIterator.h:
356         (WebCore::ElementChildIterator<ElementType>::operator):
357         (WebCore::ElementChildConstIterator<ElementType>::operator):
358         Add support for decrementing an ElementChildIterator, for consistency
359         with ElementDescendantIterator. We need this to support backward
360         traversal in CachedHTMLCollections that use the 'ChildrenOnly' type
361         of traversal.
362
363         * dom/LiveNodeList.h:
364         (WebCore::CachedLiveNodeList<NodeListType>::collectionBegin):
365         (WebCore::CachedLiveNodeList<NodeListType>::collectionLast):
366         (WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseForward):
367         (WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseBackward):
368         Move traversal implementation to CollectionTraversal.h, so it can be
369         shared with achedHTMLCollection.h.
370
371         * html/CachedHTMLCollection.h: Added.
372         (WebCore::traversalType>::CachedHTMLCollection):
373         (WebCore::traversalType>::~CachedHTMLCollection):
374         (WebCore::traversalType>::CachedHTMLCollection::memoryCost):
375         (WebCore::traversalType>::collectionCanTraverseBackward):
376         (WebCore::traversalType>::collectionTraverseForward):
377         (WebCore::traversalType>::collectionTraverseBackward):
378         (WebCore::traversalType>::willValidateIndexCache):
379         (WebCore::traversalType>::length):
380         (WebCore::traversalType>::item):
381         (WebCore::traversalType>::invalidateCache):
382         (WebCore::traversalType>::elementMatches):
383         (WebCore::nameShouldBeVisibleInDocumentAll):
384         (WebCore::traversalType>::namedItem):
385
386         * html/CollectionTraversal.h: Added.
387         Add new template class that provide the collection traversal code
388         needed by CollectionIndexCache. It has template specializations for
389         all 3 types of traversal: Descendants, ChildrenOnly, and
390         CustomForwardOnly.
391
392         * html/CollectionType.h:
393         Add CollectionTypeTraits traits so we can resolve the
394         CollectionTraversalType used by a specific CollectionType at
395         compile-time. This is needed for the second template parameter of
396         CachedHTMLCollection.
397
398         * html/GenericCachedHTMLCollection.cpp: Added.
399         (WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches):
400         * html/GenericCachedHTMLCollection.h: Added.
401         Add CachedHTMLCollection subclass is the generic one used for all
402         CollectionTypes that do not have their own subclass (e.g. NodeChildren).
403         This has an elementMatches() method with a switch() statement handling
404         all these CollectionTypes. Those are not normally not performance
405         sensitive.
406
407         * html/HTMLAllCollection.cpp:
408         (WebCore::HTMLAllCollection::HTMLAllCollection):
409         * html/HTMLAllCollection.h:
410         Subclass CachedHTMLCollection instead of HTMLCollection. Also provide
411         an elementMatches() method that simply returns true as we want to
412         match all elements.
413
414         * html/HTMLCollection.cpp:
415         (WebCore::HTMLCollection::HTMLCollection):
416         Move CollectionIndexCache member to the subclass and drop the 2 other
417         members as they are replaced with the CollectionTraversalType template
418         parameter of CachedHTMLCollection.
419
420         (WebCore::HTMLCollection::~HTMLCollection):
421         Move Document::unregisterCollection() call to ~CachedHTMLCollection()
422         as we needed to check if the CollectionIndexCache was valid first.
423
424         (WebCore::HTMLCollection::updateNamedElementCache):
425         Move part of the implementation to the CachedHTMLCollection subclass
426         as it needs to know about the type of traversal and it needs to be
427         able to call elementMatches().
428
429         * html/HTMLCollection.h:
430         (WebCore::HTMLCollection::rootNode):
431         Inline for performance reasons and consistency with CachedLiveNodeList.
432
433         (WebCore::HTMLCollection::memoryCost):
434         Make virtual and move part of the implementation to the
435         CachedHTMLCollection subclass to compute the cost of the
436         CollectionIndexCache.
437
438         (WebCore::HTMLCollection::invalidateCache):
439         Move part of the implementation to the subclass to invalidate the
440         CollectionIndexCache.
441
442         * html/HTMLFieldSetElement.cpp:
443         (WebCore::HTMLFieldSetElement::elements):
444
445         * html/HTMLFormControlsCollection.cpp:
446         * html/HTMLFormControlsCollection.h:
447         Subclass CachedHTMLCollection instead of HTMLCollection.
448         customElementAfter() no longer needs to be virtual as it
449         is called directly by CachedHTMLCollection on the subclass.
450
451         * html/HTMLFormElement.cpp:
452         (WebCore::HTMLFormElement::elements):
453         * html/HTMLMapElement.cpp:
454         (WebCore::HTMLMapElement::areas):
455         Call NodeListsNodeData::addCachedCollection() directly.
456
457         * html/HTMLNameCollection.cpp:
458         * html/HTMLNameCollection.h:
459         Subclass CachedHTMLCollection instead of HTMLCollection.
460
461         * html/HTMLOptionsCollection.cpp:
462         * html/HTMLOptionsCollection.h:
463         Subclass CachedHTMLCollection instead of HTMLCollection.
464
465         * html/HTMLSelectElement.cpp:
466         (WebCore::HTMLSelectElement::selectedOptions):
467         (WebCore::HTMLSelectElement::options):
468         * html/HTMLTableElement.cpp:
469         (WebCore::HTMLTableElement::rows):
470         (WebCore::HTMLTableElement::tBodies):
471         * html/HTMLTableRowElement.cpp:
472         (WebCore::HTMLTableRowElement::cells):
473         Call NodeListsNodeData::addCachedCollection() directly.
474
475         * html/HTMLTableRowsCollection.cpp:
476         * html/HTMLTableRowsCollection.h:
477         Subclass CachedHTMLCollection instead of HTMLCollection.
478         customElementAfter() no longer needs to be virtual as it
479         is called directly by CachedHTMLCollection on the subclass.
480
481         * html/HTMLTableSectionElement.cpp:
482         (WebCore::HTMLTableSectionElement::rows):
483         Call NodeListsNodeData::addCachedCollection() directly.
484
485 2015-08-15  Timothy Horton  <timothy_horton@apple.com>
486
487         REGRESSION (r168327): ImageDocuments with margins zoom to the wrong position when clicked
488         https://bugs.webkit.org/show_bug.cgi?id=148063
489
490         Reviewed by Simon Fraser.
491
492         No new test because it doesn't seem possible to click on a window.open'd ImageDocument.
493
494         * html/ImageDocument.cpp:
495         (WebCore::ImageEventListener::handleEvent):
496         Use <img>-relative coordinates, not document-relative coordinates,
497         because after r168327, the image can be centered.
498
499 2015-08-15  Simon Fraser  <simon.fraser@apple.com>
500
501         Have will-change create stacking context when necessary
502         https://bugs.webkit.org/show_bug.cgi?id=148060
503
504         Reviewed by Zalan Bujtas.
505         
506         If will-change includes a property whose non-initial value can create
507         stacking context, create stacking context for that element.
508
509         Test: fast/css/will-change/will-change-creates-stacking-context.html
510
511         * css/StyleResolver.cpp:
512         (WebCore::StyleResolver::adjustRenderStyle):
513         * rendering/style/RenderStyle.h: Add willChangeCreatesStackingContext(),
514         which on most cases is a fast, inlined 'return false'. Otherwise ask
515         the WillChangeData.
516         * rendering/style/WillChangeData.cpp:
517         (WebCore::propertyCreatesStackingContext):
518         (WebCore::WillChangeData::createsStackingContext):
519         * rendering/style/WillChangeData.h:
520
521 2015-08-15  Commit Queue  <commit-queue@webkit.org>
522
523         Unreviewed, rolling out r188508.
524         https://bugs.webkit.org/show_bug.cgi?id=148058
525
526         Caused 10 tests to crash (Requested by smfr on #webkit).
527
528         Reverted changeset:
529
530         "Refactor HTMLCollection to be as fast as CachedLiveNodeList"
531         https://bugs.webkit.org/show_bug.cgi?id=147979
532         http://trac.webkit.org/changeset/188508
533
534 2015-08-14  Simon Fraser  <simon.fraser@apple.com>
535
536         Implement parsing for CSS will-change
537         https://bugs.webkit.org/show_bug.cgi?id=148052
538
539         Reviewed by Dean Jackson.
540         
541         Syntax is
542             will-change: auto | <animateable-feature>#
543         where
544             <animateable-feature> = scroll-position | contents | <custom-ident>
545             
546         To support this, add WillChangeData which stores a vector of "feature"
547         and CSS property squished into 16 bits. This is stored in rareNonInheritedData.
548         If null or an empty list, the property value is 'auto'. The list preserves
549         unknown properties.
550
551         Test: fast/css/will-change-parsing.html
552
553         * CMakeLists.txt:
554         * WebCore.vcxproj/WebCore.vcxproj:
555         * WebCore.vcxproj/WebCore.vcxproj.filters:
556         * WebCore.xcodeproj/project.pbxproj:
557         * css/CSSComputedStyleDeclaration.cpp:
558         (WebCore::getWillChangePropertyValue):
559         (WebCore::ComputedStyleExtractor::propertyValue):
560         * css/CSSParser.cpp:
561         (WebCore::CSSParser::parseValue):
562         (WebCore::isValidGridPositionCustomIdent): Renamed from isValidCustomIdent(),
563         since it's grid-specific.
564         (WebCore::CSSParser::parseIntegerOrCustomIdentFromGridPosition):
565         (WebCore::valueIsCSSKeyword): Returns true for the "CSS-wide" keywords like
566         "initial", "inherit" and "default".
567         (WebCore::CSSParser::parseFontFamily):
568         (WebCore::isValidWillChangeAnimatableFeature):
569         (WebCore::CSSParser::parseWillChange):
570         (WebCore::isValidCustomIdent): Deleted.
571         * css/CSSParser.h:
572         * css/CSSPrimitiveValue.h:
573         (WebCore::CSSPrimitiveValue::isPropertyID): New utility function.
574         * css/CSSPropertyNames.in:
575         * css/CSSValueKeywords.in:
576         * css/StyleBuilderCustom.h:
577         (WebCore::StyleBuilderCustom::applyValueWillChange):
578         * rendering/style/RenderStyle.cpp:
579         (WebCore::RenderStyle::setWillChange):
580         * rendering/style/RenderStyle.h:
581         * rendering/style/StyleAllInOne.cpp:
582         * rendering/style/StyleRareNonInheritedData.cpp:
583         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
584         (WebCore::StyleRareNonInheritedData::operator==):
585         (WebCore::StyleRareNonInheritedData::willChangeDataEquivalent):
586         * rendering/style/StyleRareNonInheritedData.h:
587         * rendering/style/WillChangeData.cpp: Added.
588         (WebCore::WillChangeData::operator==):
589         (WebCore::WillChangeData::containsScrollPosition):
590         (WebCore::WillChangeData::containsContents):
591         (WebCore::WillChangeData::containsProperty):
592         (WebCore::WillChangeData::addFeature):
593         (WebCore::WillChangeData::featureAt):
594         * rendering/style/WillChangeData.h: Added.
595         (WebCore::WillChangeData::create):
596         (WebCore::WillChangeData::operator!=):
597         (WebCore::WillChangeData::isAuto):
598         (WebCore::WillChangeData::numFeatures):
599         (WebCore::WillChangeData::WillChangeData):
600         (WebCore::WillChangeData::AnimatableFeature::feature):
601         (WebCore::WillChangeData::AnimatableFeature::property):
602         (WebCore::WillChangeData::AnimatableFeature::featurePropertyPair):
603         (WebCore::WillChangeData::AnimatableFeature::AnimatableFeature):
604         (WebCore::WillChangeData::AnimatableFeature::operator==):
605
606 2015-08-15  Wenson Hsieh  <wenson_hsieh@apple.com>
607
608         Build fix after r188510
609
610         * platform/mac/ThemeMac.mm:
611         (WebCore::paintToggleButton): Pass a raw pointer to drawCellOrFocusRingWithViewIntoContext.
612
613 2015-08-15  Wenson Hsieh  <wenson_hsieh@apple.com>
614
615         Search fields should scale when rendering while zoomed
616         https://bugs.webkit.org/show_bug.cgi?id=147867
617
618         Reviewed by Daniel Bates.
619
620         When rendering zoomed search fields, draw to an image buffer instead of drawing directly into the context. This
621         allows us to scale the image buffer up before rendering. Also refactors common logic used to draw both selects
622         (paintMenuList) and search fields into the new private method paintCellAndSetFocusedElementNeedsRepaintIfNecessary.
623
624         * rendering/RenderThemeMac.h: Changed drawCellOrFocusRingWithViewIntoContext to take a raw pointer.
625         * rendering/RenderThemeMac.mm:
626         (WebCore::paintToggleButton): Passes a raw pointer to drawCellOrFocusRingWithViewIntoContext.
627         (WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext): Changed to take a raw pointer.
628         * rendering/RenderThemeMac.h:
629         * rendering/RenderThemeMac.mm:
630         (WebCore::RenderThemeMac::paintMenuList): Refactored to use paintCellAndSetFocusedElementNeedsRepaintIfNecessary.
631         (WebCore::RenderThemeMac::paintCellAndSetFocusedElementNeedsRepaintIfNecessary): Contains logic common to painting
632             both selects and search fields.
633         (WebCore::RenderThemeMac::paintSearchField): Use ThemeMac::drawCellOrFocusRingWithViewIntoContext
634             to render search fields, utilizing an offscreen image buffer only when necessary.
635
636 2015-08-14  Chris Dumez  <cdumez@apple.com>
637
638         Refactor HTMLCollection to be as fast as CachedLiveNodeList
639         https://bugs.webkit.org/show_bug.cgi?id=147979
640
641         Reviewed by Ryosuke Niwa.
642
643         Refactor HTMLCollection to be as fast as CachedLiveNodeList. This is in
644         preparation of having getElementsByTagName*() / getElementsByClassName()
645         return an HTMLCollection instead of a NodeList, as per the
646         specification. Chrome and Firefox already match the specification in
647         this case.
648
649         Traversing an HTMLCollection was slow because of all the extra
650         branching it had compared to CachedLiveNodeList. To address the issue,
651         this patch introduces a new templated CachedHTMLCollection subclass,
652         which behaves in a similar way as CachedLiveNodeList. The 2 template
653         parameters are:
654         1. The type of the subclass of CachedHTMLCollection, so we can call
655            elementMatches() directly on the subclass, without needed any
656            virtual function call or switch statement. This is the same approach
657            as in CachedLiveNodeList.
658         2. The type of tree traversal used (Descendants, ChildrenOnly,
659            CustomForwardOnly). Unlike LiveNodeList, HTMLCollection needs to
660            support these 3 types of tree traversal. These were causing extra
661            branching for every item() call. We are now able to choose the right
662            type of traversal for the CachedHTMLCollection at compile time.
663
664         * WebCore.xcodeproj/project.pbxproj:
665         Add new files to the Project.
666
667         * dom/ContainerNode.cpp:
668         (WebCore::ContainerNode::children):
669         (WebCore::ContainerNode::cachedHTMLCollection): Deleted.
670         * dom/ContainerNode.h:
671         Drop ContainerNode::ensureCachedHTMLCollection() and use
672         NodeListsNodeData::addCachedCollection() directly at call sites
673         instead. We need access to the CollectionType at build-time so
674         we can resolve the CollectionTraversalType parameter for the
675         GenericCachedHTMLCollection using CollectionTypeTraits.
676
677         * dom/Document.cpp:
678         * dom/Document.h:
679         Update ensureCachedCollection() so the CollectionType is now a template
680         parameter instead of a method argument. We need to know the
681         CollectionType at build time to construct the GenericCachedHTMLCollection.
682
683         * dom/ElementChildIterator.h:
684         (WebCore::ElementChildIterator<ElementType>::operator):
685         (WebCore::ElementChildConstIterator<ElementType>::operator):
686         Add support for decrementing an ElementChildIterator, for consistency
687         with ElementDescendantIterator. We need this to support backward
688         traversal in CachedHTMLCollections that use the 'ChildrenOnly' type
689         of traversal.
690
691         * dom/LiveNodeList.h:
692         (WebCore::CachedLiveNodeList<NodeListType>::collectionBegin):
693         (WebCore::CachedLiveNodeList<NodeListType>::collectionLast):
694         (WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseForward):
695         (WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseBackward):
696         Move traversal implementation to CollectionTraversal.h, so it can be
697         shared with achedHTMLCollection.h.
698
699         * html/CachedHTMLCollection.h: Added.
700         (WebCore::traversalType>::CachedHTMLCollection):
701         (WebCore::traversalType>::~CachedHTMLCollection):
702         (WebCore::traversalType>::CachedHTMLCollection::memoryCost):
703         (WebCore::traversalType>::collectionCanTraverseBackward):
704         (WebCore::traversalType>::collectionTraverseForward):
705         (WebCore::traversalType>::collectionTraverseBackward):
706         (WebCore::traversalType>::willValidateIndexCache):
707         (WebCore::traversalType>::length):
708         (WebCore::traversalType>::item):
709         (WebCore::traversalType>::invalidateCache):
710         (WebCore::traversalType>::elementMatches):
711         (WebCore::nameShouldBeVisibleInDocumentAll):
712         (WebCore::traversalType>::namedItem):
713
714         * html/CollectionTraversal.h: Added.
715         Add new template class that provide the collection traversal code
716         needed by CollectionIndexCache. It has template specializations for
717         all 3 types of traversal: Descendants, ChildrenOnly, and
718         CustomForwardOnly.
719
720         * html/CollectionType.h:
721         Add CollectionTypeTraits traits so we can resolve the
722         CollectionTraversalType used by a specific CollectionType at
723         compile-time. This is needed for the second template parameter of
724         CachedHTMLCollection.
725
726         * html/GenericCachedHTMLCollection.cpp: Added.
727         (WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches):
728         * html/GenericCachedHTMLCollection.h: Added.
729         Add CachedHTMLCollection subclass is the generic one used for all
730         CollectionTypes that do not have their own subclass (e.g. NodeChildren).
731         This has an elementMatches() method with a switch() statement handling
732         all these CollectionTypes. Those are not normally not performance
733         sensitive.
734
735         * html/HTMLAllCollection.cpp:
736         (WebCore::HTMLAllCollection::HTMLAllCollection):
737         * html/HTMLAllCollection.h:
738         Subclass CachedHTMLCollection instead of HTMLCollection. Also provide
739         an elementMatches() method that simply returns true as we want to
740         match all elements.
741
742         * html/HTMLCollection.cpp:
743         (WebCore::HTMLCollection::HTMLCollection):
744         Move CollectionIndexCache member to the subclass and drop the 2 other
745         members as they are replaced with the CollectionTraversalType template
746         parameter of CachedHTMLCollection.
747
748         (WebCore::HTMLCollection::~HTMLCollection):
749         Move Document::unregisterCollection() call to ~CachedHTMLCollection()
750         as we needed to check if the CollectionIndexCache was valid first.
751
752         (WebCore::HTMLCollection::updateNamedElementCache):
753         Move part of the implementation to the CachedHTMLCollection subclass
754         as it needs to know about the type of traversal and it needs to be
755         able to call elementMatches().
756
757         * html/HTMLCollection.h:
758         (WebCore::HTMLCollection::rootNode):
759         Inline for performance reasons and consistency with CachedLiveNodeList.
760
761         (WebCore::HTMLCollection::memoryCost):
762         Make virtual and move part of the implementation to the
763         CachedHTMLCollection subclass to compute the cost of the
764         CollectionIndexCache.
765
766         (WebCore::HTMLCollection::invalidateCache):
767         Move part of the implementation to the subclass to invalidate the
768         CollectionIndexCache.
769
770         * html/HTMLFieldSetElement.cpp:
771         (WebCore::HTMLFieldSetElement::elements):
772
773         * html/HTMLFormControlsCollection.cpp:
774         * html/HTMLFormControlsCollection.h:
775         Subclass CachedHTMLCollection instead of HTMLCollection.
776         customElementAfter() no longer needs to be virtual as it
777         is called directly by CachedHTMLCollection on the subclass.
778
779         * html/HTMLFormElement.cpp:
780         (WebCore::HTMLFormElement::elements):
781         * html/HTMLMapElement.cpp:
782         (WebCore::HTMLMapElement::areas):
783         Call NodeListsNodeData::addCachedCollection() directly.
784
785         * html/HTMLNameCollection.cpp:
786         * html/HTMLNameCollection.h:
787         Subclass CachedHTMLCollection instead of HTMLCollection.
788
789         * html/HTMLOptionsCollection.cpp:
790         * html/HTMLOptionsCollection.h:
791         Subclass CachedHTMLCollection instead of HTMLCollection.
792
793         * html/HTMLSelectElement.cpp:
794         (WebCore::HTMLSelectElement::selectedOptions):
795         (WebCore::HTMLSelectElement::options):
796         * html/HTMLTableElement.cpp:
797         (WebCore::HTMLTableElement::rows):
798         (WebCore::HTMLTableElement::tBodies):
799         * html/HTMLTableRowElement.cpp:
800         (WebCore::HTMLTableRowElement::cells):
801         Call NodeListsNodeData::addCachedCollection() directly.
802
803         * html/HTMLTableRowsCollection.cpp:
804         * html/HTMLTableRowsCollection.h:
805         Subclass CachedHTMLCollection instead of HTMLCollection.
806         customElementAfter() no longer needs to be virtual as it
807         is called directly by CachedHTMLCollection on the subclass.
808
809         * html/HTMLTableSectionElement.cpp:
810         (WebCore::HTMLTableSectionElement::rows):
811         Call NodeListsNodeData::addCachedCollection() directly.
812
813 2015-08-14  Matthew Daiter  <mdaiter@apple.com>
814
815         Implementing enumerateDevices
816         https://bugs.webkit.org/show_bug.cgi?id=146426
817         <rdar://problem/21599847>
818
819         Reviewed by Eric Carlson.
820
821         * CMakeLists.txt:
822         * Modules/mediastream/MediaDeviceInfo.idl:
823         * Modules/mediastream/UserMediaRequest.cpp:
824         (WebCore::UserMediaRequest::enumerateDevices):
825         * WebCore.xcodeproj/project.pbxproj:
826         * platform/mediastream/MediaDevicesPrivate.cpp:
827         (WebCore::MediaDevicesPrivate::create):
828         (WebCore::MediaDevicesPrivate::MediaDevicesPrivate):
829         (WebCore::MediaDevicesPrivate::didCompleteRequest):
830         (WebCore::MediaDevicesPrivate::availableMediaDevices):
831         * platform/mediastream/MediaDevicesPrivate.h:
832         (WebCore::MediaDevicesPrivate::~MediaDevicesPrivate):
833         (WebCore::MediaDevicesPrivate::capturedDevices):
834
835 2015-08-13  Andy Estes  <aestes@apple.com>
836
837         [Cocoa] Downloads do not start if policy decision is made asynchronously
838         https://bugs.webkit.org/show_bug.cgi?id=147985
839
840         Reviewed by Brady Eidson.
841
842         It's only possible to convert a NSURLConnection to a download while the connection delegate's
843         -connection:didReceiveResponse: is being called. However, WebKit clients can decide content policy
844         asynchronously. If a client chooses to download a response asynchronously, we can no longer convert the
845         connection to a download, so we should start a new download instead.
846
847         New API test: _WKDownload.AsynchronousDownloadPolicy
848
849         * dom/Document.cpp: Updated to include SubresourceLoader.h.
850         * loader/DocumentLoader.cpp:
851         (WebCore::DocumentLoader::mainResourceLoader): Updated to return a SubresourceLoader.
852         (WebCore::DocumentLoader::continueAfterContentPolicy): Cast mainResourceLoader() to a ResourceLoader since
853         didFail() is private in SubresourceLoader.
854         * loader/DocumentLoader.h:
855         * loader/SubresourceLoader.cpp:
856         (WebCore::SubresourceLoader::SubresourceLoader): Initialized m_callingDidReceiveResponse to false.
857         (WebCore::SubresourceLoader::didReceiveResponse): Used TemporaryChange<> to set m_callingDidReceiveResponse to true.
858         * loader/SubresourceLoader.h:
859         * loader/appcache/ApplicationCacheHost.cpp: Updated to include SubresourceLoader.h.
860         * loader/mac/DocumentLoaderMac.cpp: Ditto.
861
862 2015-08-14  Zalan Bujtas  <zalan@apple.com>
863
864         RenderBlock::simplifiedLayout should pop LayoutStateMaintainer when early returns.
865         https://bugs.webkit.org/show_bug.cgi?id=148031
866
867         Reviewed by Simon Fraser.
868
869         LayoutStateMaintainer push/pop calls need to be balanced to ensure layout consistency.
870
871         Unable to make a test case for this.
872
873         * rendering/RenderBlock.cpp:
874         (WebCore::RenderBlock::simplifiedLayout):
875         * rendering/RenderView.h:
876         (WebCore::LayoutStateMaintainer::~LayoutStateMaintainer): ASSERT the state properly.
877         (WebCore::LayoutStateMaintainer::push):
878         (WebCore::LayoutStateMaintainer::pop):
879         (WebCore::LayoutStateMaintainer::didPush):
880         (WebCore::LayoutStateMaintainer::LayoutStateMaintainer): Deleted.
881
882 2015-08-14  Simon Fraser  <simon.fraser@apple.com>
883
884         Remove a few includes from RenderObject.h
885         https://bugs.webkit.org/show_bug.cgi?id=148007
886
887         Reviewed by Tim Horton.
888
889         Shrink down the RenderObject.h includes a little.
890
891         * rendering/RenderElement.h:
892         * rendering/RenderObject.h:
893         * rendering/RenderText.h:
894
895 2015-08-14  Tim Horton  <timothy_horton@apple.com>
896
897         Fix the Mavericks build.
898
899         * platform/spi/mac/LookupSPI.h:
900
901 2015-08-14  Tim Horton  <timothy_horton@apple.com>
902
903         Fix the build.
904
905         * platform/spi/mac/LookupSPI.h:
906
907 2015-08-14  Philippe Normand  <pnormand@igalia.com>
908
909         [GStreamer] Handle missing plugins better at runtime
910         https://bugs.webkit.org/show_bug.cgi?id=146999
911
912         Reviewed by Carlos Garcia Campos.
913
914         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
915         (WebCore::MediaPlayerPrivateGStreamer::createAudioSink): Warn the
916         user if autoaudiosink wasn't found at runtime. In that case
917         playbin will try to be smart by itself, hopefully. Also moved a
918         couple GST_WARNING calls to WARN_MEDIA_MESSAGE.
919         (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): Use
920         WARN_MEDIA_MESSAGE here as well.
921
922 2015-08-13  Antti Koivisto  <antti@apple.com>
923
924         Cover memory cache subresource validation policy with cache tests
925         https://bugs.webkit.org/show_bug.cgi?id=147830
926
927         Reviewed by Alexey Proskuryakov.
928
929         Existing tests under http/tests/cache/disk-cache currently cover disk and XHR memory cache validation behaviors.
930         They can be extended to cover the regular subresource policy too.
931
932         Add window.internals API to disable CachedRawResource validation behavior. This makes XHR validate like
933         other resources and allows existing tests (that use XHR) to cover normal subresource policy .
934
935         Test results reveal some bugs. For example subresources in memory cache don't respect Vary header.
936
937         It is generally bad that we have a separate XHR-and-main-resource validation policy in memory cache. Network cache
938         doesn't have one.
939
940         * loader/FrameLoader.cpp:
941         (WebCore::FrameLoader::clearTestingOverrides):
942         (WebCore::FrameLoader::applyShouldOpenExternalURLsPolicyToNewDocumentLoader):
943         * loader/FrameLoader.h:
944         (WebCore::FrameLoader::setOverrideCachePolicyForTesting):
945         (WebCore::FrameLoader::setOverrideResourceLoadPriorityForTesting):
946         (WebCore::FrameLoader::setStrictRawResourceValidationPolicyDisabledForTesting):
947         (WebCore::FrameLoader::isStrictRawResourceValidationPolicyDisabledForTesting):
948         (WebCore::FrameLoader::provisionalLoadErrorBeingHandledURL):
949         * loader/cache/CachedRawResource.h:
950         * loader/cache/CachedResource.h:
951         (WebCore::CachedResource::setLoadFinishTime):
952         (WebCore::CachedResource::loadFinishTime):
953         (WebCore::CachedResource::canReuse): Deleted.
954
955             Made canReuse non-virtual and removed it from the base. Only CachedRawResource has implementation.
956
957         * loader/cache/CachedResourceLoader.cpp:
958         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
959         * testing/Internals.cpp:
960         (WebCore::Internals::setOverrideResourceLoadPriority):
961         (WebCore::Internals::setStrictRawResourceValidationPolicyDisabled):
962         (WebCore::Internals::clearMemoryCache):
963         * testing/Internals.h:
964
965 2015-08-13  Tim Horton  <timothy_horton@apple.com>
966
967         Performing a Lookup on wrapped text puts the popover arrow in the wrong place (off to the right)
968         https://bugs.webkit.org/show_bug.cgi?id=148012
969         <rdar://problem/19238094>
970
971         Reviewed by Simon Fraser.
972
973         * platform/spi/mac/LookupSPI.h:
974         Add some SPI.
975
976 2015-08-13  Simon Fraser  <simon.fraser@apple.com>
977
978         Another Windows build fix.
979
980         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
981
982 2015-08-13  Simon Fraser  <simon.fraser@apple.com>
983
984         Try to fix Windows build after r188430.
985
986         * platform/graphics/ca/win/PlatformCALayerWin.h:
987
988 2015-08-13  Simon Fraser  <simon.fraser@apple.com>
989
990         Generated files don't all need to include ScriptExecutionContext.h
991         https://bugs.webkit.org/show_bug.cgi?id=148011
992
993         Reviewed by Alexey Proskuryakov.
994         
995         Generated files which are not callbacks or constructors do not need to include
996         ScriptExecutionContext.h.
997
998         * bindings/scripts/CodeGeneratorJS.pm:
999         (GenerateImplementation): Deleted.
1000         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
1001         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
1002         * bindings/scripts/test/JS/JSTestException.cpp:
1003         * bindings/scripts/test/JS/JSTestInterface.cpp:
1004         * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
1005         * bindings/scripts/test/JS/JSTestObj.cpp:
1006         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1007         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
1008         * bindings/scripts/test/JS/JSattribute.cpp:
1009
1010 2015-08-13  Commit Queue  <commit-queue@webkit.org>
1011
1012         Unreviewed, rolling out r188428.
1013         https://bugs.webkit.org/show_bug.cgi?id=148015
1014
1015         broke cmake build (Requested by alexchristensen on #webkit).
1016
1017         Reverted changeset:
1018
1019         "Move some commands from ./CMakeLists.txt to Source/cmake"
1020         https://bugs.webkit.org/show_bug.cgi?id=148003
1021         http://trac.webkit.org/changeset/188428
1022
1023 2015-08-13  Zalan Bujtas  <zalan@apple.com>
1024
1025         Remove pixelSnapped* functions from RenderBoxModelObject/RenderBox.
1026         https://bugs.webkit.org/show_bug.cgi?id=147982
1027
1028         Reviewed by Simon Fraser.
1029
1030         RenderBoxModelObject/RenderBox::pixelSnapped* functions are misleading.
1031         They all round to integral values, while the rest of the pixel snapping
1032         functions round to device pixels.
1033         This patch moves integral rounding to the callers. (Note that they all will eventually
1034         go away as we convert additional modules to subpixel rendering (tables, scrolling etc).)
1035
1036         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
1037         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
1038         * dom/Element.cpp:
1039         (WebCore::Element::offsetLeft):
1040         (WebCore::Element::offsetTop):
1041         (WebCore::Element::offsetWidth):
1042         (WebCore::Element::offsetHeight):
1043         (WebCore::Element::clientWidth):
1044         (WebCore::Element::clientHeight):
1045         * dom/Position.cpp:
1046         (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
1047         * html/HTMLImageElement.cpp:
1048         (WebCore::HTMLImageElement::width):
1049         (WebCore::HTMLImageElement::height):
1050         * html/shadow/SpinButtonElement.cpp:
1051         (WebCore::SpinButtonElement::defaultEventHandler):
1052         * inspector/InspectorOverlay.cpp:
1053         (WebCore::buildObjectForElementData):
1054         * page/FrameView.cpp:
1055         (WebCore::FrameView::applyPaginationToViewport):
1056         (WebCore::FrameView::calculateScrollbarModesForLayout):
1057         (WebCore::FrameView::calculateExtendedBackgroundMode):
1058         (WebCore::FrameView::qualifiesAsVisuallyNonEmpty):
1059         * page/PrintContext.cpp:
1060         (WebCore::PrintContext::pageNumberForElement):
1061         * platform/graphics/LayoutRect.h:
1062         (WebCore::LayoutRect::pixelSnappedSize): Deleted.
1063         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1064         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
1065         * rendering/RenderBox.cpp:
1066         (WebCore::RenderBox::pixelSnappedClientWidth): Deleted.
1067         (WebCore::RenderBox::pixelSnappedClientHeight): Deleted.
1068         (WebCore::RenderBox::pixelSnappedOffsetWidth): Deleted.
1069         (WebCore::RenderBox::pixelSnappedOffsetHeight): Deleted.
1070         * rendering/RenderBox.h:
1071         (WebCore::RenderBox::pixelSnappedLogicalHeight): Deleted.
1072         (WebCore::RenderBox::pixelSnappedLogicalWidth): Deleted.
1073         (WebCore::RenderBox::pixelSnappedSize): Deleted.
1074         (WebCore::RenderBox::pixelSnappedBorderBoxRect): Deleted.
1075         * rendering/RenderBoxModelObject.cpp:
1076         (WebCore::RenderBoxModelObject::pixelSnappedOffsetWidth): Deleted.
1077         (WebCore::RenderBoxModelObject::pixelSnappedOffsetHeight): Deleted.
1078         * rendering/RenderBoxModelObject.h:
1079         (WebCore::RenderBoxModelObject::pixelSnappedOffsetLeft): Deleted.
1080         (WebCore::RenderBoxModelObject::pixelSnappedOffsetTop): Deleted.
1081         * rendering/RenderFileUploadControl.cpp:
1082         (WebCore::nodeWidth):
1083         (WebCore::nodeHeight):
1084         (WebCore::RenderFileUploadControl::maxFilenameWidth):
1085         * rendering/RenderLayer.cpp:
1086         (WebCore::RenderLayer::updateLayerPosition):
1087         (WebCore::RenderLayer::perspectiveTransform):
1088         (WebCore::RenderLayer::clampScrollOffset):
1089         (WebCore::RenderLayer::visibleSize):
1090         (WebCore::RenderLayer::positionOverflowControls):
1091         (WebCore::RenderLayer::hasHorizontalOverflow):
1092         (WebCore::RenderLayer::hasVerticalOverflow):
1093         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
1094         (WebCore::RenderLayer::overflowControlsIntersectRect):
1095         (WebCore::RenderLayer::isPointInResizeControl):
1096         * rendering/RenderLayerBacking.cpp:
1097         (WebCore::RenderLayerBacking::updateGeometry):
1098         (WebCore::RenderLayerBacking::positionOverflowControlsLayers):
1099         (WebCore::RenderLayerBacking::startAnimation):
1100         (WebCore::RenderLayerBacking::startTransition):
1101         * rendering/RenderLayerBacking.h:
1102         * rendering/RenderListBox.cpp:
1103         (WebCore::RenderListBox::scrollWidth):
1104         (WebCore::RenderListBox::scrollHeight):
1105         * rendering/RenderMediaControlElements.cpp:
1106         (WebCore::RenderMediaVolumeSliderContainer::layout):
1107         * rendering/RenderScrollbar.cpp:
1108         (WebCore::RenderScrollbar::buttonRect):
1109         * rendering/RenderTable.cpp:
1110         (WebCore::RenderTable::addOverflowFromChildren):
1111         * rendering/RenderTableCell.cpp:
1112         (WebCore::RenderTableCell::computeIntrinsicPadding):
1113         (WebCore::RenderTableCell::paintCollapsedBorders):
1114         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
1115         (WebCore::RenderTableCell::paintBoxDecorations):
1116         (WebCore::RenderTableCell::paintMask):
1117         * rendering/RenderTableCell.h:
1118         (WebCore::RenderTableCell::logicalHeightForRowSizing):
1119         * rendering/RenderTheme.cpp:
1120         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
1121         * rendering/RenderTheme.h:
1122         * rendering/RenderThemeMac.mm:
1123         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
1124         (WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart):
1125         (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
1126         * rendering/RenderTreeAsText.cpp:
1127         (WebCore::write):
1128         * rendering/mathml/RenderMathMLFraction.cpp:
1129         (WebCore::RenderMathMLFraction::paint):
1130         * rendering/mathml/RenderMathMLRoot.cpp:
1131         (WebCore::RenderMathMLRoot::paint):
1132         * rendering/svg/RenderSVGRoot.cpp:
1133         (WebCore::RenderSVGRoot::paintReplaced):
1134         (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
1135
1136 2015-08-13  Simon Fraser  <simon.fraser@apple.com>
1137
1138         Minor GraphicsLayer.h/PlatformCALayer.h cleanup
1139         https://bugs.webkit.org/show_bug.cgi?id=148009
1140
1141         Reviewed by Tim Horton.
1142
1143         Remove some #includes.
1144
1145         * platform/graphics/GraphicsLayer.h:
1146         * platform/graphics/ca/PlatformCALayer.h:
1147
1148 2015-08-13  Alex Christensen  <achristensen@webkit.org>
1149
1150         Move some commands from ./CMakeLists.txt to Source/cmake
1151         https://bugs.webkit.org/show_bug.cgi?id=148003
1152
1153         Reviewed by Brent Fulgham.
1154
1155         * CMakeLists.txt:
1156         Added commands needed to build WebCore by itself.
1157
1158 2015-08-13  Tim Horton  <timothy_horton@apple.com>
1159
1160         Refactor and improve TextIndicator to prepare for tests
1161         https://bugs.webkit.org/show_bug.cgi?id=147622
1162
1163         Reviewed by Simon Fraser.
1164
1165         No new tests because they're coming soon!
1166
1167         * page/TextIndicator.cpp:
1168         (WebCore::TextIndicator::TextIndicator):
1169         (WebCore::TextIndicator::~TextIndicator):
1170         (WebCore::TextIndicator::createWithRange):
1171         (WebCore::TextIndicator::createWithSelectionInFrame):
1172         (WebCore::hasNonInlineOrReplacedElements):
1173         (WebCore::snapshotOptionsForTextIndicatorOptions):
1174         (WebCore::takeSnapshot):
1175         (WebCore::takeSnapshots):
1176         (WebCore::initializeIndicator):
1177         (WebCore::snapshotSelectionWithHighlight): Deleted.
1178         (WebCore::TextIndicator::wantsBounce): Deleted.
1179         (WebCore::TextIndicator::wantsContentCrossfade): Deleted.
1180         (WebCore::TextIndicator::wantsFadeIn): Deleted.
1181         (WebCore::TextIndicator::wantsManualAnimation): Deleted.
1182         * page/TextIndicator.h:
1183         (WebCore::TextIndicator::indicatesCurrentSelection):
1184         (WebCore::TextIndicator::setWantsMargin): Deleted.
1185         (WebCore::TextIndicator::wantsMargin): Deleted.
1186         Rename wantsMargin to indicatesCurrentSelection. It's really about whether
1187         the TextIndicator indicates the existing selection, and the Mac presentation
1188         just uses that to determine whether or not to show a margin, but that
1189         margin has nothing to do with the cross-platform TextIndicator code.
1190
1191         Move most of the snapshotting and rect gathering code to initializeTextIndicator, and call it
1192         from both ::createWithRange and ::createWithSelectionInFrame, instead of calling
1193         ::createWithSelectionInFrame from ::createWithRange after setting the selection.
1194         This way, the range passed into ::createWithRange is preserved for use in initializeTextIndicator,
1195         instead of round-tripping through selection code, which can change it (e.g. in the case
1196         of user-select: none; elements).
1197
1198         Add TextIndicatorOptions, which allow callers to adjust the behavior of TextIndicator
1199         instead of having #if PLATFORM(X) strewn throughout TextIndicator.
1200
1201         Add an option which was previously implemented at the iOS-specific callsites,
1202         TextIndicatorOptionUseBoundingRectAndPaintAllContentForComplexRanges,
1203         which falls back to indicating a bounding rect and not doing a range-only paint
1204         if the given range includes any non-inline elements or any replaced elements.
1205         This makes it so that we do something reasonable-looking for very complex ranges,
1206         like article links on the New York Times, which include multiple disparate paragraphs
1207         of text and one or more images, and also so that indicating a range that only
1208         includes an image does something fairly reasonable.
1209
1210         Move presentation-specific functions (wantsBounce, wantsContentCrossfade, etc.)
1211         to TextIndicatorWindow. Ideally TextIndicatorPresentationTransition would also move,
1212         but that is a fairly large and complicated change that should be made separately.
1213
1214         * page/mac/TextIndicatorWindow.h:
1215         * page/mac/TextIndicatorWindow.mm:
1216         (indicatorWantsBounce):
1217         (indicatorWantsContentCrossfade):
1218         (indicatorWantsFadeIn):
1219         (indicatorWantsManualAnimation):
1220         (-[WebTextIndicatorView initWithFrame:textIndicator:margin:offset:]):
1221         (-[WebTextIndicatorView _animationDuration]):
1222         (-[WebTextIndicatorView present]):
1223         (WebCore::TextIndicatorWindow::~TextIndicatorWindow):
1224         (WebCore::TextIndicatorWindow::clearTextIndicator):
1225         (WebCore::TextIndicatorWindow::setTextIndicator):
1226         Rename TextIndicatorDismissalAnimation to TextIndicatorWindowDismissalAnimation,
1227         and TextIndicatorLifetime to TextIndicatorWindowLifetime, because
1228         they are TextIndicatorWindow specific.
1229
1230         * accessibility/AccessibilityRenderObject.cpp:
1231         (WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange):
1232         * bindings/objc/DOM.mm:
1233         (-[DOMNode getPreviewSnapshotImage:andRects:]):
1234         (-[DOMRange boundingBox]):
1235         (-[DOMRange textRects]):
1236         * dom/DocumentMarkerController.cpp:
1237         (WebCore::DocumentMarkerController::addTextMatchMarker):
1238         * dom/Node.cpp:
1239         (WebCore::Node::textRects):
1240         * dom/Range.cpp:
1241         (WebCore::Range::intersectsNode):
1242         (WebCore::Range::absoluteBoundingBox):
1243         (WebCore::Range::absoluteTextRects):
1244         (WebCore::Range::absoluteTextQuads):
1245         (WebCore::Range::getClientRects):
1246         (WebCore::Range::getBoundingClientRect):
1247         (WebCore::Range::getBorderAndTextQuads):
1248         (WebCore::Range::boundingRectInternal):
1249         (WebCore::Range::absoluteBoundingRect):
1250         (WebCore::Range::boundingBox): Deleted.
1251         (WebCore::Range::textRects): Deleted.
1252         (WebCore::Range::textQuads): Deleted.
1253         (WebCore::Range::boundingRect): Deleted.
1254         * dom/Range.h:
1255         * editing/AlternativeTextController.cpp:
1256         (WebCore::AlternativeTextController::rootViewRectForRange):
1257         * editing/Editor.cpp:
1258         (WebCore::Editor::findStringAndScrollToVisible):
1259         * editing/FrameSelection.cpp:
1260         (WebCore::FrameSelection::getClippedVisibleTextRectangles):
1261         * editing/mac/DataDetection.mm:
1262         (WebCore::DataDetection::detectItemAroundHitTestResult):
1263         * rendering/RenderObject.cpp:
1264         (WebCore::RenderObject::absoluteBoundingBoxRectForRange):
1265         Rename various Range methods to make it clear whether they return absolute or client rects.
1266
1267 2015-08-13  Jer Noble  <jer.noble@apple.com>
1268
1269         Don't short circuit seeking
1270         https://bugs.webkit.org/show_bug.cgi?id=147892
1271
1272         Reviewed by Eric Carlson.
1273
1274         When two seekWithTolerance() requests come in before the first is acted upon in seekTask(),
1275         the second will result in a "no seek required" conditional, because the new "currentTime" is
1276         assumed to be the destination time of the first seek.
1277
1278         When cancelling a pending seek, first replace the "now" value with the "now" value from the
1279         replaced seek, thus preserving the original currentTime across all replacement seeks.
1280
1281         Drive-by fix: some added logging causes occasional crashes, due to the underlying object being
1282         accessed having been deleted.
1283
1284         * html/HTMLMediaElement.cpp:
1285         (WebCore::HTMLMediaElement::seekWithTolerance):
1286         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1287         (WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime):
1288
1289 2015-08-13  Brent Fulgham  <bfulgham@apple.com>
1290
1291         Prospective Mac/iOS build fix after the last Windows build fix.
1292
1293         * page/CaptionUserPreferences.cpp:
1294         * page/UserContentController.cpp:
1295
1296 2015-08-13  Brent Fulgham  <bfulgham@apple.com>
1297
1298         [Win] More build fixes.
1299
1300         * dom/make_event_factory.pl:
1301         (generateImplementation):
1302         * page/CaptionUserPreferences.cpp:
1303         * page/PageGroup.cpp:
1304         * page/UserContentController.cpp:
1305
1306 2015-08-13  Wenson Hsieh  <wenson_hsieh@apple.com>
1307
1308         A focused node should not be assisted when handling touch events synchronously
1309         https://bugs.webkit.org/show_bug.cgi?id=147836
1310         <rdar://problem/22204108>
1311
1312         Reviewed by Enrica Casucci.
1313
1314         Makes interaction with touch handlers no longer assist the currently focused element in the
1315         general case. Added plumbing to reassist a currently focused node when dispatching touch events,
1316         so that an input that programmatically focuses itself and prevents default on a touch event will
1317         be properly assisted when it has been programmatically focused (either through Javascript or the
1318         autofocus attribute) prior to receiving the touch event. This patch also removes the now
1319         unnecessary special-casing of the Gmail settings app that currently makes the keyboard deploy
1320         upon autofocus.
1321
1322         * dom/Element.cpp:
1323         (WebCore::Element::focus): Notifies the chrome client that the element has refocused before
1324             returning early.
1325         * page/ChromeClient.h: Refocusing an element does nothing by default.
1326         * platform/RuntimeApplicationChecksIOS.h: Removed special casing for Gmail Add Account.
1327         * platform/RuntimeApplicationChecksIOS.mm: See above.
1328         (WebCore::applicationIsGmailAddAccountOnIOS): See above.
1329
1330 2015-08-13  Brent Fulgham  <bfulgham@apple.com>
1331
1332         [Win] Unreviewed build fix.
1333
1334         * accessibility/AXObjectCache.cpp: Add missing 'DataLog.h' include.
1335
1336 2015-08-13 Wenson Hsieh  <wenson_hsieh@apple.com>
1337
1338         Selects should scale when rendering while zoomed
1339         https://bugs.webkit.org/show_bug.cgi?id=147868
1340
1341         Reviewed by Daniel Bates.
1342
1343         When rendering zoomed <select> elements, draw to an image buffer instead of drawing directly
1344         into the context. This allows us to scale the image buffer up before rendering.
1345
1346         * rendering/RenderThemeMac.mm:
1347         (WebCore::RenderThemeMac::paintMenuList): Use ThemeMac::drawCellOrFocusRingWithViewIntoContext
1348             to render search fields, utilizing an offscreen image buffer only when necessary.
1349
1350 2015-08-13  Alex Christensen  <achristensen@webkit.org>
1351
1352         [Win] Unreviewed build fix after r188388.
1353
1354         * bindings/js/JSWebGLRenderingContextCustom.cpp:
1355         * dom/EventFactory.h:
1356         * rendering/RenderThemeWin.cpp:
1357         Strange things happen when you change including headers.  This fixed my local build.
1358
1359 2015-08-13  Geoffrey Garen  <ggaren@apple.com>
1360
1361         Standardize on the phrase "delete code"
1362         https://bugs.webkit.org/show_bug.cgi?id=147984
1363
1364         Reviewed by Mark Lam.
1365
1366         Use "delete" when we talk about throwing away code, as opposed to
1367         "invalidate" or "discard".
1368
1369         * bindings/js/GCController.cpp:
1370         (WebCore::GCController::setJavaScriptGarbageCollectorTimerEnabled):
1371         (WebCore::GCController::deleteAllCode):
1372         (WebCore::GCController::discardAllCompiledCode): Deleted.
1373         * bindings/js/GCController.h:
1374         * platform/MemoryPressureHandler.cpp:
1375         (WebCore::MemoryPressureHandler::releaseCriticalMemory):
1376
1377 2015-08-13  Eric Carlson  <eric.carlson@apple.com>
1378
1379         Don't short circuit seeking
1380         https://bugs.webkit.org/show_bug.cgi?id=147892
1381
1382         Reviewed by Jer Noble.
1383
1384         Test: media/video-seek-to-current-time.html
1385
1386         * html/HTMLMediaElement.cpp:
1387         (WebCore::HTMLMediaElement::prepareForLoad): Call clearSeeking.
1388         (WebCore::HTMLMediaElement::fastSeek): Add logging.
1389         (WebCore::HTMLMediaElement::seekWithTolerance): Add logging. Set m_pendingSeekType.
1390         (WebCore::HTMLMediaElement::seekTask):  Call clearSeeking. Don't short circuit a
1391           if the current or pending seek is a fast seek. Set m_seeking to true immediately
1392           before calling media engine as it may have been cleared before the seek task
1393           queue ran.
1394         (WebCore::HTMLMediaElement::clearSeeking): New.
1395         * html/HTMLMediaElement.h:
1396         * html/HTMLMediaElementEnums.h:
1397
1398         * platform/GenericTaskQueue.h:
1399         (WebCore::GenericTaskQueue::enqueueTask): Clear m_pendingTasks.
1400
1401         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
1402         (WebCore::MediaPlayerPrivateAVFoundation::seekWithTolerance): Don't return early
1403           when asked to seek to the current time.
1404         (WebCore::MediaPlayerPrivateAVFoundation::invalidateCachedDuration): Remove some 
1405           extremely noisy logging.
1406
1407         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1408         (WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime): Add logging.
1409
1410 2015-08-13  Simon Fraser  <simon.fraser@apple.com>
1411
1412         FilterOperation.h should not include FilterEffect.h
1413         https://bugs.webkit.org/show_bug.cgi?id=147970
1414
1415         Reviewed by Daniel Bates.
1416
1417         FilterEffect.h pulls in lots of JSC goop via runtime/Uint8ClampedArray.h,
1418         so move its include to FilterOperation.cpp.
1419         
1420         Causes include bloat because FilterOperation.h is pulled in via RenderStyle.h.
1421
1422         * platform/graphics/filters/FilterOperation.cpp:
1423         (WebCore::ReferenceFilterOperation::setFilterEffect):
1424         * platform/graphics/filters/FilterOperation.h:
1425         (WebCore::ReferenceFilterOperation::setFilterEffect): Deleted.
1426
1427 2015-08-13  Simon Fraser  <simon.fraser@apple.com>
1428
1429         ScriptExecutionContext.h pulls in all the JSC headers
1430         https://bugs.webkit.org/show_bug.cgi?id=147969
1431
1432         Reviewed by Alexey Proskuryakov.
1433
1434         ScriptExecutionContext.h included ScheduledAction.h, which pulled in all the
1435         JSC headers via JSDOMBinding.h. There was no need for this #include, so remove
1436         it and fix the fallout.
1437
1438         * Modules/webdatabase/DatabaseTracker.cpp:
1439         * Modules/webdatabase/SQLTransaction.h:
1440         * bindings/js/JSWebGLRenderingContextCustom.cpp:
1441         * contentextensions/ContentExtensionStyleSheet.cpp:
1442         * dom/ScriptExecutionContext.h:
1443         * html/FTPDirectoryDocument.cpp:
1444         * html/canvas/WebGLRenderingContext.cpp:
1445         * html/parser/HTMLTreeBuilder.h:
1446
1447 2015-08-12  Anders Carlsson  <andersca@apple.com>
1448
1449         Use WTF::Optional in WindowFeatures
1450         https://bugs.webkit.org/show_bug.cgi?id=147956
1451
1452         Reviewed by Sam Weinig.
1453
1454         * loader/FrameLoader.cpp:
1455         (WebCore::createWindow):
1456         * page/WindowFeatures.cpp:
1457         (WebCore::WindowFeatures::WindowFeatures):
1458         (WebCore::WindowFeatures::setWindowFeature):
1459         (WebCore::WindowFeatures::boolFeature):
1460         (WebCore::WindowFeatures::floatFeature):
1461         (WebCore::WindowFeatures::parseDialogFeatures):
1462         * page/WindowFeatures.h:
1463         (WebCore::WindowFeatures::WindowFeatures):
1464
1465 2015-08-13  Matthew Daiter  <mdaiter@apple.com>
1466
1467         UserMediaRequest should supply IDs of devices selected by user
1468         https://bugs.webkit.org/show_bug.cgi?id=147263
1469         <rdar://problem/21983345>
1470
1471         Reviewed by Jer Noble.
1472
1473         * Modules/mediastream/UserMediaRequest.cpp:
1474         (WebCore::UserMediaRequest::userMediaAccessGranted):
1475         * Modules/mediastream/UserMediaRequest.h:
1476         * platform/mock/UserMediaClientMock.h:
1477
1478 2015-08-12  Carlos Garcia Campos  <cgarcia@igalia.com>
1479
1480         [Cairo] Improve image quality when using newer versions of cairo/pixman
1481         https://bugs.webkit.org/show_bug.cgi?id=147826
1482
1483         Reviewed by Martin Robinson.
1484
1485         Since cairo 1.14 the image filters changed a bit:
1486
1487          - CAIRO_FILTER_GOOD uses a box filter when downscaling if the
1488            scale factor is less than 0.75, otherwise it uses a filter
1489            equivalent to CAIRO_FILTER_BILINEAR.
1490          - CAIRO_FILTER_BEST uses always a Catmull-Rom filter.
1491
1492         We are currently using CAIRO_FILTER_BILINEAR for medium, high and
1493         default interpolation levels. We could use CAIRO_FILTER_GOOD for
1494         medium and default, and CAIRO_FILTER_BEST for high. This will not
1495         have any effect in previous versions of cairo because before 1.14
1496         CAIRO_FILTER_GOOD, CAIRO_FILTER_BILINEAR and CAIRO_FILTER_BEST had
1497         the same implementation in pixman.
1498
1499         * platform/graphics/cairo/PlatformContextCairo.cpp:
1500         (WebCore::PlatformContextCairo::drawSurfaceToContext):
1501
1502 2015-08-12  Myles C. Maxfield  <mmaxfield@apple.com>
1503
1504         [Cocoa] [CJK-configured device] System font has vertical punctuation
1505         https://bugs.webkit.org/show_bug.cgi?id=147964
1506         <rdar://problem/22256660>
1507
1508         Reviewed by Dean Jackson.
1509
1510         GlyphPage::fill() has multiple code paths to accomplish its goal. It uses the shouldUseCoreText() helper
1511         function to determine which one of the paths should be taken. However, not all of the code paths in
1512         GlyphPage::fill() are able of handling all situations. Indeed, the CoreText code paths in GlyphPage::fill()
1513         are only able to handle the situations which shouldUseCoreText() returns true for. This happens in the
1514         following cases:
1515
1516         1. If the font is a composite font
1517         2. If the font is used for text-combine
1518         3. If the font has vertical glyphs
1519
1520         In r187693, I added one more case to this list: If the font is the system font. However, I failed to add
1521         the necessary support to GlyphPage::fill() for this case. Becasue of this, we just happened to fall into
1522         the case of vertical fonts (just by coincidence), which causes us to use
1523         CTFontGetVerticalGlyphsForCharacters() instead of CTFontGetGlyphsForCharacters().
1524
1525         The solution is to adopt the same behavior we were using before r187693. Back then, we were using
1526         CGFontGetGlyphsForUnichars(), which always returned horizontal glyphs. We should simply adopt this same
1527         behavior, except in the Core Text case. Therefore, this patch is just a simple check to see if we are
1528         using the system font when determining which Core Text function to use.
1529
1530         Test: fast/text/system-font-punctuation.html
1531
1532         * platform/graphics/FontDescription.h:
1533         (WebCore::FontDescription::setWidthVariant):
1534         * platform/graphics/FontPlatformData.h:
1535         (WebCore::FontPlatformData::isForTextCombine):
1536         * platform/graphics/mac/GlyphPageMac.cpp:
1537         (WebCore::shouldUseCoreText):
1538         (WebCore::GlyphPage::fill):
1539         * rendering/RenderCombineText.cpp:
1540         (WebCore::RenderCombineText::combineText):
1541
1542 2015-08-12  Jinyoung Hur  <hur.ims@navercorp.com>
1543
1544         [WinCairo] Turn on WOFF font
1545         https://bugs.webkit.org/show_bug.cgi?id=147878
1546
1547         WOFF is already usable in Windows Cairo. Just turn it on.
1548
1549         Reviewed by Myles C. Maxfield.
1550
1551         Test: fast\css\font-face-woff.html
1552
1553         * platform/graphics/win/FontCustomPlatformDataCairo.cpp:
1554         (WebCore::FontCustomPlatformData::supportsFormat):
1555
1556 2015-08-12  Brent Fulgham  <bfulgham@apple.com>
1557
1558         Move RenderBox-specific Scroll Snap code from RenderElement to RenderBox
1559         https://bugs.webkit.org/show_bug.cgi?id=147963
1560
1561         Reviewed by Simon Fraser.
1562
1563         No new tests: No change in functionality.
1564
1565         * rendering/RenderBox.cpp:
1566         (WebCore::RenderBox::styleWillChange): Remove RenderBox-specific code.
1567         (WebCore::RenderBox::willBeRemovedFromTree): Ditto.
1568         * rendering/RenderBox.h:
1569         * rendering/RenderElement.cpp:
1570         (WebCore::RenderElement::styleWillChange): Move code from RenderElement to
1571         handle Scroll Snap Points.
1572         (WebCore::RenderElement::willBeRemovedFromTree): Added new override to handle
1573         scroll-snap point logic.
1574
1575 2015-08-12  Antti Koivisto  <antti@apple.com>
1576
1577         CachedResource leak in validation code
1578         https://bugs.webkit.org/show_bug.cgi?id=147941
1579
1580         Reviewed by Chris Dumez.
1581
1582         While adding test coverage I discovered a way to hit ASSERT(!resource->m_proxyResource) in CachedResource::setResourceToRevalidate.
1583         I think this ends up leaking a resource too.
1584
1585         Test: http/tests/cache/recursive-validation.html
1586
1587         * loader/cache/CachedRawResource.cpp:
1588         (WebCore::CachedRawResource::didAddClient):
1589
1590             Tighten the condition.
1591
1592         * loader/cache/CachedResource.cpp:
1593         (WebCore::CachedResource::setResourceToRevalidate):
1594         (WebCore::CachedResource::clearResourceToRevalidate):
1595
1596             Replace workaround for this bug with an assert.
1597
1598         * loader/cache/CachedResource.h:
1599         (WebCore::CachedResource::validationInProgress):
1600         (WebCore::CachedResource::validationCompleting):
1601         (WebCore::CachedResource::didSendData):
1602         * loader/cache/CachedResourceLoader.cpp:
1603         (WebCore::CachedResourceLoader::revalidateResource):
1604         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
1605
1606             Fix the bug by using (instead of revalidating) resource that we are just finishing revalidating.
1607             This can happen when a succesful revalidation synchronously triggers another load for the same resource.
1608
1609 2015-08-12  Matthew Daiter  <mdaiter@apple.com>
1610
1611         Need to add stubs to enumerateDevices
1612         https://bugs.webkit.org/show_bug.cgi?id=147903
1613
1614         Reviewed by Eric Carlson.
1615
1616         * Modules/mediastream/MediaDevices.cpp:
1617         (WebCore::MediaDevices::enumerateDevices):
1618         * Modules/mediastream/MediaDevices.h:
1619         * Modules/mediastream/UserMediaRequest.cpp:
1620         (WebCore::UserMediaRequest::enumerateDevices):
1621         * Modules/mediastream/UserMediaRequest.h:
1622
1623 2015-08-12  Matt Rajca  <mrajca@apple.com>
1624
1625         Fixed the Release build when MEDIA_SESSION is enabled.
1626
1627         * testing/Internals.cpp:
1628         (WebCore::interruptingCategoryFromString):
1629
1630 2015-08-07  Matt Rajca  <mrajca@apple.com>
1631
1632         Media Session: notify the UI process when media controls are enabled/disabled
1633         https://bugs.webkit.org/show_bug.cgi?id=147802
1634
1635         Reviewed by Eric Carlson.
1636
1637         * Modules/mediasession/MediaRemoteControls.cpp:
1638         (WebCore::MediaRemoteControls::MediaRemoteControls): Keep track of the parent session.
1639         (WebCore::MediaRemoteControls::~MediaRemoteControls): Removed unnecessary line.
1640         (WebCore::MediaRemoteControls::setPreviousTrackEnabled): Tell the session a control was enabled/disabled.
1641         (WebCore::MediaRemoteControls::setNextTrackEnabled): Tell the session a control was enabled/disabled.
1642         * Modules/mediasession/MediaRemoteControls.h:
1643         (WebCore::MediaRemoteControls::create):
1644         (WebCore::MediaRemoteControls::setPreviousTrackEnabled): Moved to implementation file.
1645         (WebCore::MediaRemoteControls::setNextTrackEnabled): Moved to implementation file.
1646         * Modules/mediasession/MediaSession.cpp:
1647         (WebCore::MediaSession::MediaSession): Keep track of the remote controls' parent session.
1648         (WebCore::MediaSession::controlIsEnabledDidChange): Propagate the new media state to the UI process.
1649         * Modules/mediasession/MediaSession.h:
1650         * dom/Document.cpp:
1651         (WebCore::Document::updateIsPlayingMedia): Include whether we can skip to the previous/next track.
1652         * page/MediaProducer.h:
1653
1654 2015-08-12  Alex Christensen  <achristensen@webkit.org>
1655
1656         Fix Debug CMake builds on Windows
1657         https://bugs.webkit.org/show_bug.cgi?id=147940
1658
1659         Reviewed by Chris Dumez.
1660
1661         * PlatformWin.cmake:
1662         Copy localized strings to the WebKit.resources directory.
1663
1664 2015-08-12  Alex Christensen  <achristensen@webkit.org>
1665
1666         Unreviewed build fix after r188339.
1667
1668         * bindings/js/GCController.cpp:
1669         (WebCore::GCController::garbageCollectOnAlternateThreadForDebugging):
1670         (WebCore::GCController::setJavaScriptGarbageCollectorTimerEnabled):
1671         (WebCore::GCController::releaseExecutableMemory): Deleted.
1672         * bindings/js/GCController.h:
1673         Commit WebCore part of patch.
1674
1675 2015-08-12  Brent Fulgham  <bfulgham@apple.com>
1676
1677         REGRESSION(r185606): ASSERT in WebCore::RenderElement::styleWillChange
1678         https://bugs.webkit.org/show_bug.cgi?id=147596
1679         <rdar://problem/21963355>
1680
1681         Reviewed by Jon Honeycutt.
1682
1683         Only add (or remove) a RenderElement from the container of RenderBoxes with
1684         scroll snap coordinates if the element actually is a RenderBox.
1685
1686         Tested by css3/scroll-snap/improper-snap-points-crash.html.
1687
1688         * rendering/RenderElement.cpp:
1689         (WebCore::RenderElement::styleWillChange):
1690         (WebCore::RenderElement::willBeRemovedFromTree):
1691
1692 2015-08-12  Devin Rousso  <drousso@apple.com>
1693
1694         Web Inspector: Implement selector highlighting for iOS
1695         https://bugs.webkit.org/show_bug.cgi?id=147919
1696
1697         Reviewed by Timothy Hatcher.
1698
1699         * inspector/InspectorOverlay.cpp:
1700         (WebCore::InspectorOverlay::getHighlight):
1701         If the current highlight is a nodeList, generate highlights for each node in the list and
1702         return the concatenated value of those highlights.
1703
1704 2015-08-12  Youenn Fablet  <youenn.fablet@crf.canon.fr>
1705
1706         Remove promise attribute specific handling from binding generator
1707         https://bugs.webkit.org/show_bug.cgi?id=147828
1708
1709         Reviewed by Darin Adler.
1710
1711         Reverting http://trac.webkit.org/changeset/184643, as CachedAttribute is used instead.
1712
1713         * bindings/scripts/CodeGeneratorJS.pm:
1714         (GenerateHeader): Deleted.
1715         * bindings/scripts/test/JS/JSTestObj.cpp:
1716         (WebCore::jsTestObjConstructor): Deleted.
1717         (WebCore::setJSTestObjConstructorStaticStringAttr): Deleted.
1718         * bindings/scripts/test/JS/JSTestObj.h:
1719         * bindings/scripts/test/ObjC/DOMTestObj.h:
1720         * bindings/scripts/test/ObjC/DOMTestObj.mm:
1721         (-[DOMTestObj voidMethod]): Deleted.
1722         (-[DOMTestObj voidMethodWithArgs:strArg:objArg:]): Deleted.
1723         * bindings/scripts/test/TestObj.idl:
1724
1725 2015-08-12  Youenn Fablet  <youenn.fablet@crf.canon.fr>
1726
1727         XHR.setRequestHeader should remove trailing and leading whitespaces from the header value
1728         https://bugs.webkit.org/show_bug.cgi?id=147445
1729
1730         Reviewed by Darin Adler.
1731
1732         Covered by added and modifed tests.
1733
1734         * platform/network/HTTPParsers.h:
1735         (WebCore::isHTTPSpace):
1736         (WebCore::stripLeadingAndTrailingHTTPSpaces):
1737         * xml/XMLHttpRequest.cpp:
1738         (WebCore::XMLHttpRequest::setRequestHeader): strip trailing and leading whitespace before testing for header value validity and storing.
1739
1740 2015-08-11  Carlos Garcia Campos  <cgarcia@igalia.com>
1741
1742         NetworkProcess: DNS prefetch happens in the Web Process
1743         https://bugs.webkit.org/show_bug.cgi?id=147824
1744
1745         Reviewed by Alexey Proskuryakov.
1746
1747         Use FrameLoaderClient to do the DNS prefetch.
1748
1749         * html/HTMLAnchorElement.cpp:
1750         (WebCore::HTMLAnchorElement::parseAttribute):
1751         * loader/FrameLoaderClient.h:
1752         * loader/LinkLoader.cpp:
1753         (WebCore::LinkLoader::loadLink):
1754         * page/Chrome.cpp:
1755         (WebCore::Chrome::mouseDidMoveOverElement):
1756
1757 2015-08-11  Mark Lam  <mark.lam@apple.com>
1758
1759         Implementation JavaScript watchdog using WTF::WorkQueue.
1760         https://bugs.webkit.org/show_bug.cgi?id=147107
1761
1762         Reviewed by Geoffrey Garen.
1763
1764         No new tests because we're not introducing any behavior change to WebCore here.
1765         We're only #include'ing Watchdog.h directly instead of going through VM.h.
1766
1767         * ForwardingHeaders/runtime/Watchdog.h: Added.
1768         * PlatformEfl.cmake:
1769         * WebCore.vcxproj/WebCore.vcxproj:
1770         * WebCore.vcxproj/WebCore.vcxproj.filters:
1771         * bindings/js/JSEventListener.cpp:
1772         * bindings/js/WorkerScriptController.cpp:
1773
1774 2015-08-11  Simon Fraser  <simon.fraser@apple.com>
1775
1776         [iOS WK2] ASSERT(!m_properties.backingStore || owner()) sometimes on zooming
1777         https://bugs.webkit.org/show_bug.cgi?id=147854
1778
1779         Reviewed by Tim Horton.
1780
1781         When destroying a TileGrid, the container layer remains alive by virtue of being
1782         in the layer tree, and it and its tiles get visited during layer tree transaction
1783         building but we assert because we've cleared the owner on the tile layers.
1784
1785         The real bug is that TileController doesn't tell GraphicsLayerCA when the custom
1786         sublayers change. Make this possible via a new PlatformCALayerClient function,
1787         and make TileController use this when rearranging its tile grids.
1788
1789         * platform/graphics/ca/GraphicsLayerCA.cpp:
1790         (WebCore::GraphicsLayerCA::platformCALayerCustomSublayersChanged):
1791         (WebCore::GraphicsLayerCA::updateContentsScale): No need to explicitly set
1792         the ChildrenChanged flag now.
1793         * platform/graphics/ca/GraphicsLayerCA.h:
1794         * platform/graphics/ca/PlatformCALayerClient.h:
1795         (WebCore::PlatformCALayerClient::platformCALayerCustomSublayersChanged):
1796         (WebCore::PlatformCALayerClient::platformCALayerLayerDidDisplay):
1797         * platform/graphics/ca/TileController.cpp:
1798         (WebCore::TileController::setNeedsDisplay):
1799         (WebCore::TileController::setContentsScale):
1800         (WebCore::TileController::setZoomedOutContentsScale):
1801         (WebCore::TileController::revalidateTiles):
1802         (WebCore::TileController::clearZoomedOutTileGrid):
1803         (WebCore::TileController::tileGridsChanged):
1804         (WebCore::TileController::tileRevalidationTimerFired):
1805         * platform/graphics/ca/TileController.h:
1806         * platform/graphics/ca/TileGrid.h: Default param.
1807
1808 2015-08-11  Zalan Bujtas  <zalan@apple.com>
1809
1810         Disconnect LayoutStateDisabler logic and RenderView pointer.
1811         https://bugs.webkit.org/show_bug.cgi?id=147906
1812
1813         Reviewed by Simon Fraser.
1814
1815         LayoutStateDisabler should disable layout state unconditionally.
1816         The only place where it was actually conditional was the subtree layout branch.
1817         Create a dedicated SubtreeLayoutStateMaintainer to manage the subtree layout case.
1818
1819         No change in behaviour.
1820
1821         * page/FrameView.cpp:
1822         (WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer):
1823         (WebCore::SubtreeLayoutStateMaintainer::~SubtreeLayoutStateMaintainer):
1824         (WebCore::FrameView::layout):
1825         * rendering/RenderBlock.cpp:
1826         (WebCore::RenderBlock::updateFirstLetterStyle):
1827         (WebCore::RenderBlock::updateFirstLetter):
1828         * rendering/RenderBlockFlow.cpp:
1829         (WebCore::RenderBlockFlow::repaintOverhangingFloats):
1830         * rendering/RenderFlowThread.cpp:
1831         (WebCore::RenderFlowThread::repaintRectangleInRegions):
1832         * rendering/RenderListBox.cpp:
1833         (WebCore::RenderListBox::layout):
1834         * rendering/RenderListItem.cpp:
1835         (WebCore::RenderListItem::insertOrMoveMarkerRendererIfNeeded):
1836         * rendering/RenderMediaControlElements.cpp:
1837         (WebCore::RenderMediaVolumeSliderContainer::layout):
1838         (WebCore::RenderMediaControlTimelineContainer::layout):
1839         (WebCore::RenderTextTrackContainerElement::layout):
1840         * rendering/RenderMultiColumnFlowThread.cpp:
1841         (WebCore::RenderMultiColumnFlowThread::populate):
1842         (WebCore::RenderMultiColumnFlowThread::evacuateAndDestroy):
1843         * rendering/RenderView.h:
1844         (WebCore::LayoutStateDisabler::LayoutStateDisabler):
1845         (WebCore::LayoutStateDisabler::~LayoutStateDisabler):
1846         * rendering/svg/RenderSVGRoot.cpp:
1847         (WebCore::RenderSVGRoot::layout):
1848
1849 2015-08-11  Simon Fraser  <simon.fraser@apple.com>
1850
1851         Fix ViewportConfiguration dumping.
1852         
1853         ViewportConfiguration::dump() was dumping parameters.width as parameters.initialScale.
1854
1855         * page/ViewportConfiguration.cpp:
1856         (WebCore::ViewportConfigurationTextStream::operator<<):
1857
1858 2015-08-11  Myles C. Maxfield  <mmaxfield@apple.com>
1859
1860         [font-features] Map OpenType feature tags to TrueType feature selectors
1861         https://bugs.webkit.org/show_bug.cgi?id=147819
1862
1863         Reviewed by Dean Jackson.
1864
1865         Allow uses of font-feature-settings even on TrueType fonts.
1866
1867         Test: css3/font-feature-settings-preinstalled-fonts.html
1868
1869         * platform/graphics/cocoa/FontCacheCoreText.cpp:
1870         (WebCore::appendRawTrueTypeFeature):
1871         (WebCore::appendTrueTypeFeature):
1872
1873 2015-08-11  Gyuyoung Kim  <gyuyoung.kim@webkit.org>
1874
1875         Reduce use of PassRefPtr in WebCore/css
1876         https://bugs.webkit.org/show_bug.cgi?id=147821
1877
1878         Reviewed by Daniel Bates.
1879
1880         Use RefPtr when returning nullptr or RefPtr, if not, use Ref.
1881
1882         * css/CSSBasicShapes.cpp:
1883         (WebCore::buildSerializablePositionOffset):
1884         (WebCore::CSSBasicShapeCircle::cssText):
1885         (WebCore::CSSBasicShapeEllipse::cssText):
1886         * css/CSSBasicShapes.h:
1887         * css/CSSCalculationValue.cpp:
1888         (WebCore::determineCategory):
1889         (WebCore::CSSCalcExpressionNodeParser::parseCalc):
1890         (WebCore::createBlendHalf):
1891         (WebCore::createCSS):
1892         * css/CSSCanvasValue.cpp:
1893         (WebCore::CSSCanvasValue::image):
1894         * css/CSSCanvasValue.h:
1895         * css/CSSComputedStyleDeclaration.cpp:
1896         (WebCore::positionOffsetValue):
1897         (WebCore::ComputedStyleExtractor::currentColorOrValidColor):
1898         (WebCore::ComputedStyleExtractor::getFontSizeCSSValuePreferringKeyword):
1899         (WebCore::counterToCSSValue):
1900         (WebCore::zoomAdjustedPaddingOrMarginPixelValue):
1901         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1902         (WebCore::computeRenderStyleForProperty):
1903         (WebCore::valueForItemPositionWithOverflowAlignment):
1904         (WebCore::valueForContentPositionAndDistributionWithOverflowAlignment):
1905         (WebCore::ComputedStyleExtractor::propertyValue):
1906         (WebCore::ComputedStyleExtractor::getCSSPropertyValuesForShorthandProperties):
1907         (WebCore::ComputedStyleExtractor::getCSSPropertyValuesForSidesShorthand):
1908         (WebCore::ComputedStyleExtractor::getCSSPropertyValuesForGridShorthand):
1909         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValueInternal):
1910         (WebCore::ComputedStyleExtractor::getBackgroundShorthandValue):
1911         * css/CSSComputedStyleDeclaration.h:
1912         * css/CSSCrossfadeValue.cpp:
1913         (WebCore::CSSCrossfadeValue::image):
1914         (WebCore::CSSCrossfadeValue::blend):
1915         * css/CSSCrossfadeValue.h:
1916         * css/CSSFilterImageValue.cpp:
1917         (WebCore::CSSFilterImageValue::image):
1918         * css/CSSFilterImageValue.h:
1919         * css/CSSGradientValue.cpp:
1920         (WebCore::CSSGradientValue::image):
1921         (WebCore::CSSGradientValue::gradientWithStylesResolved):
1922         (WebCore::CSSLinearGradientValue::createGradient):
1923         (WebCore::CSSRadialGradientValue::createGradient):
1924         * css/CSSGradientValue.h:
1925         * css/CSSImageSetValue.cpp:
1926         (WebCore::CSSImageSetValue::cloneForCSSOM):
1927         * css/CSSImageSetValue.h:
1928         * css/CSSImageValue.cpp:
1929         (WebCore::CSSImageValue::cloneForCSSOM):
1930         * css/CSSImageValue.h:
1931         * css/CSSParser.cpp:
1932         (WebCore::CSSParser::parseRule):
1933         (WebCore::CSSParser::parseKeyframeRule):
1934         (WebCore::CSSParser::parseFontFaceValue):
1935         (WebCore::CSSParser::parseValidPrimitive):
1936         (WebCore::CSSParser::parseContentDistributionOverflowPosition):
1937         (WebCore::CSSParser::parseAttr):
1938         (WebCore::CSSParser::parseBackgroundColor):
1939         (WebCore::CSSParser::parsePositionX):
1940         (WebCore::CSSParser::parsePositionY):
1941         (WebCore::CSSParser::parseFillPositionComponent):
1942         (WebCore::CSSParser::parseFillSize):
1943         (WebCore::CSSParser::parseAnimationDelay):
1944         (WebCore::CSSParser::parseAnimationDirection):
1945         (WebCore::CSSParser::parseAnimationDuration):
1946         (WebCore::CSSParser::parseAnimationFillMode):
1947         (WebCore::CSSParser::parseAnimationIterationCount):
1948         (WebCore::CSSParser::parseAnimationName):
1949         (WebCore::CSSParser::parseAnimationPlayState):
1950         (WebCore::CSSParser::parseAnimationTrigger):
1951         (WebCore::CSSParser::parseAnimationProperty):
1952         (WebCore::CSSParser::parseAnimationTimingFunction):
1953         (WebCore::CSSParser::parseGridPosition):
1954         (WebCore::gridMissingGridPositionValue):
1955         (WebCore::CSSParser::parseGridTrackList):
1956         (WebCore::CSSParser::parseGridTrackSize):
1957         (WebCore::CSSParser::parseGridBreadth):
1958         (WebCore::CSSParser::parseGridAutoFlow):
1959         (WebCore::CSSParser::parseGridTemplateAreas):
1960         (WebCore::CSSParser::parseCounterContent):
1961         (WebCore::CSSParser::parseInsetRoundedCorners):
1962         (WebCore::CSSParser::parseBasicShapeInset):
1963         (WebCore::CSSParser::parseShapeRadius):
1964         (WebCore::CSSParser::parseBasicShapeCircle):
1965         (WebCore::CSSParser::parseBasicShapeEllipse):
1966         (WebCore::CSSParser::parseBasicShapePolygon):
1967         (WebCore::CSSParser::parseBasicShapeAndOrBox):
1968         (WebCore::CSSParser::parseShapeProperty):
1969         (WebCore::CSSParser::parseClipPath):
1970         (WebCore::CSSParser::parseBasicShape):
1971         (WebCore::CSSParser::parseFontFamily):
1972         (WebCore::CSSParser::parseColor):
1973         (WebCore::CSSParser::parseShadow):
1974         (WebCore::CSSParser::parseImageResolution):
1975         (WebCore::CSSParser::parseImageSet):
1976         (WebCore::CSSParser::parseTransform):
1977         (WebCore::CSSParser::parseTransformValue):
1978         (WebCore::CSSParser::parseBuiltinFilterArguments):
1979         (WebCore::CSSParser::parseTextIndent):
1980         (WebCore::CSSParser::createImportRule):
1981         (WebCore::CSSParser::createMediaRule):
1982         (WebCore::CSSParser::createEmptyMediaRule):
1983         (WebCore::CSSParser::createSupportsRule):
1984         (WebCore::CSSParser::popSupportsRuleData):
1985         (WebCore::CSSParser::createKeyframesRule):
1986         (WebCore::CSSParser::createStyleRule):
1987         (WebCore::CSSParser::createFontFaceRule):
1988         (WebCore::CSSParser::createPageRule):
1989         (WebCore::CSSParser::createRegionRule):
1990         (WebCore::CSSParser::createKeyframe):
1991         * css/CSSParser.h:
1992         * css/CSSPrimitiveValue.cpp:
1993         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
1994         * css/CSSPrimitiveValue.h:
1995         * css/CSSStyleDeclaration.h:
1996         * css/CSSStyleSheet.cpp:
1997         (WebCore::CSSStyleSheet::rules):
1998         (WebCore::CSSStyleSheet::cssRules):
1999         * css/CSSStyleSheet.h:
2000         * css/CSSToStyleMap.cpp:
2001         (WebCore::CSSToStyleMap::styleImage):
2002         * css/CSSToStyleMap.h:
2003         * css/CSSValue.cpp:
2004         (WebCore::CSSValue::cloneForCSSOM):
2005         * css/CSSValue.h:
2006         * css/CSSValueList.cpp:
2007         (WebCore::CSSValueList::cloneForCSSOM):
2008         * css/CSSValueList.h:
2009         * css/MediaList.h:
2010         (WebCore::MediaQuerySet::copy):
2011         * css/MediaQueryMatcher.cpp:
2012         (WebCore::MediaQueryMatcher::matchMedia):
2013         * css/MediaQueryMatcher.h:
2014         * css/PropertySetCSSStyleDeclaration.cpp:
2015         (WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValue):
2016         (WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValueInternal):
2017         * css/PropertySetCSSStyleDeclaration.h:
2018         * css/RGBColor.cpp:
2019         (WebCore::RGBColor::red):
2020         (WebCore::RGBColor::green):
2021         (WebCore::RGBColor::blue):
2022         (WebCore::RGBColor::alpha):
2023         * css/RGBColor.h:
2024         * css/SVGCSSComputedStyleDeclaration.cpp:
2025         (WebCore::glyphOrientationToCSSPrimitiveValue):
2026         (WebCore::strokeDashArrayToCSSValueList):
2027         (WebCore::ComputedStyleExtractor::adjustSVGPaintForCurrentColor):
2028         (WebCore::ComputedStyleExtractor::svgPropertyValue):
2029         * css/SVGCSSParser.cpp:
2030         (WebCore::CSSParser::parseSVGStrokeDasharray):
2031         (WebCore::CSSParser::parseSVGPaint):
2032         (WebCore::CSSParser::parseSVGColor):
2033         (WebCore::CSSParser::parsePaintOrder):
2034         * css/WebKitCSSFilterValue.cpp:
2035         (WebCore::WebKitCSSFilterValue::cloneForCSSOM):
2036         * css/WebKitCSSFilterValue.h:
2037         * css/WebKitCSSMatrix.cpp:
2038         (WebCore::WebKitCSSMatrix::multiply):
2039         (WebCore::WebKitCSSMatrix::inverse):
2040         (WebCore::WebKitCSSMatrix::translate):
2041         (WebCore::WebKitCSSMatrix::scale):
2042         (WebCore::WebKitCSSMatrix::rotate):
2043         (WebCore::WebKitCSSMatrix::rotateAxisAngle):
2044         (WebCore::WebKitCSSMatrix::skewX):
2045         (WebCore::WebKitCSSMatrix::skewY):
2046         * css/WebKitCSSMatrix.h:
2047         * css/WebKitCSSTransformValue.cpp:
2048         (WebCore::WebKitCSSTransformValue::cloneForCSSOM):
2049         * css/WebKitCSSTransformValue.h:
2050
2051 2015-08-11  Sam Weinig  <sam@webkit.org>
2052
2053         Move CountQueuingStrategy and related to files to their correct place in the Xcode project
2054         https://bugs.webkit.org/show_bug.cgi?id=147901
2055
2056         Reviewed by Anders Carlsson.
2057
2058         * WebCore.xcodeproj/project.pbxproj:
2059
2060 2015-08-11  Zalan Bujtas  <zalan@apple.com>
2061
2062         Use more references in FrameView.
2063         https://bugs.webkit.org/show_bug.cgi?id=147899
2064
2065         Reviewed by Simon Fraser.
2066
2067         No change in functionality.
2068
2069         * page/FrameView.cpp:
2070         (WebCore::FrameView::flushCompositingStateForThisFrame):
2071         (WebCore::FrameView::flushCompositingStateIncludingSubframes):
2072         (WebCore::FrameView::addSlowRepaintObject):
2073         (WebCore::FrameView::scrollElementToRect):
2074         * page/FrameView.h:
2075         * rendering/RenderObject.cpp:
2076         (WebCore::RenderObject::willBeDestroyed):
2077         * rendering/RenderScrollbarPart.cpp:
2078         (WebCore::RenderScrollbarPart::imageChanged):
2079         * testing/Internals.cpp:
2080         (WebCore::Internals::scrollElementToRect):
2081
2082 2015-08-11  Zalan Bujtas  <zalan@apple.com>
2083
2084         Invalid FrameView::m_viewportRenderer after layout is finished.
2085         https://bugs.webkit.org/show_bug.cgi?id=147848
2086         rdar://problem/22205197
2087
2088         Reviewed by Simon Fraser.
2089
2090         We cache the current viewport renderer (FrameView::m_viewportRenderer) right before layout.
2091         It gets dereferenced later when layout is finished to update the overflow status.
2092         If the viewport renderer gets destroyed during layout, we end up with a dangling pointer.
2093         This patch replaces the pointer caching with type caching (none, body, document).
2094
2095         Unable to construct a test case.
2096
2097 2015-08-11  Brent Fulgham  <bfulgham@apple.com>
2098
2099         [Win] Switch Windows build to Visual Studio 2015
2100         https://bugs.webkit.org/show_bug.cgi?id=147887
2101         <rdar://problem/22235098>
2102
2103         Reviewed by Alex Christensen.
2104
2105         Update Visual Studio project file settings to use the current Visual
2106         Studio and compiler. Continue targeting binaries to run on our minimum
2107         supported configuration of Windows 7.
2108
2109         No change in behavior, so no new tests.
2110
2111         * WebCore.vcxproj/WebCore.vcxproj:
2112         * WebCore.vcxproj/WebCoreGenerated.vcxproj:
2113         * WebCore.vcxproj/WebCoreTestSupport.vcxproj:
2114
2115 2015-08-11  Said Abou-Hallawa  <sabouhallawa@apple.com>
2116
2117         feMorphology is not rendered correctly on Retina display
2118         https://bugs.webkit.org/show_bug.cgi?id=147589
2119
2120         Reviewed by Dean Jackson.
2121
2122         The result ImageBuffer of any FilterEffect is already scaled up for 2x
2123         display. The FEMorphology needs to fix its painting data dimension and
2124         radius by multiplying them by the filter scale factor.
2125  
2126         Test: fast/hidpi/filters-morphology.html
2127
2128         * platform/graphics/filters/FEMorphology.cpp:
2129         (WebCore::FEMorphology::platformApplySoftware):
2130
2131 2015-08-11  Myles C. Maxfield  <mmaxfield@apple.com>
2132
2133         [iOS] Arabic letter Yeh is drawn in LastResort
2134         https://bugs.webkit.org/show_bug.cgi?id=147862
2135         <rdar://problem/22202935>
2136
2137         Reviewed by Darin Adler.
2138
2139         In order to perform font fallback, we must know which fonts support which characters. We
2140         perform this check by asking each font to map a sequence of codepoints to glyphs, and
2141         any glyphs which end up with a 0 value are unsupported by the font.
2142
2143         One of the mechanisms that we use to do this is to combine the code points into a string,
2144         and tell Core Text to lay out the string. However, this is fundamentally a different
2145         operation than the one we are trying to perform. Strings combine adjacent codepoints into
2146         grapheme clusters, and CoreText operates on these. However, we are trying to gain
2147         information regarding codepoints, not grapheme clusters.
2148
2149         Instead of taking this string-based approach, we should try harder to use Core Text
2150         functions which operate on ordered collections of characters, rather than strings. In
2151         particular, CTFontGetGlyphsForCharacters() and CTFontGetVerticalGlyphsForCharacters()
2152         have the behavior we want where any unmapped characters end up with a 0 value glyph.
2153
2154         Previously, we were only using the result of those functions if they were successfully
2155         able to map their entire input. However, given the fact that we can degrade gracefully
2156         in the case of a partial mapping, we shouldn't need to bail completely to the
2157         string-based approach should a partial mapping occur.
2158
2159         At some point we should delete the string-based approach entirely. However, this path
2160         is still explicitly used for composite fonts. Fixing that use case is out of scope
2161         for this patch.
2162
2163         Test: fast/text/arabic-glyph-cache-fill-combine.html
2164
2165         * platform/graphics/mac/GlyphPageMac.cpp:
2166         (WebCore::GlyphPage::fill):
2167
2168 2015-08-11  Chris Dumez  <cdumez@apple.com>
2169
2170         The 'length' property on interface objects should be configurable
2171         https://bugs.webkit.org/show_bug.cgi?id=147858
2172
2173         Reviewed by Daniel Bates.
2174
2175         Make the 'length' property configurable on interface objects to comply
2176         with the Web IDL specification [1] and to align our behavior with
2177         Firefox 38 and Chrome 44.
2178
2179         This behavior is also covered by the following W3C test suite:
2180         http://w3c-test.org/dom/interfaces.html
2181
2182         [1] http://heycam.github.io/webidl/#es-interface-call (17 July 2015)
2183
2184         Test: fast/dom/length-property-configurable.html
2185
2186         * bindings/scripts/CodeGeneratorJS.pm:
2187         (GenerateConstructorHelperMethods):
2188         Make the 'length' property configurable on interface objects.
2189
2190         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
2191         (WebCore::JSTestActiveDOMObjectConstructor::finishCreation):
2192         * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
2193         (WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::finishCreation):
2194         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
2195         (WebCore::JSTestCustomNamedGetterConstructor::finishCreation):
2196         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
2197         (WebCore::JSTestEventConstructorConstructor::finishCreation):
2198         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
2199         (WebCore::JSTestEventTargetConstructor::finishCreation):
2200         * bindings/scripts/test/JS/JSTestException.cpp:
2201         (WebCore::JSTestExceptionConstructor::finishCreation):
2202         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
2203         (WebCore::JSTestGenerateIsReachableConstructor::finishCreation):
2204         * bindings/scripts/test/JS/JSTestInterface.cpp:
2205         (WebCore::JSTestInterfaceConstructor::finishCreation):
2206         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2207         (WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):
2208         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
2209         (WebCore::JSTestNamedConstructorConstructor::finishCreation):
2210         (WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
2211         * bindings/scripts/test/JS/JSTestNode.cpp:
2212         (WebCore::JSTestNodeConstructor::finishCreation):
2213         * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
2214         (WebCore::JSTestNondeterministicConstructor::finishCreation):
2215         * bindings/scripts/test/JS/JSTestObj.cpp:
2216         (WebCore::JSTestObjConstructor::finishCreation):
2217         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
2218         (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
2219         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2220         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
2221         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
2222         (WebCore::JSTestTypedefsConstructor::finishCreation):
2223         * bindings/scripts/test/JS/JSattribute.cpp:
2224         (WebCore::JSattributeConstructor::finishCreation):
2225         * bindings/scripts/test/JS/JSreadonly.cpp:
2226         (WebCore::JSreadonlyConstructor::finishCreation):
2227         Rebaseline bindings tests.
2228
2229 2015-08-11  Per Arne Vollan  <peavo@outlook.com>
2230
2231         [Win] Popup menus have incorrect placement when device scale factor != 1.
2232         https://bugs.webkit.org/show_bug.cgi?id=147880
2233
2234         Reviewed by Brent Fulgham.
2235
2236         We need to take the device scaling factor into account when calculating
2237         the position and size of the popup menu.
2238
2239         * platform/win/PopupMenuWin.cpp:
2240         (WebCore::PopupMenuWin::calculatePositionAndSize):
2241
2242 2015-08-11  Chris Dumez  <cdumez@apple.com>
2243
2244         [WebIDL] All interface objects must have a property named "name"
2245         https://bugs.webkit.org/show_bug.cgi?id=147865
2246
2247         Reviewed by Darin Adler.
2248
2249         As per the Web IDL specification, all interface objects must have a
2250         property named "name" with attributes
2251         { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }
2252         whose value is the identifier of the corresponding interface:
2253         http://heycam.github.io/webidl/#es-interface-call
2254         http://heycam.github.io/webidl/#named-constructors
2255
2256         Previously, our interface objects had no such property, this patch
2257         addresses the problem.
2258
2259         Both Firefox 38 and Chrome 44 comply with the Web IDL specification
2260         here.
2261
2262         Test: fast/dom/interface-name-property.html
2263
2264         * bindings/scripts/CodeGeneratorJS.pm:
2265         (GenerateConstructorHelperMethods):
2266
2267         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
2268         (WebCore::JSTestActiveDOMObjectConstructor::finishCreation):
2269         * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
2270         (WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::finishCreation):
2271         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
2272         (WebCore::JSTestCustomNamedGetterConstructor::finishCreation):
2273         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
2274         (WebCore::JSTestEventConstructorConstructor::finishCreation):
2275         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
2276         (WebCore::JSTestEventTargetConstructor::finishCreation):
2277         * bindings/scripts/test/JS/JSTestException.cpp:
2278         (WebCore::JSTestExceptionConstructor::finishCreation):
2279         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
2280         (WebCore::JSTestGenerateIsReachableConstructor::finishCreation):
2281         * bindings/scripts/test/JS/JSTestInterface.cpp:
2282         (WebCore::JSTestInterfaceConstructor::finishCreation):
2283         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2284         (WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):
2285         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
2286         (WebCore::JSTestNamedConstructorConstructor::finishCreation):
2287         (WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
2288         * bindings/scripts/test/JS/JSTestNode.cpp:
2289         (WebCore::JSTestNodeConstructor::finishCreation):
2290         * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
2291         (WebCore::JSTestNondeterministicConstructor::finishCreation):
2292         * bindings/scripts/test/JS/JSTestObj.cpp:
2293         (WebCore::JSTestObjConstructor::finishCreation):
2294         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
2295         (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
2296         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2297         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
2298         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
2299         (WebCore::JSTestTypedefsConstructor::finishCreation):
2300         * bindings/scripts/test/JS/JSattribute.cpp:
2301         (WebCore::JSattributeConstructor::finishCreation):
2302         * bindings/scripts/test/JS/JSreadonly.cpp:
2303         (WebCore::JSreadonlyConstructor::finishCreation):
2304         Rebaseline bindings tests.
2305
2306 2015-08-11  Ting-Wei Lan  <lantw44@gmail.com>
2307
2308         Fix debug build when optimization is enabled
2309         https://bugs.webkit.org/show_bug.cgi?id=147816
2310
2311         Reviewed by Alexey Proskuryakov.
2312
2313         No new tests because this is only a build fix.
2314
2315         * editing/InsertNodeBeforeCommand.cpp:
2316
2317 2015-08-11  Chris Dumez  <cdumez@apple.com>
2318
2319         Unreviewed, rebaseline bindings tests after r188252.
2320
2321         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
2322         (WebCore::JSTestActiveDOMObjectConstructor::finishCreation):
2323         * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
2324         (WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::finishCreation):
2325         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
2326         (WebCore::JSTestCustomNamedGetterConstructor::finishCreation):
2327         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
2328         (WebCore::JSTestEventConstructorConstructor::finishCreation):
2329         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
2330         (WebCore::JSTestEventTargetConstructor::finishCreation):
2331         * bindings/scripts/test/JS/JSTestException.cpp:
2332         (WebCore::JSTestExceptionConstructor::finishCreation):
2333         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
2334         (WebCore::JSTestGenerateIsReachableConstructor::finishCreation):
2335         * bindings/scripts/test/JS/JSTestInterface.cpp:
2336         (WebCore::JSTestInterfaceConstructor::finishCreation):
2337         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2338         (WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):
2339         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
2340         (WebCore::JSTestNamedConstructorConstructor::finishCreation):
2341         (WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
2342         * bindings/scripts/test/JS/JSTestNode.cpp:
2343         (WebCore::JSTestNodeConstructor::finishCreation):
2344         * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
2345         (WebCore::JSTestNondeterministicConstructor::finishCreation):
2346         * bindings/scripts/test/JS/JSTestObj.cpp:
2347         (WebCore::JSTestObjConstructor::finishCreation):
2348         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
2349         (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
2350         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2351         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
2352         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
2353         (WebCore::JSTestTypedefsConstructor::finishCreation):
2354         * bindings/scripts/test/JS/JSattribute.cpp:
2355         (WebCore::JSattributeConstructor::finishCreation):
2356         * bindings/scripts/test/JS/JSreadonly.cpp:
2357         (WebCore::JSreadonlyConstructor::finishCreation):
2358
2359 2015-08-10  Chris Dumez  <cdumez@apple.com>
2360
2361         The 'prototype' property on interface objects should not be enumerable
2362         https://bugs.webkit.org/show_bug.cgi?id=147861
2363
2364         Reviewed by Darin Adler.
2365
2366         1. Make the 'prototype' property not enumerable on interface object to
2367            comply with the Web IDL specification [1] and to align our behavior
2368            with Firefox 38 and Chrome 44.
2369
2370         2. Also update the 'prototype' property on named constructors to have the
2371            following attributes:
2372            { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }
2373
2374            Previously, all these were true in WebKit. The new behavior complies
2375            with the Web IDL specification [2] and aligns our behavior with
2376            Firefox 38. On Chrome 44, the attributes are as follows:
2377            { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: false }
2378
2379         This behavior is also covered by the following W3C test suite:
2380         http://w3c-test.org/dom/interfaces.html
2381
2382         [1] http://heycam.github.io/webidl/#interface-object
2383         [2] http://heycam.github.io/webidl/#named-constructors
2384
2385         Test: fast/dom/prototype-property-not-enumerable.html
2386
2387         * bindings/scripts/CodeGeneratorJS.pm:
2388         (GenerateConstructorHelperMethods):
2389
2390 2015-08-10  Alex Christensen  <achristensen@webkit.org>
2391
2392         Build fix after r188239.
2393
2394         * PlatformWinCairo.cmake:
2395         MediaPlayerPrivateMediaFoundation is needed on WinCairo with video properly enabled.
2396
2397 2015-08-10  Myles C. Maxfield  <mmaxfield@apple.com>
2398
2399         Post-review fixup after r188195
2400         https://bugs.webkit.org/show_bug.cgi?id=147806
2401
2402         Unreviewed.
2403
2404         Covered by fast/text/crash-obscure-text.html.
2405
2406         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
2407         (WebCore::FontPlatformData::objectForEqualityCheck):
2408
2409 2015-08-10  Alex Christensen  <achristensen@webkit.org>
2410
2411         Build TestWebKitAPI with CMake on Windows
2412         https://bugs.webkit.org/show_bug.cgi?id=147851
2413
2414         Reviewed by Chris Dumez.
2415
2416         * PlatformWin.cmake:
2417         Remove RenderThemeWin.cpp which is included in RenderingAllInOne.cpp.
2418         * WebCorePrefix.h:
2419         Include cmakeconfig.h before wtf/Platform.h like we do in JavaScriptCore's config.h to avoid warnings and redefining ENABLE_*  macros.
2420
2421 2015-08-10  Matthew Daiter  <mdaiter@apple.com>
2422
2423         HTMLMediaElement needs way to find MediaDeviceInfo
2424         https://bugs.webkit.org/show_bug.cgi?id=147842
2425
2426         Reviewed by Jer Noble.
2427
2428         * html/HTMLMediaElement.cpp:
2429         (WebCore::HTMLMediaElement::mediaPlayerMediaDeviceIdentifierStorageDirectory):
2430         * html/HTMLMediaElement.h:
2431         * page/Settings.h:
2432         (WebCore::Settings::setMediaDeviceIdentifierStorageDirectory):
2433         (WebCore::Settings::mediaDeviceIdentifierStorageDirectory):
2434         * platform/graphics/MediaPlayer.h:
2435         (WebCore::MediaPlayerClient::mediaPlayerMediaDeviceIdentifierStorageDirectory):
2436
2437 2015-08-10  Chris Dumez  <cdumez@apple.com>
2438
2439         Simplify code for making Page-cacheability decision
2440         https://bugs.webkit.org/show_bug.cgi?id=147829
2441
2442         Reviewed by Antti Koivisto.
2443
2444         Simplify code for making Page-cacheability decision by merging logging
2445         code and decision making code. Having the same checks in two places was
2446         redundant and error-prone as we needed to keep them in sync.
2447
2448         Also get rid of failure reason enum values as those have not been used
2449         in a while.
2450
2451         * history/PageCache.cpp:
2452         (WebCore::canCacheFrame):
2453         (WebCore::canCachePage):
2454         (WebCore::PageCache::canCache):
2455         (WebCore::logPageCacheFailureDiagnosticMessage): Deleted.
2456         (WebCore::PageCache::singleton): Deleted.
2457         (WebCore::PageCache::setMaxSize): Deleted.
2458         (WebCore::PageCache::frameCount): Deleted.
2459         (WebCore::PageCache::markPagesForVisitedLinkStyleRecalc): Deleted.
2460         (WebCore::PageCache::markPagesForFullStyleRecalc): Deleted.
2461         (WebCore::PageCache::markPagesForDeviceOrPageScaleChanged): Deleted.
2462         (WebCore::PageCache::markPagesForContentsSizeChanged): Deleted.
2463         (WebCore::PageCache::markPagesForCaptionPreferencesChanged): Deleted.
2464         (WebCore::pruningReasonToDiagnosticLoggingKey): Deleted.
2465         * page/DiagnosticLoggingKeys.cpp:
2466         (WebCore::DiagnosticLoggingKeys::isDisabledKey):
2467         (WebCore::DiagnosticLoggingKeys::redirectKey):
2468         (WebCore::DiagnosticLoggingKeys::replaceKey):
2469         (WebCore::DiagnosticLoggingKeys::sourceKey):
2470         (WebCore::DiagnosticLoggingKeys::underMemoryPressureKey):
2471         (WebCore::DiagnosticLoggingKeys::reloadFromOriginKey): Deleted.
2472         * page/DiagnosticLoggingKeys.h:
2473
2474 2015-08-10  Devin Rousso  <drousso@apple.com>
2475
2476         Web Inspector: [iOS] Allow inspector to retrieve a list of system fonts
2477         https://bugs.webkit.org/show_bug.cgi?id=147033
2478
2479         Reviewed by Joseph Pecoraro.
2480
2481         Implement systemFontFamilies for iOS.
2482
2483         * platform/graphics/ios/FontCacheIOS.mm:
2484         (WebCore::FontCache::systemFontFamilies):
2485
2486 2015-08-10  Devin Rousso  <drousso@apple.com>
2487
2488         Web Inspector: Invalid selectors can be applied to the stylesheet
2489         https://bugs.webkit.org/show_bug.cgi?id=147230
2490
2491         Reviewed by Timothy Hatcher.
2492
2493         * inspector/InspectorStyleSheet.cpp:
2494         (WebCore::isValidSelectorListString):
2495         (WebCore::InspectorStyleSheet::setRuleSelector):
2496         Now checks to see that the supplied selector is valid before trying to commit it to the rule.
2497         (WebCore::InspectorStyleSheet::addRule):
2498         (WebCore::checkStyleRuleSelector): Deleted.
2499
2500 2015-08-10  James Craig  <jcraig@apple.com>
2501
2502         AX: Address follow-up comments in bug 145684
2503         https://bugs.webkit.org/show_bug.cgi?id=147817
2504
2505         Reviewed by Dean Jackson.
2506
2507         Minor cleanup and style updates requested by Dean.
2508         Updated Existing Test Expectations.
2509
2510         * Modules/mediacontrols/mediaControlsApple.css:
2511         (video::-webkit-media-show-controls):
2512         * Modules/mediacontrols/mediaControlsiOS.css:
2513         (video::-webkit-media-show-controls):
2514
2515 2015-08-07  Antti Koivisto  <antti@apple.com>
2516
2517         Expand network cache tests to cover memory cache behavior
2518         https://bugs.webkit.org/show_bug.cgi?id=147783
2519
2520         Reviewed by Alexey Proskuryakov.
2521
2522         To support testing, include memory cache as a possible source type to XHR responses.
2523
2524         * loader/ResourceLoader.cpp:
2525         (WebCore::logResourceResponseSource):
2526         * loader/cache/CachedRawResource.cpp:
2527         (WebCore::CachedRawResource::didAddClient):
2528         * loader/cache/CachedResource.h:
2529         (WebCore::CachedResource::revalidationInProgress):
2530         * platform/network/ResourceResponseBase.h:
2531         * testing/Internals.cpp:
2532         (WebCore::Internals::xhrResponseSource):
2533
2534 2015-08-10  Youenn Fablet  <youenn.fablet@crf.canon.fr>
2535
2536         Compile warning (-Wsign-compare) on 32-bits at WebCore/platform/FileSystem.cpp
2537         https://bugs.webkit.org/show_bug.cgi?id=146414
2538
2539         Reviewed by Darin Adler.
2540
2541         No behavioral changes.
2542
2543         * platform/FileSystem.cpp:
2544         (WebCore::MappedFileData::MappedFileData): Making use of convertSafely.
2545         * platform/posix/SharedBufferPOSIX.cpp:
2546         (WebCore::SharedBuffer::createFromReadingFile): Making use of convertSafely.
2547
2548 2015-08-10  Youenn Fablet  <youenn.fablet@crf.canon.fr>
2549
2550         [Streams API] ReadableStreamReader closed promise should use CachedAttribute
2551         https://bugs.webkit.org/show_bug.cgi?id=147487
2552
2553         Reviewed by Darin Adler.
2554
2555         Covered by existing tests.
2556
2557         * Modules/streams/ReadableStreamReader.idl: Made closed a CachedAttribute.
2558         * bindings/js/JSReadableStreamReaderCustom.cpp:
2559         (WebCore::JSReadableStreamReader::closed): Updated according CachedAttribute specific field.
2560
2561 2015-08-09  Hunseop Jeong  <hs85.jeong@samsung.com>
2562
2563         [EFL] Use the non-overlay scrollbar
2564         https://bugs.webkit.org/show_bug.cgi?id=147725
2565
2566         Reviewed by Gyuyoung Kim.
2567
2568         No new tests because there is no behavior change.
2569
2570         * platform/efl/ScrollbarThemeEfl.cpp:
2571         (WebCore::ScrollbarThemeEfl::usesOverlayScrollbars):
2572         Changed the condition of the 'usesOverlayScrollbars' to use the
2573         setting value.
2574         * platform/efl/ScrollbarThemeEfl.h:
2575
2576 2015-08-09  Chris Dumez  <cdumez@apple.com>
2577
2578         Page cache doesn't work for pages actively using Geolocation
2579         https://bugs.webkit.org/show_bug.cgi?id=147785
2580         <rdar://problem/11147901>
2581
2582         Reviewed by Darin Adler.
2583
2584         Allow pages actively using Geolocation into the PageCache.
2585
2586         Tests: fast/history/page-cache-geolocation-active-oneshot.html
2587                fast/history/page-cache-geolocation-active-watcher.html
2588
2589         * Modules/geolocation/Geolocation.cpp:
2590         (WebCore::Geolocation::canSuspendForPageCache):
2591         (WebCore::Geolocation::suspend): Deleted.
2592         * history/PageCache.cpp:
2593
2594 2015-08-09  Nan Wang  <n_wang@apple.com>
2595
2596         AX: CSS table display styles can cause malformed, inaccessible AXTables to be exposed to the AX tree
2597         https://bugs.webkit.org/show_bug.cgi?id=136415
2598         <rdar://problem/22026625>
2599
2600         Reviewed by Chris Fleizach.
2601
2602         Applying CSS display styles to tables can end up inserting anonymous RenderTableRows, which is not handled well by the 
2603         accessibility code, which treats these as the actual rows. We can address this by diving deeper into anonymous nodes 
2604         and finding the real rows and cells we want. In addition, another thing also causing malformed tables is that "grid" 
2605         roles are being exposed as AXGrid instead of AXTable.
2606
2607         Test: accessibility/mac/malformed-table.html
2608
2609         * accessibility/AccessibilityARIAGrid.cpp:
2610         (WebCore::AccessibilityARIAGrid::addRowDescendant):
2611         * accessibility/AccessibilityTable.cpp:
2612         (WebCore::AccessibilityTable::addChildren):
2613         (WebCore::AccessibilityTable::addTableCellChild):
2614         (WebCore::AccessibilityTable::addChildrenFromSection):
2615         * accessibility/AccessibilityTable.h:
2616         * accessibility/AccessibilityTableCell.cpp:
2617         (WebCore::AccessibilityTableCell::parentTable):
2618         (WebCore::AccessibilityTableCell::rowIndexRange):
2619         * accessibility/AccessibilityTableRow.cpp:
2620         (WebCore::AccessibilityTableRow::parentTable):
2621         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2622         (createAccessibilityRoleMap):
2623
2624 2015-08-08  Darin Adler  <darin@apple.com>
2625
2626         Remove -webkit-color-correction CSS property
2627         https://bugs.webkit.org/show_bug.cgi?id=147812
2628
2629         Reviewed by Maciej Stachowiak.
2630
2631         Covered by existing tests.
2632
2633         I am doing some general cleanup of handling of color spaces in WebKit.
2634         This removes the obsolete web-visible property that allowed clients to
2635         get color correction on older Apple platforms where we chose not to do
2636         it all the time for performance reasons. Currently, it has no effect on
2637         any supported platform.
2638
2639         Now that this property is removed, a website can detect that it's not
2640         there if it uses getComputedStyle, but I don't expect this to have
2641         significant compatibility fallout. It's harmless to continue using the
2642         property in legacy content or websites that have not been updated, since
2643         unknown property names are ignored and it had no effect before anyway.
2644
2645         * css/CSSComputedStyleDeclaration.cpp: Removed
2646         CSSPropertyWebkitColorCorrection from the list of computed properties.
2647         (WebCore::ComputedStyleExtractor::propertyValue): Removed the
2648         CSSPropertyWebkitColorCorrection case.
2649
2650         * css/CSSParser.cpp:
2651         (WebCore::isValidKeywordPropertyAndValue): Removed the
2652         CSSPropertyWebkitColorCorrection case.
2653         (WebCore::isKeywordPropertyID): Ditto.
2654         (WebCore::CSSParser::parseValue): Ditto.
2655
2656         * css/CSSPrimitiveValueMappings.h:
2657         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Deleted the overload
2658         of this that converts a ColorSpace to a CSSPrimitiveValue.
2659         (WebCore::CSSPrimitiveValue::operator ColorSpace): Deleted.
2660
2661         * css/CSSPropertyNames.in: Removed -webkit-color-correction.
2662
2663         * css/CSSValueKeywords.in: Removed the -webkit-color-correction section,
2664         which contained sRGB.
2665
2666         * css/SVGCSSValueKeywords.in: Uncommented sRGB now that it's not shared
2667         with -webkit-color-correction.
2668
2669         * rendering/style/RenderStyle.h: Removed setColorSpace and initialColorSpace.
2670         Kept colorSpace around for now, but it simply returns ColorSpaceSRGB.
2671         This prevents us from needing to touch every single call site that passes
2672         the color space in to functions in the platform graphics abstraction.
2673         We'll touch most of those call sites when we change Color to include the
2674         color space and eventually we can delete this.
2675
2676         * rendering/style/StyleRareInheritedData.cpp: Deleted colorSpace.
2677         (WebCore::StyleRareInheritedData::StyleRareInheritedData): Deleted
2678         code to initialize colorSpace and to copy colorSpace.
2679         (WebCore::StyleRareInheritedData::operator==): Deleted code to compare
2680         colorSpace.
2681
2682 2015-08-09  Eric Carlson  <eric.carlson@apple.com>
2683
2684         [Mac] Always require ExternalDeviceAutoPlayCandidate flag to AirPlay automatically
2685         https://bugs.webkit.org/show_bug.cgi?id=147801
2686
2687         Reviewed by Dean Jackson.
2688
2689         Test: http/tests/media/video-media-document-disposition-download.html
2690
2691         * Modules/mediasession/WebMediaSessionManager.cpp:
2692         (WebCore::WebMediaSessionManager::configurePlaybackTargetClients): Don't tell the last element
2693           to begin playing to the target unless the ExternalDeviceAutoPlayCandidate flag is set and 
2694           it is not currently playing.
2695
2696 2015-08-09  Myles C. Maxfield  <mmaxfield@apple.com>
2697
2698         Crash in ComplexTextController when laying out obscure text
2699         https://bugs.webkit.org/show_bug.cgi?id=147806
2700         <rdar://problem/22102378>
2701
2702         Reviewed by Darin Adler.
2703
2704         CTFontDescriptorCopyAttribute(fontDescriptor.get(), kCTFontReferenceURLAttribute) can return nullptr.
2705
2706         Test: fast/text/crash-obscure-text.html
2707
2708         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
2709         (WebCore::safeCFEqual):
2710         (WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
2711
2712 2015-08-08  Dean Jackson  <dino@apple.com>
2713
2714         Remove the webkit prefix from CanvasRenderingContext2D imageSmoothingEnabled
2715         https://bugs.webkit.org/show_bug.cgi?id=147803
2716         <rdar://problem/22200553>
2717
2718         Reviewed by Sam Weinig.
2719
2720         Rename webkitImageSmoothingEnabled to imageSmoothingEnabled.
2721
2722         Updated existing tests, and made sure that the prefixed version is
2723         identical to the standard version.
2724
2725         * html/canvas/CanvasRenderingContext2D.cpp:
2726         (WebCore::CanvasRenderingContext2D::imageSmoothingEnabled): Renamed from webkitImageSmoothingEnabled.
2727         (WebCore::CanvasRenderingContext2D::setImageSmoothingEnabled): Renamed from setWebkitImageSmoothingEnabled.
2728         (WebCore::CanvasRenderingContext2D::webkitImageSmoothingEnabled): Deleted.
2729         (WebCore::CanvasRenderingContext2D::setWebkitImageSmoothingEnabled): Deleted.
2730         * html/canvas/CanvasRenderingContext2D.h: Rename the methods.
2731         * html/canvas/CanvasRenderingContext2D.idl: Add the non-prefixed form, and mark is as the
2732         implementation of the prefixed form.
2733
2734 2015-08-09  Andreas Kling  <akling@apple.com>
2735
2736         Ref-ify some functions that always succeed in constructing Documents.
2737         <https://webkit.org/b/147552>
2738
2739         Reviewed by Sam Weinig.
2740
2741         Update some functions involved in the construction of new Document objects
2742         to codify that they always construct objects.
2743
2744         Bonus: DOMImplementation::createCSSStyleSheet().
2745
2746         * dom/DOMImplementation.cpp:
2747         (WebCore::DOMImplementation::createCSSStyleSheet):
2748         (WebCore::DOMImplementation::createHTMLDocument):
2749         (WebCore::DOMImplementation::createDocument):
2750         * dom/DOMImplementation.h:
2751         * loader/DocumentWriter.cpp:
2752         (WebCore::DocumentWriter::createDocument):
2753         (WebCore::DocumentWriter::begin):
2754         * loader/DocumentWriter.h:
2755         * xml/DOMParser.cpp:
2756         (WebCore::DOMParser::parseFromString):
2757         * xml/DOMParser.h:
2758         * xml/XSLTProcessor.cpp:
2759         (WebCore::XSLTProcessor::createDocumentFromSource):
2760         * xml/XSLTProcessor.h:
2761
2762 2015-08-08  Commit Queue  <commit-queue@webkit.org>
2763
2764         Unreviewed, rolling out r179871.
2765         https://bugs.webkit.org/show_bug.cgi?id=147810
2766
2767         Breaks product images on http://www.apple.com/shop/buy-
2768         mac/macbook (Requested by smfr on #webkit).
2769
2770         Reverted changeset:
2771
2772         "Render: properly update body's background image"
2773         https://bugs.webkit.org/show_bug.cgi?id=140183
2774         http://trac.webkit.org/changeset/179871
2775
2776 2015-08-07  Gyuyoung Kim  <gyuyoung.kim@webkit.org>
2777
2778         Reduce uses of PassRefPtr in bindings
2779         https://bugs.webkit.org/show_bug.cgi?id=147781
2780
2781         Reviewed by Chris Dumez.
2782
2783         Use RefPtr when function can return null or an instance. If not, Ref is used.
2784
2785         * bindings/gobject/GObjectNodeFilterCondition.h:
2786         * bindings/gobject/GObjectXPathNSResolver.h:
2787         * bindings/gobject/WebKitDOMNodeFilter.cpp:
2788         (WebKit::core):
2789         * bindings/gobject/WebKitDOMNodeFilterPrivate.h:
2790         * bindings/gobject/WebKitDOMXPathNSResolver.cpp:
2791         (WebKit::core):
2792         * bindings/gobject/WebKitDOMXPathNSResolverPrivate.h:
2793         * bindings/js/CallbackFunction.h:
2794         (WebCore::createFunctionOnlyCallback):
2795         * bindings/js/Dictionary.h:
2796         (WebCore::Dictionary::getEventListener):
2797         * bindings/js/IDBBindingUtilities.cpp:
2798         (WebCore::createIDBKeyFromValue):
2799         (WebCore::internalCreateIDBKeyFromScriptValueAndKeyPath):
2800         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
2801         (WebCore::scriptValueToIDBKey):
2802         * bindings/js/IDBBindingUtilities.h:
2803         * bindings/js/JSDOMBinding.h:
2804         (WebCore::toInt8Array):
2805         (WebCore::toInt16Array):
2806         (WebCore::toInt32Array):
2807         (WebCore::toUint8Array):
2808         (WebCore::toUint8ClampedArray):
2809         (WebCore::toUint16Array):
2810         (WebCore::toUint32Array):
2811         (WebCore::toFloat32Array):
2812         (WebCore::toFloat64Array):
2813         * bindings/js/JSDOMStringListCustom.cpp:
2814         (WebCore::JSDOMStringList::toWrapped):
2815         * bindings/js/JSDeviceMotionEventCustom.cpp:
2816         (WebCore::readAccelerationArgument):
2817         (WebCore::readRotationRateArgument):
2818         * bindings/js/JSErrorHandler.h:
2819         (WebCore::createJSErrorHandler):
2820         * bindings/js/JSGeolocationCustom.cpp:
2821         (WebCore::createPositionOptions):
2822         * bindings/js/JSNodeCustom.cpp:
2823         * bindings/js/JSNodeFilterCustom.cpp:
2824         (WebCore::JSNodeFilter::toWrapped):
2825         * bindings/js/ScriptController.cpp:
2826         (WebCore::ScriptController::createWorld):
2827         (WebCore::ScriptController::createRootObject):
2828         (WebCore::ScriptController::createScriptInstanceForWidget):
2829         * bindings/js/ScriptController.h:
2830         * bindings/js/ScriptControllerMac.mm:
2831         (WebCore::ScriptController::createScriptInstanceForWidget):
2832         * bindings/js/SerializedScriptValue.cpp:
2833         (WebCore::SerializedScriptValue::create):
2834         * bindings/js/SerializedScriptValue.h:
2835         * bindings/objc/DOMUIKitExtensions.mm:
2836         (-[DOMNode rangeOfContainingParagraph]):
2837         * bindings/objc/ObjCNodeFilterCondition.h:
2838         * bindings/scripts/CodeGeneratorJS.pm:
2839         (GenerateHeader):
2840
2841 2015-08-07  Myles C. Maxfield  <mmaxfield@apple.com>
2842
2843         [OS X] Remove dead code from FontCache::createFontPlatformData()
2844         https://bugs.webkit.org/show_bug.cgi?id=147804
2845
2846         Reviewed by Zalan Bujtas.
2847
2848         CTFontCreateForCSS() always returns the best font.
2849
2850         No new tests because there is no behavior change.
2851
2852         * platform/graphics/mac/FontCacheMac.mm:
2853         (WebCore::fontWithFamily):
2854
2855 2015-08-07  Zalan Bujtas  <zalan@apple.com>
2856
2857         Move painting functions from RenderObject to RenderElement.
2858         https://bugs.webkit.org/show_bug.cgi?id=147764
2859
2860         Reviewed by Simon Fraser.
2861
2862         Ideally they should live in RenderBoxModelObject, but the current SVG architecture makes is difficult
2863         to move them there.
2864
2865         No change in functionality.
2866
2867         * platform/graphics/FloatRect.h:
2868         (WebCore::FloatRect::FloatRect):
2869         * rendering/RenderBoxModelObject.cpp:
2870         (WebCore::RenderBoxModelObject::paintOneBorderSide):
2871         * rendering/RenderElement.cpp:
2872         (WebCore::RenderElement::drawLineForBoxSide):
2873         (WebCore::RenderElement::paintFocusRing):
2874         (WebCore::RenderElement::paintOutline):
2875         * rendering/RenderElement.h:
2876         * rendering/RenderInline.cpp:
2877         (WebCore::RenderInline::paintOutline):
2878         (WebCore::RenderInline::paintOutlineForLine):
2879         * rendering/RenderMultiColumnSet.cpp:
2880         (WebCore::RenderMultiColumnSet::paintColumnRules):
2881         * rendering/RenderObject.cpp:
2882         (WebCore::RenderObject::drawLineForBoxSide): Deleted.
2883         (WebCore::RenderObject::paintFocusRing): Deleted.
2884         (WebCore::RenderObject::paintOutline): Deleted.
2885         * rendering/RenderObject.h:
2886         * rendering/RenderTableCell.cpp:
2887         (WebCore::RenderTableCell::paintCollapsedBorders):
2888         * rendering/RenderTableSection.cpp:
2889         (WebCore::RenderTableSection::paintRowGroupBorder):
2890         * rendering/RenderTheme.h:
2891         (WebCore::RenderTheme::paintMenuListButtonDecorations):
2892         * rendering/RenderThemeIOS.h:
2893         * rendering/RenderThemeIOS.mm:
2894         (WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
2895         * rendering/RenderThemeMac.h:
2896         * rendering/RenderThemeMac.mm:
2897         (WebCore::RenderThemeMac::paintMenuListButtonDecorations):
2898
2899 2015-08-07  James Craig  <jcraig@apple.com>
2900
2901         REGRESSION(r184722) AX: WebKit video playback toolbar removed from DOM; no longer accessible to VoiceOver
2902         https://bugs.webkit.org/show_bug.cgi?id=145684
2903
2904         Reviewed by Dean Jackson.
2905
2906         Updated Apple Video controls to add an invisible but focusable button that allows VoiceOver 
2907         users (and when unblocked, keyboard users) to re-display the video controls.
2908
2909         Test: media/video-controls-show-on-kb-or-ax-event.html
2910
2911         * English.lproj/mediaControlsLocalizedStrings.js:
2912         * Modules/mediacontrols/mediaControlsApple.css:
2913         (audio::-webkit-media-show-controls):
2914         (video::-webkit-media-show-controls):
2915         * Modules/mediacontrols/mediaControlsApple.js:
2916         (Controller.prototype.createControls):
2917         (Controller.prototype.handleFullscreenChange):
2918         (Controller.prototype.handleShowControlsClick):
2919         (Controller.prototype.handleWrapperMouseMove):
2920         (Controller.prototype.updateForShowingControls):
2921         (Controller.prototype.showControls):
2922         (Controller.prototype.hideControls):
2923         (Controller.prototype.setNeedsUpdateForDisplayedWidth):
2924         * Modules/mediacontrols/mediaControlsiOS.css:
2925         (audio::-webkit-media-show-controls):
2926         (video::-webkit-media-show-controls):
2927
2928 2015-08-07  Alex Christensen  <achristensen@webkit.org>
2929
2930         Build more testing binaries with CMake on Windows
2931         https://bugs.webkit.org/show_bug.cgi?id=147799
2932
2933         Reviewed by Brent Fulgham.
2934
2935         * CMakeLists.txt:
2936         MockCDM.cpp needs to be part of WebCoreTestSupport, not WebCore.
2937         * PlatformWin.cmake:
2938         Added files needed for AppleWin port.
2939
2940 2015-08-07  Anders Carlsson  <andersca@apple.com>
2941
2942         Being moving away from using SQLTransactionStateMachine in SQLTransactionBackend
2943         https://bugs.webkit.org/show_bug.cgi?id=147798
2944
2945         Reviewed by Geoffrey Garen.
2946
2947         This is the first step towards getting rid of the state machine so we can ultimately merge SQLTransactionBackend
2948         into SQLTransaction.
2949
2950         Instead of having the state machine run our functions, just run them ourselves where we can. For states that need
2951         to be handled in the frontend, call SQLTransaction::requestTransitToState explicitly.
2952
2953         * Modules/webdatabase/SQLTransactionBackend.cpp:
2954         (WebCore::SQLTransactionBackend::stateFunctionFor):
2955         (WebCore::SQLTransactionBackend::lockAcquired):
2956         (WebCore::SQLTransactionBackend::openTransactionAndPreflight):
2957         (WebCore::SQLTransactionBackend::runStatements):
2958         (WebCore::SQLTransactionBackend::runCurrentStatement):
2959         (WebCore::SQLTransactionBackend::handleCurrentStatementError):
2960         (WebCore::SQLTransactionBackend::handleTransactionError):
2961         (WebCore::SQLTransactionBackend::postflightAndCommit):
2962         (WebCore::SQLTransactionBackend::runCurrentStatementAndGetNextState): Deleted.
2963         (WebCore::SQLTransactionBackend::nextStateForCurrentStatementError): Deleted.
2964         (WebCore::SQLTransactionBackend::nextStateForTransactionError): Deleted.
2965         (WebCore::SQLTransactionBackend::sendToFrontendState): Deleted.
2966         * Modules/webdatabase/SQLTransactionBackend.h:
2967
2968 2015-08-07  Filip Pizlo  <fpizlo@apple.com>
2969
2970         Lightweight locks should be adaptive
2971         https://bugs.webkit.org/show_bug.cgi?id=147545
2972
2973         Reviewed by Geoffrey Garen.
2974
2975         * bindings/objc/WebScriptObject.mm:
2976         (WebCore::getJSWrapper):
2977         (WebCore::addJSWrapper):
2978         (WebCore::removeJSWrapper):
2979         (WebCore::removeJSWrapperIfRetainCountOne):
2980         * platform/audio/mac/CARingBuffer.cpp:
2981         (WebCore::CARingBuffer::setCurrentFrameBounds):
2982         (WebCore::CARingBuffer::getCurrentFrameBounds):
2983         * platform/audio/mac/CARingBuffer.h:
2984         * platform/ios/wak/WAKWindow.mm:
2985         (-[WAKWindow setExposedScrollViewRect:]):
2986         (-[WAKWindow exposedScrollViewRect]):
2987
2988 2015-08-07  Myles C. Maxfield  <mmaxfield@apple.com>
2989
2990         Post-review comments on r188146
2991         https://bugs.webkit.org/show_bug.cgi?id=147793
2992
2993         Reviewed by Daniel Bates.
2994
2995         No new tests because there is no behavior change.
2996
2997         * platform/graphics/FontCache.h:
2998         * platform/graphics/cocoa/FontCacheCoreText.cpp:
2999         (WebCore::appendTrueTypeFeature):
3000         (WebCore::appendOpenTypeFeature):
3001         (WebCore::applyFontFeatureSettings):
3002         * platform/graphics/ios/FontCacheIOS.mm:
3003         (WebCore::FontCache::getSystemFontFallbackForCharacters):
3004         (WebCore::FontCache::createFontPlatformData):
3005         * platform/graphics/mac/FontCacheMac.mm:
3006         (WebCore::fontWithFamily):
3007         (WebCore::FontCache::systemFallbackForCharacters):
3008         * platform/graphics/mac/FontCustomPlatformData.cpp:
3009         (WebCore::FontCustomPlatformData::fontPlatformData):
3010         * rendering/RenderThemeIOS.mm:
3011         (WebCore::RenderThemeIOS::updateCachedSystemFontDescription):
3012
3013 2015-08-07  Myles C. Maxfield  <mmaxfield@apple.com>
3014
3015         [Cocoa] Font fallback is not language-sensitive
3016         https://bugs.webkit.org/show_bug.cgi?id=147390
3017
3018         Reviewed by Dean Jackson.
3019
3020         We need to make our font fallback code sensitive to locale.
3021
3022         This patch rolls r187729 back in. However, only particular versions of iOS and OS X are
3023         performant enough to enable this language-sensitivity.
3024
3025         This patch also applies to iOS.
3026
3027         Test: fast/text/fallback-language-han.html
3028
3029         * platform/graphics/mac/FontCacheMac.mm:
3030         (WebCore::lookupCTFont):
3031         (WebCore::FontCache::systemFallbackForCharacters):
3032         * platform/graphics/mac/FontCacheIOS.mm:
3033         (WebCore::FontCache::systemFallbackForCharacters):
3034
3035 2015-08-07  Zalan Bujtas  <zalan@apple.com>
3036
3037         RenderTheme::volumeSliderOffsetFromMuteButton should take const& RenderBox.
3038         https://bugs.webkit.org/show_bug.cgi?id=147731
3039
3040         Reviewed by Simon Fraser.
3041
3042         No change in functionality.
3043
3044         * rendering/RenderMediaControlElements.cpp:
3045         (WebCore::RenderMediaVolumeSliderContainer::layout):
3046         * rendering/RenderMediaControls.cpp:
3047         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton): Deleted.
3048         * rendering/RenderMediaControls.h:
3049         * rendering/RenderTheme.cpp:
3050         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
3051         * rendering/RenderTheme.h:
3052
3053 2015-08-07  Zalan Bujtas  <zalan@apple.com>
3054
3055         Replace RenderObject::isRooted() logic with isDescendantOf().
3056         https://bugs.webkit.org/show_bug.cgi?id=147788
3057
3058         Reviewed by Simon Fraser.
3059
3060         And some related cleanups.
3061
3062         No change in functionality.
3063
3064         * page/FrameView.cpp:
3065         (WebCore::FrameView::scheduleRelayoutOfSubtree):
3066         (WebCore::FrameView::extendedBackgroundRectForPainting):
3067         * rendering/RenderBox.cpp:
3068         (WebCore::RenderBox::paintRootBoxFillLayers):
3069         * rendering/RenderElement.cpp:
3070         (WebCore::shouldRepaintForImageAnimation):
3071         * rendering/RenderObject.cpp:
3072         (WebCore::RenderObject::isDescendantOf):
3073         (WebCore::scheduleRelayoutForSubtree):
3074         (WebCore::RenderObject::repaint):
3075         (WebCore::RenderObject::repaintRectangle):
3076         (WebCore::RenderObject::repaintSlowRepaintObject):
3077         (WebCore::RenderObject::isRooted):
3078         * rendering/RenderObject.h:
3079         * rendering/RenderView.cpp:
3080         (WebCore::RenderView::unextendedBackgroundRect):
3081         (WebCore::RenderView::backgroundRect):
3082         * rendering/RenderView.h:
3083
3084 2015-08-07  Zalan Bujtas  <zalan@apple.com>
3085
3086         Subtree layout code should use RenderElement.
3087         https://bugs.webkit.org/show_bug.cgi?id=147694
3088
3089         Reviewed by Simon Fraser.
3090
3091         Subtree layout will never begin at a RenderText, so tighten up
3092         the code to operate on RenderElements instead of RenderObjects.
3093         (This patch is based on webkit.org/b/126878)
3094
3095         No change in functionality.
3096
3097         * inspector/InspectorTimelineAgent.cpp:
3098         (WebCore::InspectorTimelineAgent::willLayout):
3099         * page/FrameView.cpp:
3100         (WebCore::FrameView::FrameView): Deleted.
3101         (WebCore::FrameView::layoutRoot): Deleted.
3102         * page/FrameView.h:
3103         * rendering/RenderBox.cpp:
3104         (WebCore::RenderBox::computeLogicalWidthInRegion):
3105         * rendering/RenderElement.cpp:
3106         (WebCore::RenderElement::clearLayoutRootIfNeeded):
3107         (WebCore::RenderElement::willBeDestroyed):
3108         * rendering/RenderElement.h:
3109         * rendering/RenderObject.cpp:
3110         (WebCore::RenderObject::clearLayoutRootIfNeeded): Deleted.
3111         (WebCore::RenderObject::willBeDestroyed): Deleted.
3112         * rendering/RenderObject.h:
3113
3114 2015-08-07  Wenson Hsieh  <wenson_hsieh@apple.com>
3115
3116         Temporarily allow programmatic input assistance for adding Gmail account
3117         https://bugs.webkit.org/show_bug.cgi?id=147792
3118
3119         Reviewed by Enrica Casucci.
3120         <rdar://problem/22126518>
3121
3122         Temporary fix for keyboard input sliding out and immediately back in upon user interaction
3123         in the Gmail 2-factor authentication page.
3124
3125         * platform/RuntimeApplicationChecksIOS.h:
3126         * platform/RuntimeApplicationChecksIOS.mm:
3127         (WebCore::applicationIsGmailAddAccountOnIOS): Added bundle ID for Gmail settings.
3128
3129 2015-08-07  Andy Estes  <aestes@apple.com>
3130
3131         Crash when following a Google search link to Twitter with Limit Adult Content enabled
3132         https://bugs.webkit.org/show_bug.cgi?id=147651
3133
3134         Reviewed by Brady Eidson.
3135
3136         When a loaded CachedRawResource gets a new client, it synthesizes the callbacks that the new client would have
3137         received while the resource was loading. Unlike a real network load, it synthesizes these callbacks in a single
3138         run loop iteration. When DocumentLoader receives a redirect, and finds substitute data in the app cache for the
3139         redirect URL, it schedules a timer that removes DocumentLoader as a client of the CachedRawResource then
3140         synthesizes its own set of CachedRawResourceClient callbacks. But since CachedRawResource has already delivered
3141         client callbacks before the app cache timer fires, DocumentLoader unexpectedly ends up getting two sets of
3142         client callbacks and badness ensues.
3143
3144         The fix is to let CachedRawResource detect if a redirect will trigger the client to load substitute data. If so,
3145         stop delivering client callbacks.
3146
3147         Layout test to follow.
3148
3149         * loader/DocumentLoader.cpp:
3150         (WebCore::DocumentLoader::syntheticRedirectReceived): If there is valid substitute data, do not continue.
3151         * loader/DocumentLoader.h:
3152         * loader/cache/CachedRawResource.cpp: Returned early if syntheticRedirectReceived() said not to continue.
3153         (WebCore::CachedRawResource::didAddClient):
3154         * loader/cache/CachedRawResourceClient.h:
3155         (WebCore::CachedRawResourceClient::syntheticRedirectReceived):
3156
3157 2015-08-06  Dean Jackson  <dino@apple.com>
3158
3159         Shadows don't draw on fillText when using a gradient fill
3160         https://bugs.webkit.org/show_bug.cgi?id=147758
3161         <rdar://problem/20860912>
3162
3163         Reviewed by Myles Maxfield.
3164
3165         Since we use a mask to render a pattern or gradient
3166         into text, any shadow was being clipped out. Change
3167         this to draw the shadow before the mask + fill operation,
3168         using a technique similar to text-shadow.
3169
3170         Test: fast/canvas/gradient-text-with-shadow.html
3171
3172         * html/canvas/CanvasRenderingContext2D.cpp:
3173         (WebCore::CanvasRenderingContext2D::drawTextInternal): Get the current shadow
3174         style, paint the text with a transformed shadow offset so that we only
3175         see the shadow and not the text, then combine with the existing pattern/gradient
3176         fill.
3177
3178 2015-08-07  Myles C. Maxfield  <mmaxfield@apple.com>
3179
3180         Implement font-feature-settings
3181         https://bugs.webkit.org/show_bug.cgi?id=147722
3182
3183         Reviewed by Simon Fraser.
3184
3185         Fonts with features are simply modeled as new font objects. Font
3186         feature information is contained within FontDescription, and our
3187         caches are correctly sensitive to this information. Therefore,
3188         we just need to make our font lookup code honor the request to
3189         use certain features.
3190
3191         This patch creates a file, FontCacheCoreText.cpp, which will be the
3192         new home of all shared OS X / iOS FontCache code. Over time, I will
3193         be moving more and more source into this file, until there is
3194         nothing left of FontCacheMac.mm and FontCacheIOS.mm. For now, the
3195         only function in this file is the code which applies font features.
3196
3197         Test: css3/font-feature-settings-preinstalled-fonts.html
3198
3199         * WebCore.xcodeproj/project.pbxproj: Add FontCacheCoreText.cpp.
3200         * platform/graphics/FontCache.h:
3201         * platform/graphics/cocoa/FontCacheCoreText.cpp: Added.
3202         (WebCore::appendTrueTypeFeature): What the name says.
3203         (WebCore::appendOpenTypeFeature): Ditto.
3204         (WebCore::applyFontFeatureSettings): Ditto.
3205         * platform/graphics/ios/FontCacheIOS.mm:
3206         (WebCore::FontCache::getSystemFontFallbackForCharacters): Call
3207         applyFontFeatureSettings().
3208         (WebCore::FontCache::createFontPlatformData): Ditto.
3209         * platform/graphics/mac/FontCacheMac.mm:
3210         (WebCore::fontWithFamily): Ditto.
3211         (WebCore::FontCache::systemFallbackForCharacters): Ditto.
3212         (WebCore::FontCache::createFontPlatformData): Ditto.
3213         * platform/graphics/mac/FontCustomPlatformData.cpp:
3214         (WebCore::FontCustomPlatformData::fontPlatformData): Ditto.
3215         * rendering/RenderThemeIOS.mm:
3216         (WebCore::RenderThemeIOS::updateCachedSystemFontDescription):
3217         Ditto.
3218
3219 2015-08-07  Commit Queue  <commit-queue@webkit.org>
3220
3221         Unreviewed, rolling out r187907.
3222         https://bugs.webkit.org/show_bug.cgi?id=147789
3223
3224         taking a different approach to the fix (Requested by estes on
3225         #webkit).
3226
3227         Reverted changeset:
3228
3229         "Crash when following a Google search link to Twitter with
3230         Limit Adult Content enabled."
3231         https://bugs.webkit.org/show_bug.cgi?id=147651
3232         http://trac.webkit.org/changeset/187907
3233
3234 2015-08-07  Alex Christensen  <achristensen@webkit.org>
3235
3236         Fix WinCairo build after r188130.
3237
3238         * platform/graphics/win/FontCustomPlatformDataCairo.cpp:
3239         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
3240         (WebCore::FontCustomPlatformData::fontPlatformData):
3241         I forgot the parameter name.
3242
3243 2015-08-07  Alex Christensen  <achristensen@webkit.org>
3244
3245         Fix WinCairo build after r188130.
3246
3247         * platform/graphics/win/FontCustomPlatformDataCairo.cpp:
3248         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
3249         (WebCore::FontCustomPlatformData::fontPlatformData):
3250         Update fontPlatformData parameters.
3251
3252 2015-08-07  Daniel Bates  <dabates@apple.com>
3253
3254         Attempt to fix the Windows build after <http://trac.webkit.org/changeset/188130>
3255         (https://bugs.webkit.org/show_bug.cgi?id=147775)
3256
3257         Include header FontDescription.h.
3258
3259         * platform/graphics/win/FontCustomPlatformData.cpp:
3260         * platform/graphics/win/FontCustomPlatformDataCairo.cpp:
3261
3262 2015-08-07  Myles C. Maxfield  <mmaxfield@apple.com>
3263
3264         Allow FontCustomPlatformData to consult with FontDescription
3265         https://bugs.webkit.org/show_bug.cgi?id=147775
3266
3267         Reviewed by Zalan Bujtas.
3268
3269         In order to implement font-feature-settings, web fonts need to be
3270         able to consult with the set of active font features. Rather than
3271         add yet another argument to all the functions in this flow, this
3272         patch passes around a reference to the FontDescription itself instead
3273         of copies of constituent members of it.
3274
3275         No new tests because there is no behavior change.
3276
3277         * css/CSSFontFaceSource.cpp:
3278         (WebCore::CSSFontFaceSource::font):
3279         * loader/cache/CachedFont.cpp:
3280         (WebCore::CachedFont::createFont):
3281         (WebCore::CachedFont::platformDataFromCustomData):
3282         * loader/cache/CachedFont.h:
3283         * loader/cache/CachedSVGFont.cpp:
3284         (WebCore::CachedSVGFont::platformDataFromCustomData):
3285         * loader/cache/CachedSVGFont.h:
3286         * platform/graphics/cairo/FontCustomPlatformData.h:
3287         * platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:
3288         (WebCore::FontCustomPlatformData::fontPlatformData):
3289         * platform/graphics/freetype/FontPlatformData.h:
3290         * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
3291         (WebCore::FontPlatformData::FontPlatformData):
3292         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
3293         (WebCore::Font::platformCreateScaledFont):
3294         * platform/graphics/mac/FontCustomPlatformData.cpp:
3295         (WebCore::FontCustomPlatformData::fontPlatformData):
3296         * platform/graphics/mac/FontCustomPlatformData.h:
3297         * platform/graphics/win/FontCustomPlatformData.cpp:
3298         (WebCore::FontCustomPlatformData::fontPlatformData):
3299         * platform/graphics/win/FontCustomPlatformData.h:
3300
3301 2015-08-07  Xabier Rodriguez Calvar  <calvaris@igalia.com>
3302
3303         [Streams API] Create CountQueuingStrategy object as per spec
3304         https://bugs.webkit.org/show_bug.cgi?id=146594
3305
3306         Reviewed by Geoffrey Garen.
3307
3308         CountQueuingStrategy is a class part of the Streams API that can be found at
3309         https://streams.spec.whatwg.org/#cqs-class. We had it as js at the tests but the spec says we have to provide it
3310         natively. The class is implemented in this patch by creating its corresponding IDL with the size method using
3311         the [CustomBinding] attribute, that does not create any bindings against the object allowing us full control to
3312         do what the spec requires (just returning 1 without any cast check). The constructor sets the highWaterMark
3313         property taking it from the argument.
3314
3315         Covered by current tests
3316         (LayoutTests/streams/reference-implementation/count-queuing-strategy.html and
3317         LayoutTests/streams/reference-implementation/brand-checks.html).
3318
3319         * CMakeLists.txt:
3320         * DerivedSources.cpp:
3321         * DerivedSources.make:
3322         * PlatformMac.cmake:
3323         * WebCore.vcxproj/WebCore.vcxproj:
3324         * WebCore.vcxproj/WebCore.vcxproj.filters:
3325         * WebCore.xcodeproj/project.pbxproj:
3326         * bindings/js/JSBindingsAllInOne.cpp: Build infrastructure.
3327         * Modules/streams/CountQueuingStrategy.h: Added.
3328         (WebCore::CountQueuingStrategy::~CountQueuingStrategy): Created empty.
3329         (WebCore::CountQueuingStrategy::size): Returns 1.
3330         * Modules/streams/CountQueuingStrategy.idl: Added.
3331         * bindings/js/JSCountQueuingStrategyCustom.cpp: Added.
3332         (WebCore::jsCountQueuingStrategyPrototypeFunctionSize): Calls WebCore::CountQueuingStrategy::size.
3333         (WebCore::constructJSCountQueuingStrategy): Constructs the strategy, copies the highWaterMark from the argument
3334         and returns it.
3335         * bindings/js/JSDOMBinding.h:
3336         (WebCore::getPropertyFromObject): Moved from ReadableJSStream.cpp.
3337         (WebCore::setPropertyToObject): Added to create a property into an object.
3338         * bindings/js/ReadableJSStream.cpp:
3339         (WebCore::getPropertyFromObject): Deleted.
3340
3341 2015-08-07  Brady Eidson  <beidson@apple.com>
3342
3343         Move concrete KeyedDecoder/Encoder implementations to WebCore.
3344         https://bugs.webkit.org/show_bug.cgi?id=147757.
3345
3346         Rubberstamped by Andy Estes.
3347
3348         * PlatformEfl.cmake:
3349         * PlatformGTK.cmake:
3350         * WebCore.xcodeproj/project.pbxproj:
3351
3352         * platform/KeyedCoding.h:
3353         (WebCore::KeyedDecoder::KeyedDecoder): Static constructor to be implemented per-platform.
3354         (WebCore::KeyedEncoder::KeyedEncoder): Ditto.
3355
3356         * platform/cf/KeyedDecoderCF.cpp: Renamed from Source/WebKit2/Shared/cf/KeyedDecoder.cpp.
3357         (WebCore::KeyedDecoder::decoder):
3358         (WebCore::KeyedDecoderCF::KeyedDecoderCF):
3359         (WebCore::KeyedDecoderCF::~KeyedDecoderCF):
3360         (WebCore::KeyedDecoderCF::decodeBytes):
3361         (WebCore::KeyedDecoderCF::decodeBool):
3362         (WebCore::KeyedDecoderCF::decodeUInt32):
3363         (WebCore::KeyedDecoderCF::decodeInt32):
3364         (WebCore::KeyedDecoderCF::decodeInt64):
3365         (WebCore::KeyedDecoderCF::decodeFloat):
3366         (WebCore::KeyedDecoderCF::decodeDouble):
3367         (WebCore::KeyedDecoderCF::decodeString):
3368         (WebCore::KeyedDecoderCF::beginObject):
3369         (WebCore::KeyedDecoderCF::endObject):
3370         (WebCore::KeyedDecoderCF::beginArray):
3371         (WebCore::KeyedDecoderCF::beginArrayElement):
3372         (WebCore::KeyedDecoderCF::endArrayElement):
3373         (WebCore::KeyedDecoderCF::endArray):
3374         * platform/cf/KeyedDecoderCF.h: Renamed from Source/WebKit2/Shared/cf/KeyedDecoder.h.
3375         
3376         * platform/cf/KeyedEncoderCF.cpp: Renamed from Source/WebKit2/Shared/cf/KeyedEncoder.cpp.
3377         (WebCore::KeyedEncoder::encoder):
3378         (WebCore::createDictionary):
3379         (WebCore::KeyedEncoderCF::KeyedEncoderCF):
3380         (WebCore::KeyedEncoderCF::~KeyedEncoderCF):
3381         (WebCore::KeyedEncoderCF::encodeBytes):
3382         (WebCore::KeyedEncoderCF::encodeBool):
3383         (WebCore::KeyedEncoderCF::encodeUInt32):
3384         (WebCore::KeyedEncoderCF::encodeInt32):
3385         (WebCore::KeyedEncoderCF::encodeInt64):
3386         (WebCore::KeyedEncoderCF::encodeFloat):
3387         (WebCore::KeyedEncoderCF::encodeDouble):
3388         (WebCore::KeyedEncoderCF::encodeString):
3389         (WebCore::KeyedEncoderCF::beginObject):
3390         (WebCore::KeyedEncoderCF::endObject):
3391         (WebCore::KeyedEncoderCF::beginArray):
3392         (WebCore::KeyedEncoderCF::beginArrayElement):
3393         (WebCore::KeyedEncoderCF::endArrayElement):
3394         (WebCore::KeyedEncoderCF::endArray):
3395         (WebCore::KeyedEncoderCF::finishEncoding):
3396         * platform/cf/KeyedEncoderCF.h: Renamed from Source/WebKit2/Shared/cf/KeyedEncoder.h.
3397         
3398         * platform/glib/KeyedDecoderGlib.cpp: Renamed from Source/WebKit2/Shared/glib/KeyedDecoder.cpp.
3399         (WebCore::KeyedDecoder::decoder):
3400         (WebCore::KeyedDecoderGlib::KeyedDecoderGlib):
3401         (WebCore::KeyedDecoderGlib::~KeyedDecoderGlib):
3402         (WebCore::KeyedDecoderGlib::dictionaryFromGVariant):
3403         (WebCore::KeyedDecoderGlib::decodeBytes):
3404         (WebCore::KeyedDecoderGlib::decodeSimpleValue):
3405         (WebCore::KeyedDecoderGlib::decodeBool):
3406         (WebCore::KeyedDecoderGlib::decodeUInt32):
3407         (WebCore::KeyedDecoderGlib::decodeInt32):
3408         (WebCore::KeyedDecoderGlib::decodeInt64):
3409         (WebCore::KeyedDecoderGlib::decodeFloat):
3410         (WebCore::KeyedDecoderGlib::decodeDouble):
3411         (WebCore::KeyedDecoderGlib::decodeString):
3412         (WebCore::KeyedDecoderGlib::beginObject):
3413         (WebCore::KeyedDecoderGlib::endObject):
3414         (WebCore::KeyedDecoderGlib::beginArray):
3415         (WebCore::KeyedDecoderGlib::beginArrayElement):
3416         (WebCore::KeyedDecoderGlib::endArrayElement):
3417         (WebCore::KeyedDecoderGlib::endArray):
3418         * platform/glib/KeyedDecoderGlib.h: Renamed from Source/WebKit2/Shared/glib/KeyedDecoder.h.
3419         
3420         * platform/glib/KeyedEncoderGlib.cpp: Renamed from Source/WebKit2/Shared/glib/KeyedEncoder.cpp.
3421         (WebCore::KeyedEncoder::encoder):
3422         (WebCore::KeyedEncoderGlib::KeyedEncoderGlib):
3423         (WebCore::KeyedEncoderGlib::~KeyedEncoderGlib):
3424         (WebCore::KeyedEncoderGlib::encodeBytes):
3425         (WebCore::KeyedEncoderGlib::encodeBool):
3426         (WebCore::KeyedEncoderGlib::encodeUInt32):
3427         (WebCore::KeyedEncoderGlib::encodeInt32):
3428         (WebCore::KeyedEncoderGlib::encodeInt64):
3429         (WebCore::KeyedEncoderGlib::encodeFloat):
3430         (WebCore::KeyedEncoderGlib::encodeDouble):
3431         (WebCore::KeyedEncoderGlib::encodeString):
3432         (WebCore::KeyedEncoderGlib::beginObject):
3433         (WebCore::KeyedEncoderGlib::endObject):
3434         (WebCore::KeyedEncoderGlib::beginArray):
3435         (WebCore::KeyedEncoderGlib::beginArrayElement):
3436         (WebCore::KeyedEncoderGlib::endArrayElement):
3437         (WebCore::KeyedEncoderGlib::endArray):
3438         (WebCore::KeyedEncoderGlib::finishEncoding):
3439         * platform/glib/KeyedEncoderGlib.h: Renamed from Source/WebKit2/Shared/glib/KeyedEncoder.h.
3440
3441 2015-08-07  Carlos Garcia Campos  <cgarcia@igalia.com>
3442
3443         [GStreamer] Do not automatically show PackageKit codec installation notifications
3444         https://bugs.webkit.org/show_bug.cgi?id=135973
3445
3446         Reviewed by Philippe Normand.
3447
3448         Add description parameter to requestInstallMissingPlugins() that
3449         will be used by the API layer.
3450