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