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