Range.compareBoundaryPoints() should throw a NotSupportedError for invalid compareHow...
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2015-08-27  Chris Dumez  <cdumez@apple.com>
2
3         Range.compareBoundaryPoints() should throw a NotSupportedError for invalid compareHow values
4         https://bugs.webkit.org/show_bug.cgi?id=148483
5
6         Reviewed by Geoffrey Garen.
7
8         Range.compareBoundaryPoints() should throw a NotSupportedError for
9         invalid compareHow values:
10         https://dom.spec.whatwg.org/#dom-range-compareboundarypoints (step 1)
11
12         Firefox and Chrome conform to the specification already.
13
14         Previously, WebKit would not throw and simply cast the value to our
15         internal CompareHow enum type. This patch aligns WebKit's behavior with
16         the DOM specificaiton and other browsers.
17
18         W3C test suite:
19         http://w3c-test.org/dom/ranges/Range-compareBoundaryPoints.html
20
21         Test: fast/dom/Range/compareBoundaryPoints-compareHow-exception.html
22
23         * bindings/scripts/CodeGenerator.pm:
24         * bindings/scripts/CodeGeneratorGObject.pm:
25         * bindings/scripts/CodeGeneratorJS.pm:
26         * bindings/scripts/CodeGeneratorObjC.pm:
27         Drop CompareHow special casing from bindings generator as we now use
28         unsigned short instead in the IDL.
29
30         * dom/Range.cpp:
31         (WebCore::Range::compareBoundaryPointsForBindings):
32         * dom/Range.h:
33         * dom/Range.idl:
34         Use "unsigned short" type instead of WebCore's CompareHow for the
35         parameter, as per the specification. On implementation side, we
36         now validate the compareHow value before casting it to a CompareHow
37         enum type. If the value is not value, we throw and abort early.
38
39 2015-08-27  Joseph Pecoraro  <pecoraro@apple.com>
40
41         Page does not update when <link> media attribute changes to no longer apply to page
42         https://bugs.webkit.org/show_bug.cgi?id=148392
43
44         Reviewed by Antti Koivisto.
45
46         Test: fast/css/link-media-attr.html
47
48         * html/HTMLLinkElement.cpp:
49         (WebCore::HTMLLinkElement::parseAttribute):
50         When the media attribute changes, recalculate styles if the link is not disabled.
51
52 2015-08-27  Zalan Bujtas  <zalan@apple.com>
53
54         Simple line layout: Text jumps sometimes on naughty strings page
55         https://bugs.webkit.org/show_bug.cgi?id=148399
56         rdar://problem/22212568
57
58         Reviewed by Antti Koivisto.
59
60         The x position we set for tab characters during painting should
61         be the same as if it was set by the inline box tree painting.
62
63         Inline box tree computes the distance from the rootbox for each line
64         and sets this value as the xPos for the TextRun.
65         Currently simple line layout does not support cases where a line
66         would have an offset, so this value is always 0.
67
68         Test: fast/text/whitespace/simple-line-layout-tab-position.html
69
70         * rendering/SimpleLineLayoutFunctions.cpp:
71         (WebCore::SimpleLineLayout::paintFlow):
72
73 2015-08-27  Alex Christensen  <achristensen@webkit.org>
74
75         Isolate Source directories in CMake build
76         https://bugs.webkit.org/show_bug.cgi?id=148389
77
78         Reviewed by Brent Fulgham.
79
80         * CMakeLists.txt:
81         Use the forwarding header copy of the inspector scripts to avoid requiring JavaScriptCore directory to exist.
82         * PlatformAppleWin.cmake:
83         Add AVFoundation sources to build.
84         * PlatformEFL.cmake:
85         Moved WebKitVersion.h generating from CMakeLists.txt because it is now only used in WebCore by EFL.
86         * PlatformWin.cmake:
87         Include ../include/private to find forwarding headers in internal build.
88
89 2015-08-27  Alex Christensen  <achristensen@webkit.org>
90
91         [Win CMake] Fix incremental build after r188673
92         https://bugs.webkit.org/show_bug.cgi?id=148539
93
94         Reviewed by Brent Fulgham.
95
96         * CMakeLists.txt:
97         * PlatformWin.cmake:
98         Use xcopy as a build step instead of file(COPY ...) to copy updated headers.
99
100 2015-08-27  Timothy Horton  <timothy_horton@apple.com>
101
102         Factor out Lookup invocation
103         https://bugs.webkit.org/show_bug.cgi?id=148509
104
105         Reviewed by Anders Carlsson.
106
107         There's a ton of duplicated code in legacy and modern WebKit to talk to
108         Lookup. And, it's pretty messy. As a first step to making it less messy,
109         make it so we only have it in one place instead of four (or two).
110
111         * editing/DictionaryPopupInfo.h:
112         Move DictionaryPopupInfo into WebCore. This was duplicated
113         in both legacy and modern WebKit.
114
115         * editing/mac/DictionaryLookup.h:
116         * editing/mac/DictionaryLookup.mm:
117         (WebCore::DictionaryLookup::rangeForSelection):
118         (WebCore::DictionaryLookup::rangeAtHitTestResult):
119         (WebCore::DictionaryLookup::stringForPDFSelection):
120         (WebCore::showPopupOrCreateAnimationController):
121         (WebCore::DictionaryLookup::showPopup):
122         (WebCore::DictionaryLookup::hidePopup):
123         (WebCore::DictionaryLookup::animationControllerForPopup):
124         (WebCore::rangeForDictionaryLookupForSelection): Deleted.
125         (WebCore::rangeForDictionaryLookupAtHitTestResult): Deleted.
126         (WebCore::dictionaryLookupForPDFSelection): Deleted.
127         Move DictionaryLookup stuff into a class for better names.
128
129         Move showPopup, hidePopup, and animationControllerForPopup here.
130         showPopup and animationControllerForPopup both bottleneck through
131         a single function, where previously we duplicated all of the code
132         for both of them, and in both legacy and modern WebKit.
133
134         showPopup and animationControllerForPopup take a block that they *may*
135         call if we have support for overriding Lookup's indicator with TextIndicator,
136         because the installation process is different per WebKit.
137
138         * page/mac/EventHandlerMac.mm:
139         (WebCore::EventHandler::selectClosestWordFromHitTestResultBasedOnLookup):
140         * testing/Internals.cpp:
141         (WebCore::Internals::rangeForDictionaryLookupAtLocation):
142         Adjust to the new naming.
143
144 2015-08-27  Jon Davis  <jond@apple.com>
145
146         Add IndexedDB to the feature status page.
147         https://bugs.webkit.org/show_bug.cgi?id=148094
148
149         Reviewed by Timothy Hatcher.
150
151         * features.json:
152
153 2015-08-27  Anders Carlsson  <andersca@apple.com>
154
155         REGRESSION (r188987): imported/mozilla/svg/filters/feConvolveMatrix-1.svg fails
156         https://bugs.webkit.org/show_bug.cgi?id=148497
157         <rdar://problem/22459541>
158
159         Reviewed by Andy Estes.
160
161         Don't return early if iterations is 0.
162
163         * platform/graphics/filters/FEConvolveMatrix.cpp:
164         (WebCore::FEConvolveMatrix::platformApplySoftware):
165
166 2015-08-27  Antti Koivisto  <antti@apple.com>
167
168         Decode redirected data URLs in web process
169         https://bugs.webkit.org/show_bug.cgi?id=148386
170
171         Reviewed by Zalan Bujtas.
172
173         Redirected data URLs still end up to networking layer for decoding. Handle them locally as well.
174
175         Covered by existing tests.
176
177         * loader/ResourceLoader.cpp:
178         (WebCore::ResourceLoader::~ResourceLoader):
179         (WebCore::ResourceLoader::finishNetworkLoad):
180
181             Factor to a function.
182
183         (WebCore::ResourceLoader::releaseResources):
184         (WebCore::ResourceLoader::willSendRequestInternal):
185
186             When receiving redirect to a data URL end the network load and decode it locally.
187
188         (WebCore::ResourceLoader::willSendRequest):
189         * loader/ResourceLoader.h:
190
191 2015-08-27  Myles C. Maxfield  <mmaxfield@apple.com>
192
193         [Cocoa] Generic font families do not consult with the user's preferred language
194         https://bugs.webkit.org/show_bug.cgi?id=148499
195         <rdar://problem/22407296>
196
197         Reviewed by Antti Koivisto.
198
199         When WebKit encounters markup like lang="zh" style="font-family: sans-serif;"
200         we currently always use Simplified Chinese fonts. However, the user may
201         have specifically selected Traditional Chinese in their user preferences.
202         In this absence of other signals, we should consult with the user
203         preferences when determining which font to pick.
204
205         Tests: fast/text/international/generic-font-family-language-simplified.html
206                fast/text/international/generic-font-family-language-traditional.html
207
208         * platform/Language.cpp:
209         (WebCore::observerMap):
210         (WebCore::overrideUserPreferredLanguages):
211         * platform/graphics/FontGenericFamilies.cpp:
212         (WebCore::computeUserPrefersSimplified):
213         (WebCore::cachedUserPrefersSimplified):
214         (WebCore::languageChanged):
215         (WebCore::genericFontFamilyForScript):
216         (WebCore::FontGenericFamilies::FontGenericFamilies):
217         * platform/text/LocaleToScriptMappingDefault.cpp:
218         (WebCore::scriptNameToCode):
219
220 2015-08-27  Myles C. Maxfield  <mmaxfield@apple.com>
221
222         Update Grid Layout to use fewer magic -1s
223         https://bugs.webkit.org/show_bug.cgi?id=148505
224
225         Reviewed by Javier Fernandez.
226
227         After r188873, there were still some -1s left in Grid Layout code. This patch cleans them
228         up after consulting with Javier Fernandez.
229
230         No new tests because there is no behavior change.
231
232         * rendering/RenderBox.cpp:
233         (WebCore::RenderBox::containingBlockLogicalWidthForContent):
234         (WebCore::RenderBox::containingBlockLogicalHeightForContent):
235         (WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
236         * rendering/RenderGrid.cpp:
237         (WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):
238
239 2015-08-27  Brian Burg  <bburg@apple.com>
240
241         Web Inspector: FrontendChannel should know its own connection type
242         https://bugs.webkit.org/show_bug.cgi?id=148482
243
244         Reviewed by Joseph Pecoraro.
245
246         To prepare for multiple attached frontends, the frontend connection should
247         be able to report its type rather than explicitly setting connection type
248         via a getter.
249
250         No behavior change, no new tests.
251
252         * inspector/InspectorController.cpp:
253         (WebCore::InspectorController::hasLocalFrontend): Ask the channel what it is.
254         (WebCore::InspectorController::hasRemoteFrontend): Ask the channel what it is.
255         (WebCore::InspectorController::connectFrontend): Use hasRemoteFrotend().
256         (WebCore::InspectorController::disconnectFrontend): Use hasRemoteFrontend().
257         (WebCore::InspectorController::InspectorController): Deleted.
258         * inspector/InspectorController.h: Initialize a few members here.
259         (WebCore::InspectorController::hasFrontend): Deleted, it was unused.
260         (WebCore::InspectorController::setHasRemoteFrontend): Deleted.
261         * inspector/WorkerInspectorController.cpp:
262         * page/PageDebuggable.cpp:
263         (WebCore::PageDebuggable::connect):
264         (WebCore::PageDebuggable::disconnect):
265         * testing/Internals.cpp: Add connectionType().
266
267 2015-08-27  Eric Carlson  <eric.carlson@apple.com>
268
269         Media Session: MediaSession constructor 'kind' argument optional
270         https://bugs.webkit.org/show_bug.cgi?id=148527
271
272         Reviewed by Jer Noble.
273
274         No new tests, updated media/session/session-creation.html.
275
276         * Modules/mediasession/MediaSession.cpp:
277         (WebCore::MediaSession::parseKind): Treat null kind "content".
278         (WebCore::MediaSession::MediaSession): Delete Document* version.
279         * Modules/mediasession/MediaSession.h: Make constructor private.
280         * Modules/mediasession/MediaSession.idl:
281
282         * WebCore.xcodeproj/project.pbxproj: Add JSMediaSessionCustom.cpp.
283
284         * bindings/js/JSMediaSessionCustom.cpp: Added.
285         (WebCore::constructJSMediaSession):
286
287         * dom/Document.cpp:
288         (WebCore::Document::defaultMediaSession): Call MediaSession::create.
289
290         * html/HTMLMediaElement.cpp:
291         (WebCore::HTMLMediaElement::session): Compare session with document.defaultMediaSession, not
292           its kind.
293         (WebCore::HTMLMediaElement::setSession): Update comments.
294
295 2015-08-27  Zalan Bujtas  <zalan@apple.com>
296
297         Simple line layout: Use float types wherever possible to match line tree.
298         https://bugs.webkit.org/show_bug.cgi?id=148444
299
300         Reviewed by Antti Koivisto.
301
302         To match inline tree output, we should try to match the data types as far as precision goes.
303
304         This patch also fixes the confusing mismatch between Run::baseline().x() and Run::rect().x(). 
305         They are both supposed to return the left edge of the run. However Run::rect().x() returns a rounded
306         LayoutUnit of the logical left, while Run::baseline().x() returns the correct logical left.          
307         With this patch 
308           1. baseline position does not include logical left anymore.
309           2. Run::rect().x() does not round the logical left coordinate anymore.
310
311         * rendering/RenderTreeAsText.cpp:
312         (WebCore::writeSimpleLine):
313         * rendering/SimpleLineLayoutFunctions.cpp:
314         (WebCore::SimpleLineLayout::paintFlow):
315         (WebCore::SimpleLineLayout::collectFlowOverflow):
316         (WebCore::SimpleLineLayout::collectAbsoluteRects):
317         (WebCore::SimpleLineLayout::showLineLayoutForFlow):
318         * rendering/SimpleLineLayoutResolver.cpp:
319         (WebCore::SimpleLineLayout::linePosition):
320         (WebCore::SimpleLineLayout::lineSize):
321         (WebCore::SimpleLineLayout::RunResolver::Run::rect):
322         (WebCore::SimpleLineLayout::LineResolver::Iterator::operator*):
323         (WebCore::SimpleLineLayout::baselinePosition): Deleted.
324         (WebCore::SimpleLineLayout::RunResolver::Run::baseline): Deleted.
325         * rendering/SimpleLineLayoutResolver.h:
326         (WebCore::SimpleLineLayout::RunResolver::Run::baselinePosition):
327         (WebCore::SimpleLineLayout::RunResolver::Run::computeBaselinePosition):
328
329 2015-08-27  Zalan Bujtas  <zalan@apple.com>
330
331         Subpixel positioned iframe's repaint area calculation problem.
332         https://bugs.webkit.org/show_bug.cgi?id=148422
333
334         When the repaint rect position is floored for iframes, we need
335         to expand the size so that it still covers the content.
336
337         Reviewed by Simon Fraser.
338
339         Test: fast/repaint/content-inside-subpixel-positioned-iframe.html
340
341         * rendering/RenderBox.cpp:
342         (WebCore::RenderBox::computeRectForRepaint):
343
344 2015-08-27  Enrica Casucci  <enrica@apple.com>
345
346         Add some new emoji with modifiers and new sequence.
347         https://bugs.webkit.org/show_bug.cgi?id=148202
348         rdar://problem/21849857
349
350         Reviewed by Sam Weinig.
351
352         Adding support for some new emoji with modifiers and
353         one new emoji sequence.
354
355         * platform/graphics/FontCascade.cpp:
356         (WebCore::FontCascade::characterRangeCodePath):
357         * platform/text/CharacterProperties.h:
358         (WebCore::isEmojiGroupCandidate):
359         (WebCore::isEmojiModifier):
360         * platform/text/TextBreakIterator.cpp:
361         (WebCore::cursorMovementIterator):
362
363 2015-08-27  Dean Jackson  <dino@apple.com>
364
365         Initial infrastructure of media controls testing
366         https://bugs.webkit.org/show_bug.cgi?id=148426
367         <rdar://problem/22417286>
368
369         Reviewed by Eric Carlson.
370
371         Expose a JS API from Internals that allows a layout test
372         to ask the controls instance what it thinks it is
373         doing.
374
375         Test: media/controls/basic.html
376
377         * Modules/mediacontrols/mediaControlsApple.js:
378         (Controller.prototype.getCurrentControlsStatus): New method. Currently
379         returns a simple JSON string.
380         * html/HTMLMediaElement.cpp:
381         (WebCore::HTMLMediaElement::getCurrentMediaControlsStatus): Call into
382         the controls instance.
383         * html/HTMLMediaElement.h:
384         * testing/Internals.cpp:
385         (WebCore::Internals::getCurrentMediaControlsStatusForElement): Link
386         between the Internals API and the HTMLMediaElement.
387         * testing/Internals.h:
388         * testing/Internals.idl:
389
390 2015-08-27  Gyuyoung Kim  <gyuyoung.kim@webkit.org>
391
392         [EFL] Move RenderThemeEfl.cpp|h from WebCore/platform/efl to WebCore/rendering
393         https://bugs.webkit.org/show_bug.cgi?id=148511
394
395         Reviewed by Csaba Osztrogonác.
396
397         To be aligned with other ports, move RenderThemeEfl.cpp|h to WebCore/rendering.
398
399         Additionally this patch fixes style errors in RenderThemeEfl.cpp
400
401         * PlatformEfl.cmake:
402         * rendering/RenderThemeEfl.cpp: Renamed from Source/WebCore/platform/efl/RenderThemeEfl.cpp.
403         (WebCore::toEdjeGroup):
404         (WebCore::setSourceGroupForEdjeObject):
405         (WebCore::RenderThemeEfl::adjustSizeConstraints):
406         (WebCore::isFormElementTooLargeToDisplay):
407         (WebCore::RenderThemeEfl::ThemePartCacheEntry::create):
408         (WebCore::RenderThemeEfl::ThemePartCacheEntry::reuse):
409         (WebCore::RenderThemeEfl::getThemePartFromCache):
410         (WebCore::RenderThemeEfl::clearThemePartCache):
411         (WebCore::RenderThemeEfl::applyEdjeStateFromForm):
412         (WebCore::RenderThemeEfl::applyEdjeRTLState):
413         (WebCore::RenderThemeEfl::isControlStyled):
414         (WebCore::RenderThemeEfl::paintThemePart):
415         (WebCore::RenderThemeEfl::create):
416         (WebCore::RenderTheme::themeForPage):
417         (WebCore::applyColorCallback):
418         (WebCore::fillColorsFromEdjeClass):
419         (WebCore::RenderThemeEfl::setColorFromThemeClass):
420         (WebCore::RenderThemeEfl::setThemePath):
421         (WebCore::RenderThemeEfl::themePath):
422         (WebCore::RenderThemeEfl::loadTheme):
423         (WebCore::RenderThemeEfl::applyPartDescriptionFallback):
424         (WebCore::RenderThemeEfl::applyPartDescription):
425         (WebCore::RenderThemeEfl::applyPartDescriptionsFrom):
426         (WebCore::RenderThemeEfl::RenderThemeEfl):
427         (WebCore::RenderThemeEfl::~RenderThemeEfl):
428         (WebCore::supportsFocus):
429         (WebCore::RenderThemeEfl::supportsFocusRing):
430         (WebCore::RenderThemeEfl::controlSupportsTints):
431         (WebCore::RenderThemeEfl::baselinePosition):
432         (WebCore::RenderThemeEfl::platformActiveSelectionBackgroundColor):
433         (WebCore::RenderThemeEfl::platformInactiveSelectionBackgroundColor):
434         (WebCore::RenderThemeEfl::platformActiveSelectionForegroundColor):
435         (WebCore::RenderThemeEfl::platformInactiveSelectionForegroundColor):
436         (WebCore::RenderThemeEfl::platformFocusRingColor):
437         (WebCore::RenderThemeEfl::supportsSelectionForegroundColors):
438         (WebCore::RenderThemeEfl::paintSliderTrack):
439         (WebCore::RenderThemeEfl::adjustSliderTrackStyle):
440         (WebCore::RenderThemeEfl::adjustSliderThumbStyle):
441         (WebCore::RenderThemeEfl::adjustSliderThumbSize):
442         (WebCore::RenderThemeEfl::sliderTickSize):
443         (WebCore::RenderThemeEfl::sliderTickOffsetFromTrackCenter):
444         (WebCore::RenderThemeEfl::sliderTickSnappingThreshold):
445         (WebCore::RenderThemeEfl::supportsDataListUI):
446         (WebCore::RenderThemeEfl::paintSliderThumb):
447         (WebCore::RenderThemeEfl::adjustCheckboxStyle):
448         (WebCore::RenderThemeEfl::paintCheckbox):
449         (WebCore::RenderThemeEfl::adjustRadioStyle):
450         (WebCore::RenderThemeEfl::paintRadio):
451         (WebCore::RenderThemeEfl::adjustButtonStyle):
452         (WebCore::RenderThemeEfl::paintButton):
453         (WebCore::RenderThemeEfl::adjustMenuListStyle):
454         (WebCore::RenderThemeEfl::paintMenuList):
455         (WebCore::RenderThemeEfl::adjustMenuListButtonStyle):
456         (WebCore::RenderThemeEfl::paintMenuListButtonDecorations):
457         (WebCore::RenderThemeEfl::adjustTextFieldStyle):
458         (WebCore::RenderThemeEfl::paintTextField):
459         (WebCore::RenderThemeEfl::adjustTextAreaStyle):
460         (WebCore::RenderThemeEfl::paintTextArea):
461         (WebCore::RenderThemeEfl::adjustSearchFieldResultsButtonStyle):
462         (WebCore::RenderThemeEfl::paintSearchFieldResultsButton):
463         (WebCore::RenderThemeEfl::adjustSearchFieldResultsDecorationPartStyle):
464         (WebCore::RenderThemeEfl::paintSearchFieldResultsDecorationPart):
465         (WebCore::RenderThemeEfl::adjustSearchFieldCancelButtonStyle):
466         (WebCore::RenderThemeEfl::paintSearchFieldCancelButton):
467         (WebCore::RenderThemeEfl::adjustSearchFieldStyle):
468         (WebCore::RenderThemeEfl::paintSearchField):
469         (WebCore::RenderThemeEfl::adjustInnerSpinButtonStyle):
470         (WebCore::RenderThemeEfl::paintInnerSpinButton):
471         (WebCore::RenderThemeEfl::setDefaultFontSize):
472         (WebCore::RenderThemeEfl::updateCachedSystemFontDescription):
473         (WebCore::RenderThemeEfl::adjustProgressBarStyle):
474         (WebCore::RenderThemeEfl::animationRepeatIntervalForProgressBar):
475         (WebCore::RenderThemeEfl::animationDurationForProgressBar):
476         (WebCore::RenderThemeEfl::paintProgressBar):
477         (WebCore::RenderThemeEfl::mediaControlsStyleSheet):
478         (WebCore::RenderThemeEfl::mediaControlsScript):
479         * rendering/RenderThemeEfl.h: Renamed from Source/WebCore/platform/efl/RenderThemeEfl.h.
480
481 2015-08-26  Mark Lam  <mark.lam@apple.com>
482
483         watchdog m_didFire state erroneously retained.
484         https://bugs.webkit.org/show_bug.cgi?id=131082
485
486         Reviewed by Geoffrey Garen.
487
488         No new tests.  The new code is covered by the JSC API tests and an existing test:
489         fast/workers/worker-terminate-forever.html
490
491         * bindings/js/JSEventListener.cpp:
492         (WebCore::JSEventListener::handleEvent):
493         * bindings/js/WorkerScriptController.cpp:
494         (WebCore::WorkerScriptController::WorkerScriptController):
495         - Always create a watchdog for the Web Worker's VM.  We need this in order to support
496           Worker.terminate().
497         (WebCore::WorkerScriptController::evaluate):
498         (WebCore::WorkerScriptController::scheduleExecutionTermination):
499         (WebCore::WorkerScriptController::isTerminatingExecution):
500         (WebCore::WorkerScriptController::forbidExecution):
501         (WebCore::WorkerScriptController::isExecutionTerminating): Deleted.
502         * bindings/js/WorkerScriptController.h:
503
504 2015-08-26  Myles C. Maxfield  <mmaxfield@apple.com>
505
506         [Cocoa] PerformanceTest Layout/RegionsShapes.html is failing
507         https://bugs.webkit.org/show_bug.cgi?id=148464
508
509         Reviewed by Andy Estes.
510
511         The test is failing because Core Text emits a warning message when you use CTFontCreateWithName()
512         and it cannot find the name you provide. However, this is exactly the situation we are creating
513         (by attempting to auto-activate a font if we could not otherwise find it). The fix is to simply
514         not use that API function in favor of using CTFontCreateWithFontDescriptor(), which does not emit
515         a warning message..
516
517         No new tests because there is no behavior change.
518
519         * platform/graphics/cocoa/FontCacheCoreText.cpp:
520         (WebCore::autoActivateFont):
521         (WebCore::FontCache::createFontPlatformData):
522
523 2015-08-26  Joseph Pecoraro  <pecoraro@apple.com>
524
525         Web Inspector: Implement tracking of active stylesheets in the frontend
526         https://bugs.webkit.org/show_bug.cgi?id=105828
527
528         Reviewed by Timothy Hatcher.
529
530         Tests: inspector/css/stylesheet-events-basic.html
531                inspector/css/stylesheet-events-imports.html
532                inspector/css/stylesheet-events-inspector-stylesheet.html
533
534         * inspector/InspectorInstrumentation.cpp:
535         (WebCore::InspectorInstrumentation::documentDetachedImpl):
536         (WebCore::InspectorInstrumentation::activeStyleSheetsUpdatedImpl):
537         * inspector/InspectorInstrumentation.h:
538         (WebCore::InspectorInstrumentation::documentDetached):
539         (WebCore::InspectorInstrumentation::activeStyleSheetsUpdated):
540         New hooks for when a document is detached or a document's style sheets are updated.
541
542         * dom/Document.cpp:
543         (WebCore::Document::prepareForDestruction):
544         Inform the inspector so the CSSAgent can remove document related data.
545
546         * dom/DocumentStyleSheetCollection.h:
547         * dom/DocumentStyleSheetCollection.cpp:
548         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
549         Inform the inspector so the CSSAgent can push stylesheet related events.
550
551         (WebCore::DocumentStyleSheetCollection::activeStyleSheetsForInspector): Added.
552         CSSStyleSheets for the inspector include non-disabled author stylesheets
553         even if they are empty.
554
555         * inspector/InspectorCSSAgent.h:
556         * inspector/InspectorCSSAgent.cpp:
557         (WebCore::InspectorCSSAgent::reset):
558         (WebCore::InspectorCSSAgent::documentDetached):
559         Handling for the new list of known document to CSSStyleSheets map.
560
561         (WebCore::InspectorCSSAgent::enable):
562         When the CSS domain is enabled, tell the frontend about known stylesheets.
563
564         (WebCore::InspectorCSSAgent::activeStyleSheetsUpdated):
565         (WebCore::InspectorCSSAgent::setActiveStyleSheetsForDocument):
566         Diff the old list of known stylesheets to the new list of stylesheets
567         for an individual document. Then send appropriate added/removed events.
568
569         (WebCore::InspectorCSSAgent::collectAllStyleSheets):
570         (WebCore::InspectorCSSAgent::collectAllDocumentStyleSheets):
571         (WebCore::InspectorCSSAgent::collectStyleSheets):
572         Collect stylesheets recursively. A stylesheet may link to other stylesheets
573         through @import statements.
574
575         (WebCore::InspectorCSSAgent::getAllStyleSheets):
576         Use the new methods, this command should go away as it will no longer be useful.
577
578         (WebCore::InspectorCSSAgent::unbindStyleSheet):
579         (WebCore::InspectorCSSAgent::bindStyleSheet):
580         Create an InspectorStyleSheet from a CSSStyleSheet and add to the appropriate lists.
581         Likewise, unbinding will remove from the appropriate lists.
582
583         (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
584         (WebCore::InspectorCSSAgent::detectOrigin):
585         When creating the inspector stylesheet, which is a <style> element,
586         it will push a StyleSheetAdded event. In the process of binding this
587         new stylesheet use the m_creatingViaInspectorStyleSheet to add it to
588         out list of Inspector Stylesheets.
589
590 2015-08-26  Myles C. Maxfield  <mmaxfield@apple.com>
591
592         Add comment to LocaleToScriptMappingDefault.cpp
593         <rdar://problem/22407296>
594
595         Unreviewed.
596
597         We currently map lang="zh" to USCRIPT_SIMPLIFIED_HAN, which is incorrect.
598         Instead, we should consult with an external source, such as the user's
599         language preferences.
600
601         * platform/text/LocaleToScriptMappingDefault.cpp:
602
603 2015-08-26  Chris Dumez  <cdumez@apple.com>
604
605         Distinguish Web IDL callback interfaces from Web IDL callback functions
606         https://bugs.webkit.org/show_bug.cgi?id=148434
607
608         Reviewed by Geoffrey Garen.
609
610         Distinguish Web IDL callback interfaces [1] from Web IDL callback
611         functions [2].
612
613         One Web-exposed difference is that when using a callback interface,
614         the user can pass either a function / callable object or a non-callable
615         object that has a method with the same name as the callback interface
616         operation:
617         https://heycam.github.io/webidl/#es-user-objects
618
619         When using a callback function, the user needs to pass a function /
620         callable object:
621         https://heycam.github.io/webidl/#es-callback-function
622
623         This patch adds a new [Callback=FunctionOnly] IDL extended attribute to
624         indicate that a callback interface should be function-only (i.e. a callback
625         function in the latest Web IDL specification). Without this IDL extended
626         attribute, the callback interface will be treated as a regular callback
627         interface. This will be needed for Bug 148415, as NodeFilter should be
628         an actual callback interface.
629
630         Note that longer term, we should really drop the old-style
631         [Callback=FunctionOnly] extendd attribute and use actual IDL callback
632         functions as per the latest Web IDL specification. However, I did not
633         do this in this patch to minimize patch size.
634
635         This patch adds Callback=FunctionOnly] IDL extended attribute to all
636         our pre-existing callback interfaces so that there is no behavior
637         change.
638
639        [1] https://heycam.github.io/webidl/#dfn-callback-interface
640        [2] https://heycam.github.io/webidl/#idl-callback-functions
641
642         * Modules/geolocation/PositionCallback.idl:
643         * Modules/geolocation/PositionErrorCallback.idl:
644         * Modules/mediastream/MediaStreamTrackSourcesCallback.idl:
645         * Modules/mediastream/NavigatorUserMediaErrorCallback.idl:
646         * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl:
647         * Modules/mediastream/RTCPeerConnectionErrorCallback.idl:
648         * Modules/mediastream/RTCSessionDescriptionCallback.idl:
649         * Modules/mediastream/RTCStatsCallback.idl:
650         * Modules/notifications/NotificationPermissionCallback.idl:
651         * Modules/quota/StorageErrorCallback.idl:
652         * Modules/quota/StorageQuotaCallback.idl:
653         * Modules/quota/StorageUsageCallback.idl:
654         * Modules/webaudio/AudioBufferCallback.idl:
655         * Modules/webdatabase/DatabaseCallback.idl:
656         * Modules/webdatabase/SQLStatementCallback.idl:
657         * Modules/webdatabase/SQLStatementErrorCallback.idl:
658         * Modules/webdatabase/SQLTransactionCallback.idl:
659         * Modules/webdatabase/SQLTransactionErrorCallback.idl:
660         * bindings/js/JSCallbackData.cpp:
661         (WebCore::JSCallbackData::invokeCallback):
662         * bindings/js/JSCallbackData.h:
663         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
664         (WebCore::JSSQLStatementErrorCallback::handleEvent):
665         * bindings/scripts/CodeGenerator.pm:
666         (trim):
667         (IsFunctionOnlyCallbackInterface):
668         * bindings/scripts/CodeGeneratorJS.pm:
669         (GenerateParametersCheckExpression):
670         (GenerateParametersCheck):
671         (GenerateCallbackImplementation):
672         * bindings/scripts/IDLAttributes.txt:
673         * bindings/scripts/test/GObject/WebKitDOMTestCallbackFunction.cpp: Added.
674         (WebKit::kit):
675         (WebKit::core):
676         (WebKit::wrapTestCallbackFunction):
677         (webkit_dom_test_callback_function_finalize):
678         (webkit_dom_test_callback_function_constructor):
679         (webkit_dom_test_callback_function_class_init):
680         (webkit_dom_test_callback_function_init):
681         (webkit_dom_test_callback_function_callback_with_no_param):
682         (webkit_dom_test_callback_function_callback_with_array_param):
683         (webkit_dom_test_callback_function_callback_with_serialized_script_value_param):
684         (webkit_dom_test_callback_function_callback_with_non_bool_return_type):
685         (webkit_dom_test_callback_function_callback_with_string_list):
686         (webkit_dom_test_callback_function_callback_with_boolean):
687         (webkit_dom_test_callback_function_callback_requires_this_to_pass):
688         * bindings/scripts/test/GObject/WebKitDOMTestCallbackFunction.h: Added.
689         * bindings/scripts/test/GObject/WebKitDOMTestCallbackFunctionPrivate.h: Copied from Source/WebCore/css/MediaQueryListListener.idl.
690         * bindings/scripts/test/JS/JSTestCallback.cpp:
691         (WebCore::JSTestCallback::callbackWithNoParam):
692         (WebCore::JSTestCallback::callbackWithArrayParam):
693         (WebCore::JSTestCallback::callbackWithSerializedScriptValueParam):
694         (WebCore::JSTestCallback::callbackWithStringList):
695         (WebCore::JSTestCallback::callbackWithBoolean):
696         (WebCore::JSTestCallback::callbackRequiresThisToPass):
697         * bindings/scripts/test/JS/JSTestCallbackFunction.cpp: Copied from Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp.
698         (WebCore::JSTestCallbackFunction::JSTestCallbackFunction):
699         (WebCore::JSTestCallbackFunction::~JSTestCallbackFunction):
700         (WebCore::JSTestCallbackFunction::callbackWithNoParam):
701         (WebCore::JSTestCallbackFunction::callbackWithArrayParam):
702         (WebCore::JSTestCallbackFunction::callbackWithSerializedScriptValueParam):
703         (WebCore::JSTestCallbackFunction::callbackWithStringList):
704         (WebCore::JSTestCallbackFunction::callbackWithBoolean):
705         (WebCore::JSTestCallbackFunction::callbackRequiresThisToPass):
706         * bindings/scripts/test/JS/JSTestCallbackFunction.h: Added.
707         (WebCore::JSTestCallbackFunction::create):
708         (WebCore::JSTestCallbackFunction::scriptExecutionContext):
709         * bindings/scripts/test/JS/JSTestObj.cpp:
710         (WebCore::JSTestObjConstructor::constructJSTestObj):
711         (WebCore::JSTestObjConstructor::finishCreation):
712         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
713         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
714         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
715         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArg):
716         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArg):
717         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionAndOptionalArg):
718         (WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArg):
719         (WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArg):
720         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
721         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
722         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2): Deleted.
723         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10): Deleted.
724         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
725         (WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
726         * bindings/scripts/test/ObjC/DOMTestCallbackFunction.h: Copied from Source/WebCore/html/VoidCallback.idl.
727         * bindings/scripts/test/ObjC/DOMTestCallbackFunction.mm: Added.
728         (-[DOMTestCallbackFunction dealloc]):
729         (-[DOMTestCallbackFunction finalize]):
730         (-[DOMTestCallbackFunction callbackWithNoParam]):
731         (-[DOMTestCallbackFunction callbackWithArrayParam:]):
732         (-[DOMTestCallbackFunction callbackWithSerializedScriptValueParam:strArg:]):
733         (-[DOMTestCallbackFunction callbackWithNonBoolReturnType:]):
734         (-[DOMTestCallbackFunction customCallback:class6Param:]):
735         (-[DOMTestCallbackFunction callbackWithStringList:]):
736         (-[DOMTestCallbackFunction callbackWithBoolean:]):
737         (-[DOMTestCallbackFunction callbackRequiresThisToPass:testNodeParam:]):
738         (core):
739         (kit):
740         * bindings/scripts/test/ObjC/DOMTestCallbackFunctionInternal.h: Copied from Source/WebCore/html/VoidCallback.idl.
741         * bindings/scripts/test/TestCallbackFunction.idl: Copied from Source/WebCore/Modules/webdatabase/DatabaseCallback.idl.
742         * bindings/scripts/test/TestObj.idl:
743         * css/MediaQueryListListener.idl:
744         * dom/RequestAnimationFrameCallback.idl:
745         * dom/StringCallback.idl:
746         * html/VoidCallback.idl:
747
748 2015-08-26  Beth Dakin  <bdakin@apple.com>
749
750         REGRESSION: Safari navigates after a cancelled force click
751         https://bugs.webkit.org/show_bug.cgi?id=148491
752         -and corresponding-
753         rdar://problem/22394323
754
755         Reviewed by Tim Horton.
756
757         This regression was introduced on El Capitan because AppKit sends ‘cancel’ to 
758         gesture recognizer BEFORE it sends the mouseUp. So the ImmediateActionStage needs 
759         to track whether a cancel happened after updates or without any updates since they 
760         signify different things. 
761
762         Don’t perform default behaviors when the stage is ActionCancelledAfterUpdate.
763         * page/EventHandler.cpp:
764         (WebCore::EventHandler::handleMouseReleaseEvent):
765
766         New possible stages, and new getter for the current stage.
767         * page/EventHandler.h:
768         (WebCore::EventHandler::immediateActionStage):
769
770 2015-08-26  Anders Carlsson  <andersca@apple.com>
771
772         Fix failing tests.
773
774         Add fallback code for the case when iterations is 0.
775
776         * platform/graphics/filters/FEConvolveMatrix.cpp:
777         (WebCore::FEConvolveMatrix::platformApplySoftware):
778
779 2015-08-26  Anders Carlsson  <andersca@apple.com>
780
781         Use WorkQueue::concurrentApply in FEConvolveMatrix
782         https://bugs.webkit.org/show_bug.cgi?id=148490
783
784         Reviewed by Tim Horton.
785
786         Using WorkQueue::concurrentApply lets us simplify the code a lot, and measurements show
787         no difference in performance. The striding has been slightly tweaked to make more sense
788         (we no longer divide up the remainder across some of the iterations, instead we just process 
789         it separately last).
790
791         * platform/graphics/filters/FEConvolveMatrix.cpp:
792         (WebCore::FEConvolveMatrix::platformApplySoftware):
793         (WebCore::FEConvolveMatrix::setInteriorPixelsWorker): Deleted.
794         * platform/graphics/filters/FEConvolveMatrix.h:
795
796 2015-08-26  Eric Carlson  <eric.carlson@apple.com>
797
798         Media Session: make MediaSessionMetadata a class
799         https://bugs.webkit.org/show_bug.cgi?id=148486
800
801         Reviewed by Jer Noble.
802
803         No new tests, no observable changes.
804
805         * Modules/mediasession/MediaSessionMetadata.h: Make it a class.
806         * page/ChromeClient.h: struct MediaSessionMetadata -> class MediaSessionMetadata.
807
808 2015-08-26  Per Arne Vollan  <peavo@outlook.com>
809
810         [Curl] Deadlock when downloading.
811         https://bugs.webkit.org/show_bug.cgi?id=148438
812
813         Reviewed by Alex Christensen.
814
815         A thread should not try locking when it already has got the lock,
816         this will create a deadlock.
817
818         * platform/network/curl/CurlDownload.cpp:
819         (WebCore::CurlDownloadManager::startThreadIfNeeded):
820         (WebCore::CurlDownloadManager::stopThread):
821         (WebCore::CurlDownloadManager::stopThreadIfIdle):
822         (WebCore::CurlDownload::~CurlDownload):
823         (WebCore::CurlDownload::moveFileToDestination):
824         (WebCore::CurlDownload::didFail):
825         * platform/network/curl/CurlDownload.h:
826         (WebCore::CurlDownloadManager::getMultiHandle):
827         (WebCore::CurlDownloadManager::runThread):
828         (WebCore::CurlDownloadManager::setRunThread):
829
830 2015-08-26  Jinyoung Hur  <hur.ims@navercorp.com>
831
832         [Cairo] Accelerated canvas should fall back to non-accelerated canvas on creation failure
833         https://bugs.webkit.org/show_bug.cgi?id=148476
834
835         Reviewed by Brent Fulgham.
836
837         Cairo-gl backed surface might fail to be created with large dimensions, e.g., 50x32000, depending on 
838         the gl implementations. In case of Mac port, ImageBufferCG falls back to a software surface when it fails to create
839         IOSurface, an accelerated surface. Though the unaccelerated surface could be slower, it would be better
840         to create a working surface than nothing.
841
842         Because the max dimensions of gl texture might vary among the OpenGL implementations, below test can't guarantee
843         the verification of behavior difference depending on the running platform.
844
845         Test: fast/canvas/canvas-large-dimensions.html
846
847         * platform/graphics/cairo/ImageBufferCairo.cpp:
848         (WebCore::ImageBuffer::ImageBuffer):
849
850 2015-08-26  Commit Queue  <commit-queue@webkit.org>
851
852         Unreviewed, rolling out r188960.
853         https://bugs.webkit.org/show_bug.cgi?id=148479
854
855         Broke all the tests (Requested by ap on #webkit).
856
857         Reverted changeset:
858
859         "Add some new emoji with modifiers and new sequence."
860         https://bugs.webkit.org/show_bug.cgi?id=148202
861         http://trac.webkit.org/changeset/188960
862
863 2015-08-25  Philippe Normand  <pnormand@igalia.com>
864
865         [GStreamer] "method" property for the webkitwebsrc element
866         https://bugs.webkit.org/show_bug.cgi?id=148433
867
868         Reviewed by Carlos Garcia Campos.
869
870         This new property is sometimes used by the GStreamer uridownloader
871         when time synchronization is required for DASH. The same property
872         was added to the souphttpsrc element.
873
874         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
875         (webKitWebSrcSetProperty):
876         (webKitWebSrcGetProperty):
877         (webKitWebSrcStart):
878
879 2015-08-26  Enrica Casucci  <enrica@apple.com>
880
881         Add some new emoji with modifiers and new sequence.
882         https://bugs.webkit.org/show_bug.cgi?id=148202
883         rdar://problem/21849857
884
885         Reviewed by Sam Weinig.
886
887         Adding support for some new emoji with modifiers and
888         one new emoji sequence.
889
890         * platform/graphics/FontCascade.cpp:
891         (WebCore::FontCascade::characterRangeCodePath):
892         * platform/text/CharacterProperties.h:
893         (WebCore::isEmojiGroupCandidate):
894         (WebCore::isEmojiModifier):
895         * platform/text/TextBreakIterator.cpp:
896         (WebCore::cursorMovementIterator):
897
898 2015-08-25  Nan Wang  <n_wang@apple.com>
899
900         AX: Enable accessibility/aria-controls.html test for mac
901         https://bugs.webkit.org/show_bug.cgi?id=148458
902
903         Reviewed by Chris Fleizach.
904
905         Re-enabled accessibility/aria-controls.html test for mac.
906
907         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
908         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
909
910 2015-08-25  Zalan Bujtas  <zalan@apple.com>
911
912         Using the filter functional notation for background images results in wrong background-size rendering
913         https://bugs.webkit.org/show_bug.cgi?id=148221
914         rdar://problem/22379518
915
916         Reviewed by Daniel Bates.
917
918         Do not ignore the size argument, when the filter image is being drawn onto the context.
919         When the size is ignored, we end up painting the image with its native size while the filter
920         is applied on the size of the generated image.
921
922         Test: fast/filter-image/background-filter-image.html
923
924         * css/CSSFilterImageValue.cpp:
925         (WebCore::CSSFilterImageValue::image):
926
927 2015-08-25  Carlos Garcia Campos  <cgarcia@igalia.com>
928
929         IconDatabase: syncThreadMainLoop() is unlocking m_syncLock twice when thread termination is requested
930         https://bugs.webkit.org/show_bug.cgi?id=148429
931
932         Reviewed by Filip Pizlo.
933
934         The lock is released an locked on every loop iteration, and then
935         unlocked again after the loop. There's an early break in the loop
936         when thread termination is requested that happens after the lock
937         is released but before is locked again, so that the unlock after
938         the loop is trying to unlock the lock again. This was not a
939         problem before, but the new Lock has an assertion to ensure that a
940         lock is not released twice.
941
942         * loader/icon/IconDatabase.cpp:
943         (WebCore::IconDatabase::syncThreadMainLoop): Clean up the thread
944         and return instead of breaking the loop when thread termination is
945         requested.
946
947 2015-08-25  Nan Wang  <n_wang@apple.com>
948
949         [Mac] accessibility/document-attributes.html fails
950         https://bugs.webkit.org/show_bug.cgi?id=116636
951
952         Reviewed by Chris Fleizach.
953
954         Re-enabled accessibility/document-attributes.html test.
955
956         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
957         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
958
959 2015-08-25  Csaba Osztrogonác  <ossy@webkit.org>
960
961         Fix the !ENABLE(VIDEO) build after r188693
962         https://bugs.webkit.org/show_bug.cgi?id=148424
963
964         Reviewed by Tim Horton.
965
966         * page/ChromeClient.h:
967
968 2015-08-25  Eric Carlson  <eric.carlson@apple.com>
969
970         [iOS] Don't clear AVPlayerItem when pausing if AirPlay is active
971         https://bugs.webkit.org/show_bug.cgi?id=148319
972
973         Reviewed by Jer Noble.
974
975         * html/HTMLMediaElement.cpp:
976         (WebCore::HTMLMediaElement::purgeBufferedDataIfPossible): Do nothing if the session
977           is allowed to load data when in the background and we are not under memory pressure.
978
979         * platform/audio/ios/MediaSessionManagerIOS.mm:
980         (WebCore::MediaSessionManageriOS::sessionCanLoadMedia): Call base class.
981
982 2015-08-25  Csaba Osztrogonác  <ossy@webkit.org>
983
984         Fix the !ENABLE(CSS_REGIONS) build after r188663
985         https://bugs.webkit.org/show_bug.cgi?id=148425
986
987         Reviewed by Chris Dumez.
988
989         * bindings/js/JSDOMNamedFlowCollectionCustom.cpp:
990
991 2015-08-24  Brent Fulgham  <bfulgham@apple.com>
992
993         Wheel events stop propagating when target element is removed from DOM
994         https://bugs.webkit.org/show_bug.cgi?id=148384
995         <rdar://problem/19732211>
996
997         Reviewed by David Hyatt.
998
999         Tested by tiled-drawing/scrolling/latched-to-deleted-node.html
1000
1001         We need to reset our latching state if the targeted node is removed from the DOM.
1002         Add a check in 'platformPrepareForWheelEvents' that checks if the expected latching
1003         target node was already removed from the DOM. If it was, we should not send events
1004         to it, and should reset latching state so we can attach to the next relevant node.
1005
1006         * dom/Element.cpp:
1007         (WebCore::Element::removedFrom): Remove any latched wheel event state objects that
1008         match the current element.
1009         * page/MainFrame.cpp:
1010         (WebCore::MainFrame::removeLatchingStateForTarget): Remove any latched wheel event
1011         state structures that match the passed wheel event target.
1012         * page/MainFrame.h:
1013
1014 2015-08-25  Wenson Hsieh  <wenson_hsieh@apple.com>
1015
1016         Fix crash due to search field disappearing when showing results menu
1017         https://bugs.webkit.org/show_bug.cgi?id=148410
1018         <rdar://problem/22399850>
1019
1020         Reviewed by Brent Fulgham.
1021
1022         When clicking on the results button of a search field that hides upon being focused, WebKit will crash because we
1023         attempt to toggle the results menu using the search field's renderer which is null. This is addressed by adding a null
1024         check to make sure the search field has not been hidden before toggling the menu.
1025
1026         Test: fast/forms/search/search-results-hidden-crash.html
1027
1028         * html/shadow/TextControlInnerElements.cpp:
1029         (WebCore::SearchFieldResultsButtonElement::defaultEventHandler): Add a null check for the search field's renderer.
1030
1031 2015-08-25  Chris Dumez  <cdumez@apple.com>
1032
1033         compareDocumentPosition() should report PRECEDING or FOLLOWING information even if nodes are disconnected
1034         https://bugs.webkit.org/show_bug.cgi?id=119316
1035
1036         Reviewed by Darin Adler.
1037
1038         As the latest DOM specification, compareDocumentPosition() should report
1039         PRECEDING or FOLLOWING information even if nodes are disconnected:
1040         - http://dom.spec.whatwg.org/#dom-node-comparedocumentposition
1041
1042         This behavior is consistent with both IE10, Firefox and Chrome.
1043
1044         The implementation relies on the comparison of cryptographic hashes
1045         (SHA1) of the Node pointers so that the results returned by the function
1046         are consistent. We don't compare Node pointers directly as it was done
1047         previously in r153660 to avoid leaking information about our memory
1048         model to the Web.
1049
1050         Test: fast/dom/compare-document-position-disconnected-nodes.html
1051         W3C Test suite: http://w3c-test.org/dom/nodes/Node-compareDocumentPosition.html
1052
1053         * dom/Node.cpp:
1054         (WebCore::hashPointer):
1055         (WebCore::compareDetachedElementsPosition):
1056         (WebCore::Node::compareDocumentPosition):
1057
1058 2015-08-25  Chris Dumez  <cdumez@apple.com>
1059
1060         Add support for callback interfaces using other callback names than "handleEvent"
1061         https://bugs.webkit.org/show_bug.cgi?id=148418
1062
1063         Reviewed by Ryosuke Niwa.
1064
1065         Add support for callback interfaces using other callback names than
1066         "handleEvent" [1].
1067
1068         This is a pre-requirement for Bug 148415, as NodeFilter's callback
1069         function name is "acceptNode":
1070         - https://dom.spec.whatwg.org/#interface-nodefilter
1071
1072         [1] https://heycam.github.io/webidl/#es-user-objects
1073
1074         * bindings/js/JSCallbackData.cpp:
1075         (WebCore::JSCallbackData::invokeCallback):
1076         * bindings/js/JSCallbackData.h:
1077         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
1078         (WebCore::JSSQLStatementErrorCallback::handleEvent):
1079         * bindings/scripts/CodeGeneratorJS.pm:
1080         (GenerateCallbackImplementation):
1081         * bindings/scripts/test/JS/JSTestCallback.cpp:
1082         (WebCore::JSTestCallback::callbackWithNoParam):
1083         (WebCore::JSTestCallback::callbackWithArrayParam):
1084         (WebCore::JSTestCallback::callbackWithSerializedScriptValueParam):
1085         (WebCore::JSTestCallback::callbackWithStringList):
1086         (WebCore::JSTestCallback::callbackWithBoolean):
1087         (WebCore::JSTestCallback::callbackRequiresThisToPass):
1088
1089 2015-08-25  Chris Dumez  <cdumez@apple.com>
1090
1091         Get rid of custom bindings for RequestAnimationFrameCallback.handleEvent()
1092         https://bugs.webkit.org/show_bug.cgi?id=148417
1093
1094         Reviewed by Sam Weinig.
1095
1096         Get rid of custom bindings for RequestAnimationFrameCallback.handleEvent()
1097         by improving the bindings generator. In this case, the problem was that the
1098         bindings generator did not know how to convert a double parameter into a
1099         JSValue. The new code leverages the pre-existing NativeToJSValue subroutine
1100         to do the conversion instead of duplicating complex support here.
1101
1102         * WebCore.xcodeproj/project.pbxproj:
1103         * bindings/js/JSRequestAnimationFrameCallbackCustom.cpp: Removed.
1104         * bindings/scripts/CodeGeneratorJS.pm:
1105         (GenerateCallbackImplementation):
1106         * bindings/scripts/test/JS/JSTestCallback.cpp:
1107         (WebCore::JSTestCallback::callbackWithArrayParam):
1108         (WebCore::JSTestCallback::callbackWithSerializedScriptValueParam):
1109         (WebCore::JSTestCallback::callbackWithStringList):
1110         (WebCore::JSTestCallback::callbackWithBoolean):
1111         (WebCore::JSTestCallback::callbackRequiresThisToPass):
1112         * dom/RequestAnimationFrameCallback.idl:
1113
1114 2015-08-24  Jinyoung Hur  <hur.ims@navercorp.com>
1115
1116         Clear cairo-gl surface for initialization
1117         https://bugs.webkit.org/show_bug.cgi?id=148307
1118
1119         Reviewed by Martin Robinson.
1120
1121         A cairo-gl surface that is created from an uninitialized texture, should be cleared before use.
1122         A texture memory created by calling glTexImage2D with null data parameter, is uninitialized.
1123         And cairo_gl_surface_create_for_texture doesn't clear the provided texture for initialization.
1124         So it seems safe to clear the surface explicitly.
1125
1126         It is hard to verify this behavior change because the texture memory status is undefined. Undefined means
1127         it can be either initialized or not, though mostly initialized in my experiences.
1128
1129         * platform/graphics/cairo/ImageBufferCairo.cpp:
1130         (WebCore::clearSurface):
1131         (WebCore::createCairoGLSurface):
1132
1133 2015-08-24  Myles C. Maxfield  <mmaxfield@apple.com>
1134
1135         Fix the build fixes in r188875 and r188874
1136
1137         Unreviewed.
1138
1139         * platform/graphics/cocoa/FontCacheCoreText.cpp:
1140         (WebCore::FontCache::createFontPlatformData):
1141         * platform/graphics/mac/FontCacheMac.mm:
1142         (WebCore::toNSFontTraits):
1143
1144 2015-08-24  Tim Horton  <timothy_horton@apple.com>
1145
1146         Try to fix the build.
1147
1148         * platform/graphics/cocoa/FontCacheCoreText.cpp:
1149         (WebCore::FontCache::createFontPlatformData):
1150
1151 2015-08-24  Tim Horton  <timothy_horton@apple.com>
1152
1153         Fix the build.
1154
1155         * platform/graphics/mac/FontCacheMac.mm:
1156         (WebCore::toNSFontWeight):
1157         (WebCore::toNSFontTraits):
1158         (WebCore::platformFontWithFamilySpecialCase):
1159
1160 2015-08-24  Myles C. Maxfield  <mmaxfield@apple.com>
1161
1162         Use Optionals in RenderBox height computations
1163         https://bugs.webkit.org/show_bug.cgi?id=147253
1164
1165         Reviewed by David Hyatt.
1166
1167         No new tests because there is no behavior change.
1168
1169         * rendering/RenderBox.cpp:
1170         (WebCore::RenderBox::constrainLogicalHeightByMinMax):
1171         (WebCore::RenderBox::constrainContentBoxLogicalHeightByMinMax):
1172         (WebCore::RenderBox::overrideContainingBlockContentLogicalWidth):
1173         (WebCore::RenderBox::overrideContainingBlockContentLogicalHeight):
1174         (WebCore::RenderBox::setOverrideContainingBlockContentLogicalWidth):
1175         (WebCore::RenderBox::setOverrideContainingBlockContentLogicalHeight):
1176         (WebCore::RenderBox::adjustContentBoxLogicalHeightForBoxSizing):
1177         (WebCore::RenderBox::containingBlockLogicalWidthForContent):
1178         (WebCore::RenderBox::containingBlockLogicalHeightForContent):
1179         (WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
1180         (WebCore::RenderBox::computeLogicalHeight):
1181         (WebCore::RenderBox::computeLogicalHeightUsing):
1182         (WebCore::RenderBox::computeContentLogicalHeight):
1183         (WebCore::RenderBox::computeIntrinsicLogicalContentHeightUsing):
1184         (WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing):
1185         (WebCore::RenderBox::computePercentageLogicalHeight):
1186         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
1187         (WebCore::RenderBox::availableLogicalHeight):
1188         (WebCore::RenderBox::availableLogicalHeightUsing):
1189         (WebCore::RenderBox::computePositionedLogicalHeightUsing):
1190         (WebCore::logicalWidthIsResolvable):
1191         (WebCore::RenderBox::percentageLogicalHeightIsResolvableFromBlock):
1192         (WebCore::RenderBox::hasDefiniteLogicalHeight):
1193         * rendering/RenderBox.h:
1194         * rendering/RenderFlexibleBox.cpp:
1195         (WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
1196         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
1197         (WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
1198         * rendering/RenderFlexibleBox.h:
1199         * rendering/RenderFlowThread.cpp:
1200         (WebCore::RenderFlowThread::addForcedRegionBreak):
1201         * rendering/RenderGrid.cpp:
1202         (WebCore::RenderGrid::computeUsedBreadthOfSpecifiedLength):
1203         (WebCore::RenderGrid::logicalContentHeightForChild):
1204         (WebCore::RenderGrid::minContentForChild):
1205         (WebCore::RenderGrid::maxContentForChild):
1206         (WebCore::RenderGrid::layoutGridItems):
1207         (WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):
1208         * rendering/RenderMultiColumnSet.cpp:
1209         (WebCore::RenderMultiColumnSet::calculateMaxColumnHeight):
1210         * rendering/RenderTable.cpp:
1211         (WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
1212
1213 2015-08-24  Anders Carlsson  <andersca@apple.com>
1214
1215         Fix failing tests.
1216         
1217         It's OK to call runStateMachine with an idle state. Just bail early when that happens.
1218
1219         * Modules/webdatabase/SQLTransactionStateMachine.h:
1220         (WebCore::SQLTransactionStateMachine<T>::runStateMachine):
1221
1222 2015-08-24  Myles C. Maxfield  <mmaxfield@apple.com>
1223
1224         [Cocoa] Unify FontCache
1225         https://bugs.webkit.org/show_bug.cgi?id=148358
1226
1227         Reviewed by Antti Koivisto.
1228
1229         Move all the duplicate code to FontCacheCoreText.
1230
1231         No new tests because there is no behavior change.
1232
1233         * platform/graphics/FontCache.h:
1234         * platform/graphics/cocoa/FontCacheCoreText.cpp:
1235         (WebCore::fontWeightFromCoreText):
1236         (WebCore::toTraitsMask):
1237         (WebCore::isFontWeightBold):
1238         (WebCore::toCoreTextFontWeight):
1239         (WebCore::invalidateFontCache):
1240         (WebCore::fontCacheRegisteredFontsChangedNotificationCallback):
1241         (WebCore::FontCache::platformInit):
1242         (WebCore::FontCache::systemFontFamilies):
1243         (WebCore::computeTraits):
1244         (WebCore::computeNecessarySynthesis):
1245         (WebCore::fontWhitelist):
1246         (WebCore::FontCache::setFontWhitelist):
1247         (WebCore::platformFontLookupWithFamily):
1248         (WebCore::fontWithFamily):
1249         (WebCore::shouldAutoActivateFontIfNeeded):
1250         (WebCore::FontCache::createFontPlatformData):
1251         (WebCore::fallbackDedupSet):
1252         (WebCore::FontCache::platformPurgeInactiveFontData):
1253         (WebCore::FontCache::systemFallbackForCharacters):
1254         * platform/graphics/ios/FontCacheIOS.mm:
1255         (WebCore::platformInvalidateFontCache):
1256         (WebCore::getSystemFontFallbackForCharacters):
1257         (WebCore::platformLookupFallbackFont):
1258         (WebCore::FontCache::lastResortFallbackFont):
1259         (WebCore::FontCache::weightOfCTFont):
1260         (WebCore::platformFontWithFamilySpecialCase):
1261         (WebCore::FontCache::platformInit): Deleted.
1262         (WebCore::isFontWeightBold): Deleted.
1263         (WebCore::FontCache::getSystemFontFallbackForCharacters): Deleted.
1264         (WebCore::FontCache::systemFallbackForCharacters): Deleted.
1265         (WebCore::FontCache::systemFontFamilies): Deleted.
1266         (WebCore::createCTFontWithTextStyle): Deleted.
1267         (WebCore::createCTFontWithFamilyNameAndWeight): Deleted.
1268         (WebCore::toCTFontWeight): Deleted.
1269         (WebCore::FontCache::createFontPlatformData): Deleted.
1270         * platform/graphics/mac/FontCacheMac.mm:
1271         (WebCore::appkitWeightToFontWeight):
1272         (WebCore::toNSFontTraits):
1273         (WebCore::platformFontWithFamilySpecialCase):
1274         (WebCore::platformFontWithFamily):
1275         (WebCore::platformInvalidateFontCache):
1276         (WebCore::platformLookupFallbackFont):
1277         (WebCore::FontCache::lastResortFallbackFont):
1278         (WebCore::toCoreTextFontWeight): Deleted.
1279         (WebCore::fontWhitelist): Deleted.
1280         (WebCore::FontCache::setFontWhitelist): Deleted.
1281         (WebCore::fontWithFamilySpecialCase): Deleted.
1282         (WebCore::fontWithFamily): Deleted.
1283         (WebCore::invalidateFontCache): Deleted.
1284         (WebCore::fontCacheRegisteredFontsChangedNotificationCallback): Deleted.
1285         (WebCore::FontCache::platformInit): Deleted.
1286         (WebCore::isAppKitFontWeightBold): Deleted.
1287         (WebCore::shouldAutoActivateFontIfNeeded): Deleted.
1288         (WebCore::fallbackDedupSet): Deleted.
1289         (WebCore::FontCache::platformPurgeInactiveFontData): Deleted.
1290         (WebCore::lookupCTFont): Deleted.
1291         (WebCore::FontCache::systemFallbackForCharacters): Deleted.
1292         (WebCore::FontCache::systemFontFamilies): Deleted.
1293         (WebCore::FontCache::createFontPlatformData): Deleted.
1294         * rendering/RenderThemeIOS.mm:
1295         (WebCore::RenderThemeIOS::updateCachedSystemFontDescription):
1296         (WebCore::fromCTFontWeight): Deleted.
1297
1298 2015-08-24  Wenson Hsieh  <wenson_hsieh@apple.com>
1299
1300         Unreviewed, attempt to fix iOS build after r188860
1301
1302         * page/WheelEventDeltaFilter.cpp:
1303         (WebCore::WheelEventDeltaFilter::isFilteringDeltas): Moved implementation out of header.
1304         (WebCore::WheelEventDeltaFilter::filteredDelta): Moved implementation out of header.
1305         * page/WheelEventDeltaFilter.h:
1306         (WebCore::WheelEventDeltaFilter::isFilteringDeltas): Deleted.
1307         (WebCore::WheelEventDeltaFilter::filteredDelta): Deleted.
1308
1309 2015-08-21  Anders Carlsson  <andersca@apple.com>
1310
1311         Remove unused return values from SQLTransaction state functions
1312         https://bugs.webkit.org/show_bug.cgi?id=148344
1313
1314         Reviewed by Tim Horton.
1315
1316         * Modules/webdatabase/SQLTransaction.cpp:
1317         (WebCore::SQLTransaction::deliverTransactionCallback):
1318         (WebCore::SQLTransaction::deliverTransactionErrorCallback):
1319         (WebCore::SQLTransaction::deliverStatementCallback):
1320         (WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
1321         (WebCore::SQLTransaction::deliverSuccessCallback):
1322         (WebCore::SQLTransaction::unreachableState):
1323         * Modules/webdatabase/SQLTransaction.h:
1324         * Modules/webdatabase/SQLTransactionBackend.cpp:
1325         (WebCore::SQLTransactionBackend::acquireLock):
1326         (WebCore::SQLTransactionBackend::openTransactionAndPreflight):
1327         (WebCore::SQLTransactionBackend::runStatements):
1328         (WebCore::SQLTransactionBackend::cleanupAndTerminate):
1329         (WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
1330         (WebCore::SQLTransactionBackend::unreachableState):
1331         * Modules/webdatabase/SQLTransactionBackend.h:
1332         * Modules/webdatabase/SQLTransactionStateMachine.h:
1333         (WebCore::SQLTransactionStateMachine<T>::runStateMachine):
1334
1335 2015-08-24  Wenson Hsieh  <wenson_hsieh@apple.com>
1336
1337         Unreviewed, fix build after r188860
1338
1339         * page/mac/WheelEventDeltaFilterMac.mm:
1340         (WebCore::WheelEventDeltaFilterMac::updateFromDelta): Convert argument explicitly to an NSPoint.
1341
1342 2015-08-24  Wenson Hsieh  <wenson_hsieh@apple.com>
1343
1344         Use _NSScrollingPredominantAxisFilter for wheel event filtering on Mac
1345         https://bugs.webkit.org/show_bug.cgi?id=147320
1346
1347         Reviewed by Simon Fraser.
1348
1349         Refactored to use a predominant axis filter instead of a predominant axis tracker. This allows us to
1350         employ AppKit's _NSScrollingPredominantAxisFilter when possible, and use the wheel event delta tracker
1351         as a fallback. Here, we refactor EventHandler to use the new filters for overflow scrolling and replace
1352         the MainFrame's WheelEventDeltaTracker with an appropriate type of WheelEventDeltaFilter.
1353
1354         In the case where an _NSScrollingPredominantAxisFilter is unavailable, the platform-invariant wheel
1355         event delta filter simply uses the existing wheel event delta tracker to compute the current predominant
1356         axis. It uses the predominant axis to determine which axis (if any) should have its delta zeroed out.
1357
1358         This patch also introduces NSScrollingInputFilterSPI.h, which either imports the internal input filter
1359         header from AppKit or declares relevant interfaces and functions.
1360
1361         No new tests, since this change does not add new functionality.
1362
1363         * CMakeLists.txt: Add page/WheelEventDeltaFilter.cpp.
1364         * WebCore.vcxproj/WebCore.vcxproj: Add WheelEventDeltaFilter.cpp and WheelEventDeltaFilter.h.
1365         * WebCore.vcxproj/WebCore.vcxproj.filters: Add WheelEventDeltaFilter.cpp and WheelEventDeltaFilter.h.
1366         * WebCore.xcodeproj/project.pbxproj: Add WheelEventDeltaFilter.cpp, WheelEventDeltaFilter.h, and their Mac counterparts.
1367         * page/EventHandler.cpp:
1368         (WebCore::didScrollInScrollableArea): Refactored to no longer handle axes separately.
1369         (WebCore::handleWheelEventInAppropriateEnclosingBox): Ditto.
1370         (WebCore::EventHandler::platformRecordWheelEvent): Refactored to update the wheel delta filter.
1371         (WebCore::EventHandler::clearLatchedState): Ditto.
1372         (WebCore::EventHandler::defaultWheelEventHandler): Refactored to use wheel delta filters. No longer splits wheel events
1373                 and handles them on separate axes.
1374         (WebCore::didScrollInScrollableAreaForSingleAxis): Deleted.
1375         (WebCore::handleWheelEventInAppropriateEnclosingBoxForSingleAxis): Deleted.
1376         * page/EventHandler.h:
1377         * page/MainFrame.cpp:
1378         (WebCore::MainFrame::MainFrame): Initializes the appropriate type of WheelEventDeltaFilter.
1379         * page/MainFrame.h:
1380         * page/WheelEventDeltaFilter.cpp: Added.
1381         (WebCore::WheelEventDeltaFilter::WheelEventDeltaFilter):
1382         (WebCore::WheelEventDeltaFilter::~WheelEventDeltaFilter):
1383         (WebCore::WheelEventDeltaFilter::create):
1384         (WebCore::BasicWheelEventDeltaFilter::BasicWheelEventDeltaFilter):
1385         (WebCore::BasicWheelEventDeltaFilter::updateFromDelta):
1386         (WebCore::BasicWheelEventDeltaFilter::beginFilteringDeltas):
1387         (WebCore::BasicWheelEventDeltaFilter::endFilteringDeltas):
1388         (WebCore::deltaIsPredominantlyVertical):
1389         (WebCore::BasicWheelEventDeltaFilter::dominantScrollGestureDirection):
1390         * page/WheelEventDeltaFilter.h: Refactored WheelEventDeltaTracker logic to work as a filter instead.
1391         * page/mac/EventHandlerMac.mm:
1392         (WebCore::EventHandler::platformPrepareForWheelEvents): Refactored to use wheel delta filters.
1393         (WebCore::EventHandler::platformRecordWheelEvent): Ditto.
1394         * page/mac/WheelEventDeltaFilterMac.h: Wraps the new _NSScrollingPredominantAxisFilter.
1395         * page/mac/WheelEventDeltaFilterMac.mm: Added.
1396         (WebCore::WheelEventDeltaFilterMac::WheelEventDeltaFilterMac):
1397         (WebCore::WheelEventDeltaFilterMac::beginFilteringDeltas):
1398         (WebCore::WheelEventDeltaFilterMac::updateFromDelta):
1399         (WebCore::WheelEventDeltaFilterMac::endFilteringDeltas):
1400         * platform/PlatformWheelEvent.h:
1401         (WebCore::PlatformWheelEvent::copyWithDeltas): Used to create a copy of the platform wheel event with filtered deltas.
1402         (WebCore::PlatformWheelEvent::copyIgnoringHorizontalDelta): Deleted. No longer necessary, since we won't be handling wheel
1403                 events on separate axes.
1404         (WebCore::PlatformWheelEvent::copyIgnoringVerticalDelta): Ditto.
1405         * platform/spi/mac/NSScrollingInputFilterSPI.h: Added.
1406
1407 2015-08-24  Michael Catanzaro  <mcatanzaro@igalia.com>
1408
1409         Unreviewed, fix typo in a comment ("unsused" -> "unused")
1410
1411         * bindings/scripts/CodeGeneratorGObject.pm:
1412         (GenerateFunction):
1413
1414 2015-08-24  Carlos Garcia Campos  <cgarcia@igalia.com>
1415
1416         Unreviewed. Fix cairo performance regression introduced in r188379.
1417
1418         A missing break in a switch was making us to use High image
1419         interpolation quality by default.
1420
1421         * platform/graphics/cairo/PlatformContextCairo.cpp:
1422         (WebCore::PlatformContextCairo::drawSurfaceToContext): Add the
1423         missing break.
1424
1425 2015-08-24  Carlos Garcia Campos  <cgarcia@igalia.com>
1426
1427         Unreviewed. Fix GObject DOM bindings API break test after r188809.
1428
1429         element.getElementsByTagName and element.getElementsByClassName
1430         were also changed in r188809 to return an HTMLCollection. The
1431         build didn't fail because we don't use those in our tests, but the
1432         API breaks need to be fixed too.
1433
1434         * bindings/gobject/WebKitDOMDeprecated.cpp:
1435         (webkit_dom_element_get_elements_by_tag_name):
1436         (webkit_dom_element_get_elements_by_tag_name_ns):
1437         (webkit_dom_element_get_elements_by_class_name):
1438         * bindings/gobject/WebKitDOMDeprecated.h:
1439         * bindings/gobject/WebKitDOMDeprecated.symbols:
1440         * bindings/gobject/webkitdom.symbols:
1441         * bindings/scripts/CodeGeneratorGObject.pm:
1442         (GetEffectiveFunctionName):
1443
1444 2015-08-24  Carlos Garcia Campos  <cgarcia@igalia.com>
1445
1446         Unreviewed. Fix GObject DOM bindings API break test after r188735.
1447
1448         document.getElementsByClassName returns an HTMLCollection since
1449         r188735. So, rename it as
1450         webkit_dom_document_get_elements_by_class_name_as_html_collection,
1451         and deprecate the old method returning a NodeList.
1452
1453         * bindings/gobject/WebKitDOMDeprecated.cpp:
1454         (webkit_dom_document_get_elements_by_class_name): Use the
1455         implementation returning a NodeList.
1456         * bindings/gobject/WebKitDOMDeprecated.h:
1457         * bindings/gobject/WebKitDOMDeprecated.symbols: Add new symbols.
1458         * bindings/gobject/webkitdom.symbols: Ditto.
1459         * bindings/scripts/CodeGeneratorGObject.pm:
1460         (GetEffectiveFunctionName): Also check getElementsByClassName.
1461
1462 2015-08-24  Carlos Garcia Campos  <cgarcia@igalia.com>
1463
1464         Unreviewed. Fix GTK+ build after r188711.
1465
1466         Since r188711 document.createNodeIterator and
1467         document.createTreeWalker, don't raise exceptions anymore. Keep
1468         the GError parameter even if it's ignored to not break the API
1469         compatibility.
1470
1471         * bindings/scripts/CodeGeneratorGObject.pm:
1472         (FunctionUsedToRaiseException):
1473         (GenerateFunction):
1474
1475 2015-08-24  Carlos Garcia Campos  <cgarcia@igalia.com>
1476
1477         Unreviewed. Fix GTK+ build after r188809.
1478
1479         document.getElementsByTagName returns an HTMLCollection since
1480         r188809. So, rename it as
1481         webkit_dom_document_get_elements_by_tag_name_as_html_collection,
1482         and deprecate the old methods returning a NodeList.
1483
1484         * bindings/gobject/WebKitDOMDeprecated.cpp:
1485         (webkit_dom_document_get_elements_by_tag_name): Use the
1486         implementation returning a NodeList.
1487         (webkit_dom_document_get_elements_by_tag_name_ns): Ditto.
1488         * bindings/gobject/WebKitDOMDeprecated.h:
1489         * bindings/gobject/WebKitDOMDeprecated.symbols: Add new symbols.
1490         * bindings/gobject/webkitdom.symbols: Ditto.
1491         * bindings/scripts/CodeGeneratorGObject.pm:
1492         (GetEffectiveFunctionName): Bring back this method, now that we
1493         have deprecated API again and add the checks for
1494         getElementsByTagName methods.
1495         (GenerateFunction): Use GetEffectiveFunctionName().
1496
1497 2015-08-24  Myles C. Maxfield  <mmaxfield@apple.com>
1498
1499         @font-face related cleanup
1500         https://bugs.webkit.org/show_bug.cgi?id=148355
1501
1502         Reviewed by Darin Adler.
1503
1504         This patch cleans up much of our code related to web fonts. In general, it
1505         migrates to using C++ for-each style loops, uses Ref instead of RefPtr when
1506         things can't be nullptr, migrates to C++ Rvalue-references instead of
1507         PassRefPtr, and refactors CSSFontSelector::addFontFaceRule() to use helper
1508         functions.
1509
1510         No new tests because there is no behavior change.
1511
1512         * css/CSSFontFace.cpp:
1513         (WebCore::CSSFontFace::fontLoaded): Use a C++ for-each loop.
1514         * css/CSSFontFace.h:
1515         (WebCore::CSSFontFace::create): Use C++ Rvalue-references instead of
1516         PassRefPtr.
1517         (WebCore::CSSFontFace::CSSFontFace): Ditto.
1518         * css/CSSFontSelector.cpp:
1519         (WebCore::computeTraitsMask): Migrated a chunk of
1520         CSSFontSelector::addFontFaceRule() into this helper function.
1521         (WebCore::createFontFace): Ditto.
1522         (WebCore::familyNameFromPrimitive): Ditto.
1523         (WebCore::CSSFontSelector::addFontFaceRule): Call the newly-created helper
1524         functions. In addition, migrate to Refs instead of RefPtrs.
1525         (WebCore::compareFontFaces): Migrate to references instead of pointers.
1526         (WebCore::CSSFontSelector::getFontFace): Migrate to Refs instead of
1527         RefPtrs. Also use C++ for-each loops.
1528         * css/CSSFontSelector.h:
1529         * css/CSSSegmentedFontFace.cpp:
1530         (WebCore::CSSSegmentedFontFace::~CSSSegmentedFontFace): Use C++ for-each
1531         loops.
1532         (WebCore::CSSSegmentedFontFace::isValid): Ditto.
1533         (WebCore::CSSSegmentedFontFace::appendFontFace): Migrate to Rvalue-
1534         references instead of PassRefPtr.
1535         * css/CSSSegmentedFontFace.h:
1536         * platform/graphics/FontCache.h:
1537         * platform/graphics/cocoa/FontCacheCoreText.cpp:
1538         (WebCore::FontCache::getTraitsInFamily): Return the result instead of being
1539         passed an out parameter.
1540         * platform/graphics/freetype/FontCacheFreeType.cpp:
1541         (WebCore::FontCache::getTraitsInFamily): Ditto.
1542         * platform/graphics/win/FontCacheWin.cpp:
1543         (WebCore::traitsInFamilyEnumProc): Ditto.
1544         (WebCore::FontCache::getTraitsInFamily): Ditto.
1545
1546 2015-08-23  Andy Estes  <aestes@apple.com>
1547
1548         [Content Filtering] REGRESSION (r182356): Provisional URL is incorrect in didReceiveServerRedirectForProvisionalLoadForFrame when Content Filtering is enabled
1549         https://bugs.webkit.org/show_bug.cgi?id=147872
1550         rdar://problem/22044000
1551
1552         Reviewed by Dan Bernstein.
1553
1554         Passed the ResourceLoader request URL to dispatchDidReceiveServerRedirectForProvisionalLoad().
1555
1556         New API test: ContentFiltering.ServerRedirect
1557
1558         * WebCore.xcodeproj/project.pbxproj:
1559         * loader/EmptyClients.h:
1560         * loader/FrameLoaderClient.h: Added a URL argument to dispatchDidReceiveServerRedirectForProvisionalLoad().
1561         * loader/ResourceLoader.cpp:
1562         (WebCore::ResourceLoader::willSendRequestInternal): Passed the request URL to dispatchDidReceiveServerRedirectForProvisionalLoad().
1563         * testing/Internals.cpp:
1564         (WebCore::Internals::Internals): Stopped calling MockContentFilter::ensureInstalled().
1565         * testing/MockContentFilterSettings.cpp:
1566         (WebCore::MockContentFilterSettings::setEnabled): Called MockContentFilter::ensureInstalled() to ensure the
1567         mock is installed whenever the filter is enabled.
1568         * testing/MockContentFilterSettings.h: Exported member functions used by TestWebKitAPI.
1569
1570 2015-08-23  Geoffrey Garen  <ggaren@apple.com>
1571
1572         Unreviewed, rolling back in r188803.
1573
1574         "Debugger's VM should never be null"
1575         https://bugs.webkit.org/show_bug.cgi?id=148341
1576         http://trac.webkit.org/changeset/188803
1577
1578         * bindings/js/WorkerScriptDebugServer.cpp:
1579         (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
1580         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
1581         (WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
1582         * inspector/PageScriptDebugServer.cpp:
1583         (WebCore::PageScriptDebugServer::PageScriptDebugServer):
1584         (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
1585         (WebCore::PageScriptDebugServer::didPause):
1586         (WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
1587
1588 2015-08-23  Antti Koivisto  <antti@apple.com>
1589
1590         Remove SVGFrameLoaderClient and dataProtocolFrameLoader
1591         https://bugs.webkit.org/show_bug.cgi?id=148370
1592
1593         Reviewed by Darin Adler.
1594
1595         With data protocol handled internally in WebKit these are no longer needed.
1596
1597         This mostly reverts code changes from http://trac.webkit.org/179626 keeping the tests.
1598
1599         * loader/FrameLoaderClient.h:
1600         * loader/ResourceLoader.cpp:
1601         (WebCore::ResourceLoader::loadDataURL):
1602         (WebCore::ResourceLoader::setDataBufferingPolicy):
1603         (WebCore::ResourceLoader::dataProtocolFrameLoader): Deleted.
1604         * loader/ResourceLoader.h:
1605         (WebCore::ResourceLoader::documentLoader):
1606         (WebCore::ResourceLoader::originalRequest):
1607         * loader/cache/CachedImage.cpp:
1608         (WebCore::CachedImage::finishLoading):
1609         * svg/graphics/SVGImage.cpp:
1610         (WebCore::SVGImage::dataChanged):
1611         * svg/graphics/SVGImage.h:
1612         * svg/graphics/SVGImageClients.h:
1613
1614 2015-08-22  Chris Dumez  <cdumez@apple.com>
1615
1616         NodeList should not have a named getter
1617         https://bugs.webkit.org/show_bug.cgi?id=148117
1618
1619         Reviewed by Darin Adler.
1620
1621         Drop the named property getter on NodeList to match the specification:
1622         https://dom.spec.whatwg.org/#interface-nodelist
1623
1624         This change could be a bit risky but:
1625         1. Firefox and IE never had this named property getter on NodeList.
1626         2. Chrome successfuly dropped this named property getter in early 2014:
1627            https://src.chromium.org/viewvc/blink?revision=166356&view=revision
1628         3. Our named property getter on NodeList is only partly functional:
1629            It only matches by 'id' attribute, not by 'name' attribute.
1630         4. Our APIs that were wrongly returning a NodeList instead of an
1631            HTMLCollection (getElementsByTagName() / getElementsByClassName())
1632            have been fixed in r188735 and r188809. HTMLCollection does have
1633            a named property getter.
1634         5. This named getter adds code complexity.
1635
1636         * bindings/js/JSNodeListCustom.cpp:
1637         (WebCore::createWrapper): Deleted.
1638         * dom/ChildNodeList.cpp:
1639         (WebCore::ChildNodeList::invalidateCache): Deleted.
1640         * dom/ChildNodeList.h:
1641         * dom/LiveNodeList.cpp:
1642         * dom/LiveNodeList.h:
1643         * dom/NodeList.h:
1644         * dom/NodeList.idl:
1645         * dom/StaticNodeList.cpp:
1646         (WebCore::StaticElementList::length): Deleted.
1647         (WebCore::StaticElementList::item): Deleted.
1648         * dom/StaticNodeList.h:
1649         * html/HTMLCollection.h:
1650
1651 2015-08-22  Andreas Kling  <akling@apple.com>
1652
1653         [JSC] Static hash tables should be 100% compile-time constant.
1654         <https://webkit.org/b/148359>
1655
1656         Reviewed by Michael Saboff.
1657
1658         Adjust WebCore bindings generator for new JSC::HashTable layout
1659         and rebaseline the bindings tests for that change.
1660
1661         * bindings/scripts/CodeGeneratorJS.pm:
1662         (GenerateHashTable):
1663         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
1664         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
1665         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
1666         * bindings/scripts/test/JS/JSTestException.cpp:
1667         * bindings/scripts/test/JS/JSTestInterface.cpp:
1668         * bindings/scripts/test/JS/JSTestObj.cpp:
1669         * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
1670         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
1671
1672 2015-08-22  Michael Catanzaro  <mcatanzaro@igalia.com>
1673
1674         Unreviewed, fix build without ENABLE_CSS_GRID_LAYOUT after r188582
1675
1676         * rendering/RenderBox.cpp:
1677         (WebCore::RenderBox::computeLogicalWidthInRegion):
1678
1679 2015-08-22  Zalan Bujtas  <zalan@apple.com>
1680
1681         Page::renderTreeSize() does not include anonymous renderers.
1682         https://bugs.webkit.org/show_bug.cgi?id=148352
1683
1684         Reviewed by Andreas Kling.
1685
1686         Anonymous renderes take the document as their node. Instead
1687         of checking whether the node is the document, we could just check
1688         if the RenderView is available.
1689
1690         * rendering/RenderObject.cpp:
1691         (WebCore::RenderObject::RenderObject):
1692         (WebCore::RenderObject::~RenderObject):
1693         * rendering/RenderView.cpp:
1694         (WebCore::RenderView::RenderView): Deleted.
1695         * rendering/RenderView.h: Include the RenderView in render tree size as well.
1696
1697 2015-08-22  Antti Koivisto  <antti@apple.com>
1698
1699         Decode data URLs in web process
1700         https://bugs.webkit.org/show_bug.cgi?id=148128
1701
1702         Reviewed by Darin Adler.
1703
1704         We currenly send data URLs to networking layer for decoding. This involves a long and slow roundtrip through IPC and API layers.
1705
1706         * WebCore.xcodeproj/project.pbxproj:
1707         * loader/ResourceLoadScheduler.cpp:
1708         (WebCore::ResourceLoadScheduler::maybeLoadQuickLookResource): Deleted.
1709
1710             Remove this awkward interface for WebKit2.
1711
1712         * loader/ResourceLoadScheduler.h:
1713         * loader/ResourceLoader.cpp:
1714         (WebCore::ResourceLoader::start):
1715         (WebCore::ResourceLoader::loadDataURL):
1716
1717             Load using DataURLDecoder.
1718
1719         * loader/ResourceLoader.h:
1720
1721             Make start() public and export it so it can be called directly from WebKit2.
1722
1723         * platform/network/DataURLDecoder.cpp: Added.
1724         (WebCore::DataURLDecoder::decodeQueue):
1725         (WebCore::DataURLDecoder::DecodeTask::DecodeTask):
1726         (WebCore::DataURLDecoder::createDecodeTask):
1727
1728             Parse data URL metadata and initialize the decode task.
1729
1730         (WebCore::DataURLDecoder::decodeBase64):
1731         (WebCore::DataURLDecoder::decodeEscaped):
1732         (WebCore::DataURLDecoder::decode):
1733
1734             Asynchronously decode in a concurrent distpatch queue.
1735
1736         * platform/network/DataURLDecoder.h: Added.
1737         * platform/network/ios/QuickLook.h:
1738         * platform/text/DecodeEscapeSequences.h:
1739         (WebCore::URLEscapeSequence::findEndOfRun):
1740         (WebCore::URLEscapeSequence::decodeRun):
1741
1742             Factor buffer generation to a function.
1743
1744         (WebCore::decodeEscapeSequences):
1745         (WebCore::decodeURLEscapeSequencesAsData):
1746
1747             Add decode function that produces bytes instead of a String.
1748
1749 2015-08-21  Commit Queue  <commit-queue@webkit.org>
1750
1751         Unreviewed, rolling out r188792 and r188803.
1752         https://bugs.webkit.org/show_bug.cgi?id=148347
1753
1754         broke lots of tests, ggaren is going to investigate and reland
1755         (Requested by thorton on #webkit).
1756
1757         Reverted changesets:
1758
1759         "Unify code paths for manually deleting all code"
1760         https://bugs.webkit.org/show_bug.cgi?id=148280
1761         http://trac.webkit.org/changeset/188792
1762
1763         "Debugger's VM should never be null"
1764         https://bugs.webkit.org/show_bug.cgi?id=148341
1765         http://trac.webkit.org/changeset/188803
1766
1767 2015-08-21  Chris Dumez  <cdumez@apple.com>
1768
1769         document.getElementsByTagName should return an HTMLCollection
1770         https://bugs.webkit.org/show_bug.cgi?id=110611
1771
1772         Reviewed by Darin Adler.
1773
1774         Update getElementsByTagName*() to return an HTMLCollection as per
1775         the specification:
1776         - https://dom.spec.whatwg.org/#interface-document
1777         - https://dom.spec.whatwg.org/#interface-element
1778
1779         Firefox, Chrome and IE all match the specification but WebKit was
1780         returning a NodeList.
1781
1782         Performance:
1783         DOM/get-elements-by-tag-name-traversal-uncached.html is ~4.5% faster.
1784
1785         Test: fast/dom/getElementsByTagName-return-type.html
1786
1787         * CMakeLists.txt:
1788         * WebCore.vcxproj/WebCore.vcxproj:
1789         * WebCore.vcxproj/WebCore.vcxproj.filters:
1790         * WebCore.xcodeproj/project.pbxproj:
1791         Rename TagNodeList.* to TagCollection.*
1792
1793         * accessibility/AccessibilityRenderObject.cpp:
1794         (WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
1795         Update the function to use descendantsOfType<>() instead of
1796         getElementsByTagName(). The code is both shorter and more efficient.
1797
1798         * dom/ContainerNode.cpp:
1799         (WebCore::ContainerNode::getElementsByTagName):
1800         (WebCore::ContainerNode::getElementsByTagNameForObjC):
1801         (WebCore::ContainerNode::getElementsByTagNameNS):
1802         (WebCore::ContainerNode::getElementsByTagNameNSForObjC):
1803         * dom/ContainerNode.h:
1804         - Have getElementsByTagName*() return an HTMLCollection.
1805         - Introduce versions used by the ObjC bindings that return a NodeList
1806           for API compatibility reasons.
1807         - Move the localName null check to the *ForObjC versions and use a
1808           simple assertion for the non ObjC versions. This gets rid of a
1809           branch for our JS bindings as this function is hot. It is currently
1810           impossible to get a null AtomicString from our JS bindings code because
1811           getElementsByTagName() and getElementsByTagName(undefined) in JS end up
1812           calling ContainerNode::getElementsByTagName("undefined").
1813           Also getElementsByTagName(null) in JS ends up calling
1814           ContainerNode::getElementsByTagName("null"). I have also gotten rid of
1815           most of the getElementsByTagName() calls from our native code. The
1816           remaining ones either call with a non-null AtomicString and they now
1817           have a null-check.
1818
1819         * dom/Document.idl:
1820         * dom/Element.idl:
1821         Have getElementsByTagName*() return an HTMLCollection except for ObjC
1822         bindings in order to maintain legacy API compatibility.
1823
1824         * dom/Node.cpp:
1825         (WebCore::Document::invalidateNodeListAndCollectionCaches):
1826         (WebCore::NodeListsNodeData::invalidateCaches):
1827         HTMLCollection::invalidateCache(attr) is now renamed to
1828         invalidateCacheForAttribute(attr) to avoid ambiguity with
1829         HTMLCollection::invalidateCache(doc) and for consistency
1830         with LiveNodeList.
1831
1832         * dom/NodeRareData.h:
1833         Make necessary updates now that TagNodeList is renamed to TagCollection
1834         and is an HTMLCollection.
1835
1836         * dom/TagCollection.cpp: Renamed from Source/WebCore/dom/TagNodeList.cpp.
1837         * dom/TagCollection.h: Renamed from Source/WebCore/dom/TagNodeList.h.
1838         Rename TagNodeList / HTMLTagNodeList to TagCollection / HTMLTagCollection
1839         and inherit CachedHTMLCollection instead of CachedLiveNodeList.
1840
1841         * editing/Editor.cpp:
1842         (WebCore::Editor::applyEditingStyleToBodyElement):
1843         Update code using getElementsByTagName() to reflect the fact that it
1844         now returns an HTMLCollection and item() returns an Element*. This
1845         function is matching any Element with "body" tag, not just HTMLBodyElement
1846         so I did not refactor it to use an descendantsOfType<HTMLBodyElement>().
1847         It is not clear to me what the intention of this code is.
1848
1849         * editing/markup.cpp:
1850         (WebCore::createFragmentFromMarkup):
1851         * editing/markup.h:
1852         - Return a Ref<> instead of a PassRefPtr<> as it can never return null.
1853         - Use descendantsOfType<HTMLAttachmentElement>(fragment) instead of
1854           getElementsByTagName() as it results in both shorter and more efficient
1855           code.
1856
1857         * html/CollectionType.h:
1858         Add new ByTag / ByHTMLTag collection types for TagCollection /
1859         HTMLTabCollection.
1860
1861         * html/GenericCachedHTMLCollection.cpp:
1862         (WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches):
1863         Handle new ByTag / ByHTMLTag collection types in the switch statement.
1864
1865         * html/HTMLCollection.cpp:
1866         (WebCore::invalidationTypeExcludingIdAndNameAttributes):
1867         (WebCore::HTMLCollection::~HTMLCollection):
1868         Handle new ByTag / ByHTMLTag collection types in switch statements.
1869
1870         (WebCore::HTMLCollection::tags):
1871         Add a null-check on localName() before calling getElementsByTagName().
1872         This function is currently for ObjC bindings only.
1873
1874         * html/HTMLPlugInImageElement.cpp:
1875         (WebCore::HTMLPlugInImageElement::restartSimilarPlugIns):
1876         Simplify / optimize the code by using descendantsOfType<HTMLPlugInImageElement>()
1877         instead of getElementsByTagName().
1878
1879         * html/MediaDocument.cpp:
1880         (WebCore::descendantVideoElement):
1881         Use descendantsOfType<HTMLVideoElement> instead of getElementsByTagNameNS().
1882
1883 2015-08-21  Geoffrey Garen  <ggaren@apple.com>
1884
1885         Debugger's VM should never be null
1886         https://bugs.webkit.org/show_bug.cgi?id=148341
1887
1888         Reviewed by Joseph Pecoraro.
1889
1890         It doesn't make sense for a Debugger's VM to be null, and code related
1891         to maintaining that illusion just caused the Web Inspector to crash on
1892         launch (https://bugs.webkit.org/show_bug.cgi?id=148312). So, let's stop
1893         doing that.
1894
1895         Now, Debugger requires its subclass to provide a never-null VM&.
1896
1897         * bindings/js/WorkerScriptDebugServer.cpp:
1898         (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
1899         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
1900         (WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
1901         * inspector/PageScriptDebugServer.cpp:
1902         (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
1903         (WebCore::PageScriptDebugServer::didPause):
1904
1905 2015-08-21  Myles C. Maxfield  <mmaxfield@apple.com>
1906
1907         [OS X] Remove dead code from FontCache::systemFallbackForCharacters()
1908         https://bugs.webkit.org/show_bug.cgi?id=148218
1909
1910         Reviewed by Daniel Bates.
1911
1912         lookupCTFont() in FontCacheMac.mm will always return the best font (because
1913         CTFontCreateForCharactersWithLanguage() does so). Also, all fonts that will
1914         be created on WebKit's behalf are already printer fonts.
1915
1916         No new tests because there is no behavior change.
1917
1918         * platform/graphics/mac/FontCacheMac.mm:
1919         (WebCore::FontCache::systemFallbackForCharacters): Deleted.
1920
1921 2015-08-21  Anders Carlsson  <andersca@apple.com>
1922
1923         Fix build.
1924
1925         * platform/network/win/NetworkStateNotifierWin.cpp:
1926         (WebCore::NetworkStateNotifier::addrChangeCallback):
1927         (WebCore::NetworkStateNotifier::callAddressChanged): Deleted.
1928
1929 2015-08-21  Myles C. Maxfield  <mmaxfield@apple.com>
1930
1931         [Cocoa] Clean up Font class
1932         https://bugs.webkit.org/show_bug.cgi?id=148216
1933
1934         Reviewed by Dean Jackson.
1935
1936         No new tests because there is no behavior change.
1937
1938         * platform/graphics/Font.cpp:
1939         (WebCore::Font::platformGlyphInit): Deleted.
1940         * platform/graphics/Font.h:
1941         * platform/graphics/cocoa/FontCocoa.mm:
1942         (WebCore::Font::platformInit):
1943
1944 2015-08-21  Myles C. Maxfield  <mmaxfield@apple.com>
1945
1946         [Cocoa] Unify two more FontCache functions
1947         https://bugs.webkit.org/show_bug.cgi?id=148217
1948
1949         Reviewed by Dean Jackson.
1950
1951         Move duplicated code from FontCacheMac and FontCacheIOS into
1952         FontCacheCoreText.
1953
1954         No new tests because there is no behavior change.
1955
1956         * platform/graphics/cocoa/FontCacheCoreText.cpp:
1957         (WebCore::toTraitsMask):
1958         (WebCore::isFontWeightBold):
1959         (WebCore::FontCache::similarFont):
1960         (WebCore::FontCache::getTraitsInFamily):
1961         * platform/graphics/ios/FontCacheIOS.mm:
1962         (WebCore::FontCache::similarFont): Deleted.
1963         (WebCore::toTraitsMask): Deleted.
1964         (WebCore::FontCache::getTraitsInFamily): Deleted.
1965         * platform/graphics/mac/FontCacheMac.mm:
1966         (WebCore::toTraitsMask): Deleted.
1967         (WebCore::FontCache::similarFont): Deleted.
1968         (WebCore::FontCache::getTraitsInFamily): Deleted.
1969
1970 2015-08-21  Anders Carlsson  <andersca@apple.com>
1971
1972         Stop using the old callOnMainThread variant on Windows
1973         https://bugs.webkit.org/show_bug.cgi?id=148332
1974
1975         Reviewed by Tim Horton.
1976
1977         * platform/network/cf/CookieStorageCFNet.cpp:
1978         (WebCore::notifyCookiesChanged):
1979         (WebCore::notifyCookiesChangedOnMainThread): Deleted.
1980         * platform/network/win/NetworkStateNotifierWin.cpp:
1981         (WebCore::NetworkStateNotifier::addrChangeCallback):
1982
1983 2015-08-20  Matt Rajca  <mrajca@apple.com>
1984
1985         Media Session: let UI clients change the volume of the focused media element
1986         https://bugs.webkit.org/show_bug.cgi?id=148289
1987
1988         Reviewed by Tim Horton.
1989
1990         * page/Page.cpp:
1991         (WebCore::Page::setVolumeOfMediaElement):
1992         * page/Page.h:
1993
1994 2015-08-21  Anders Carlsson  <andersca@apple.com>
1995
1996         Get rid of uses of the old callOnMainThread function that takes a function ptr + context
1997         https://bugs.webkit.org/show_bug.cgi?id=148324
1998
1999         Reviewed by Tim Horton.
2000
2001         * Modules/webaudio/AsyncAudioDecoder.cpp:
2002         (WebCore::AsyncAudioDecoder::DecodingTask::decode):
2003         (WebCore::AsyncAudioDecoder::DecodingTask::notifyCompleteDispatch): Deleted.
2004         * Modules/webaudio/AsyncAudioDecoder.h:
2005         * Modules/webaudio/OfflineAudioDestinationNode.cpp:
2006         (WebCore::OfflineAudioDestinationNode::offlineRender):
2007         (WebCore::OfflineAudioDestinationNode::notifyCompleteDispatch): Deleted.
2008         * Modules/webaudio/OfflineAudioDestinationNode.h:
2009         * Modules/webaudio/ScriptProcessorNode.cpp:
2010         (WebCore::ScriptProcessorNode::process):
2011         (WebCore::ScriptProcessorNode::fireProcessEventDispatch): Deleted.
2012         * Modules/webaudio/ScriptProcessorNode.h:
2013         * Modules/webdatabase/DatabaseTracker.cpp:
2014         (WebCore::DatabaseTracker::scheduleForNotification):
2015         (WebCore::DatabaseTracker::notifyDatabasesChanged):
2016         * Modules/webdatabase/DatabaseTracker.h:
2017         * platform/graphics/cg/ImageCG.cpp:
2018         (WebCore::patternReleaseCallback):
2019         (WebCore::patternReleaseOnMainThreadCallback): Deleted.
2020         * platform/graphics/cg/PatternCG.cpp:
2021         (WebCore::patternReleaseCallback):
2022         (WebCore::patternReleaseOnMainThreadCallback): Deleted.
2023         * platform/graphics/mac/FontCacheMac.mm:
2024         (WebCore::invalidateFontCache):
2025         (WebCore::fontCacheRegisteredFontsChangedNotificationCallback):
2026         * platform/network/BlobResourceHandle.cpp:
2027         (WebCore::doNotifyFinish):
2028         (WebCore::BlobResourceHandle::notifyFinish):
2029         * platform/network/cf/FormDataStreamCFNet.cpp:
2030         (WebCore::formFinalize):
2031         (WebCore::formFinishFinalizationOnMainThread): Deleted.
2032
2033 2015-08-21  Doug Russell  <d_russell@apple.com>
2034
2035         AX: Table with CSS that makes a row anonymous can return NULL from cellForColumnAndRow
2036         https://bugs.webkit.org/show_bug.cgi?id=148293
2037
2038         Reviewed by Chris Fleizach.
2039
2040         When RenderTableRows are anonymous, they may not be added to the accessible data 
2041         table's internal row list. However, when calculating the row range for a cell, 
2042         we were still accounting for those anonymous sections.
2043         Change how the row range is calculated to directly ask the accessible parent row 
2044         for its index. This will ensure it’s more inline with what’s being represented to 
2045         the accessibility API.
2046
2047         Test: accessibility/aria-table-content.html
2048
2049         * accessibility/AccessibilityTableCell.cpp:
2050         (WebCore::AccessibilityTableCell::parentRow):
2051         (WebCore::AccessibilityTableCell::rowIndexRange):
2052         * accessibility/AccessibilityTableCell.h:
2053
2054 2015-08-21  Joseph Pecoraro  <pecoraro@apple.com>
2055
2056         Web Inspector: REGRESSION(173684): Edit as HTML not working
2057         https://bugs.webkit.org/show_bug.cgi?id=148268
2058
2059         Reviewed by Chris Dumez.
2060
2061         Tests: inspector/dom/getOuterHTML.html
2062                inspector/dom/setOuterHTML.html
2063
2064         * inspector/DOMPatchSupport.cpp:
2065         (WebCore::DOMPatchSupport::innerPatchChildren):
2066         Revert the optimization change made in r173684. The optimization changes
2067         had a few issues. It changed the logic to potentially drop out of the
2068         loop before all new items were processed and using a node reference
2069         to track an index did not account for the modifications insertBefore
2070         may have made to that node's index in the list.
2071
2072 2015-08-21  Beth Dakin  <bdakin@apple.com>
2073
2074         HistoryItems will null CachedPages should never be left in the list of items; 
2075         causes crash
2076         https://bugs.webkit.org/show_bug.cgi?id=148237
2077         -and corresponding-
2078         rdar://problem/22356782
2079
2080         Reviewed by Brady Eidson.
2081
2082         Setting the CachedPage to nullptr will destroy the CachedPage, destroy the 
2083         FrameView, re-enter layout, and potentially try to modify items in the PageCache 
2084         based on that layout. So, we should not modify CachedPage in this way while the 
2085         item is still in the list of HistoryItems.
2086         * history/PageCache.cpp:
2087         (WebCore::PageCache::take):
2088         (WebCore::PageCache::remove):
2089         (WebCore::PageCache::prune):
2090
2091 2015-08-21  David Kilzer  <ddkilzer@apple.com>
2092
2093         dispatch_group_t objects may not be retained properly when not backed by Objective-C objects under garbage collection
2094         <http://webkit.org/b/148229>
2095
2096         Reviewed by Eric Carlson.
2097
2098         When compiled with garbage collection enabled, libdispatch
2099         objects are not backed by Objective-C objects, so they don't get
2100         the benefit of automatic reference counting when captured by a
2101         block or a lambda.  To address this, we use OSObjectPtr<> which
2102         always increments the reference count of the contained object.
2103
2104         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2105         (WebCore::MediaPlayerPrivateAVFoundationObjC::beginLoadingMetadata):
2106         Switch to use OSObjectPtr<>.
2107
2108 2015-08-21  Nan Wang  <n_wang@apple.com>
2109
2110         [Mac] accessibility/selection-states.html fails
2111         https://bugs.webkit.org/show_bug.cgi?id=116637
2112
2113         Reviewed by Chris Fleizach.
2114
2115         Added accessibilityAttributeValue callback for isMultiSelectable attribute.
2116
2117         Updated expectation for accessibility/selection-states.html on mac.
2118
2119         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2120         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2121
2122 2015-08-21  Jonathan Davis  <jond@apple.com>
2123
2124         Fixed status features JSON formatting.
2125
2126         * features.json:
2127
2128 2015-08-21  Chris Dumez  <cdumez@apple.com>
2129
2130         Have more getElementsBy*() methods return a Ref<>
2131         https://bugs.webkit.org/show_bug.cgi?id=148287
2132
2133         Reviewed by Sam Weinig.
2134
2135         Have more getElementsBy*() methods return a Ref<> instaed of a RefPtr<>
2136         as they cannot return null.
2137
2138         * dom/ContainerNode.cpp:
2139         (WebCore::ContainerNode::getElementsByTagName):
2140         (WebCore::ContainerNode::getElementsByTagNameNS):
2141         (WebCore::ContainerNode::getElementsByName):
2142         (WebCore::ContainerNode::getElementsByClassName):
2143         (WebCore::ContainerNode::getElementsByClassNameForObjC):
2144         (WebCore::ContainerNode::radioNodeList):
2145         * dom/ContainerNode.h:
2146
2147 2015-08-21  Chris Dumez  <cdumez@apple.com>
2148
2149         Drop NodeListBase class
2150         https://bugs.webkit.org/show_bug.cgi?id=148290
2151
2152         Reviewed by Ryosuke Niwa.
2153
2154         Drop NodeListBase class and have HTMLCollection subclass NodeList
2155         directly. There is no reason we need another base class.
2156
2157         * WebCore.xcodeproj/project.pbxproj:
2158         * bindings/scripts/CodeGeneratorObjC.pm:
2159         (GetImplClassName): Deleted.
2160         * dom/ContainerNode.cpp:
2161         (WebCore::ContainerNode::getElementsByClassNameForObjC):
2162         * dom/ContainerNode.h:
2163         * dom/NodeList.h:
2164         * dom/NodeListBase.h: Removed.
2165         * html/HTMLCollection.h:
2166
2167 2015-08-20  Yusuke Suzuki  <utatane.tea@gmail.com>
2168
2169         [ES6] prototyping module loader in JSC shell
2170         https://bugs.webkit.org/show_bug.cgi?id=147876
2171
2172         Reviewed by Saam Barati.
2173
2174         Just fill Loader hooks with nullptr.
2175
2176         * bindings/js/JSDOMWindowBase.cpp:
2177         * bindings/js/JSWorkerGlobalScopeBase.cpp:
2178
2179 2015-08-20  Chris Dumez  <cdumez@apple.com>
2180
2181         Fix passing null / undefined as NodeFilter parameter for createNodeIterator() / createTreeWalker()
2182         https://bugs.webkit.org/show_bug.cgi?id=148257
2183
2184         Reviewed by Darin Adler.
2185
2186         Fix passing null / undefined as NodeFilter parameter for createNodeIterator() / createTreeWalker().
2187         It is supposed to be translated into a *null* NodeFilter. However, WebKit was constructing a
2188         NodeFilter in this case.
2189
2190         Chrome and Firefox do not create a NodeFilter in this case.
2191
2192         No new tests, already covered by:
2193         fast/dom/createNodeIterator-parameters.html
2194         fast/dom/createTreeWalker-parameters.html
2195
2196         * bindings/js/JSNodeFilterCustom.cpp:
2197         (WebCore::JSNodeFilter::toWrapped):
2198
2199 2015-08-20  Zalan Bujtas  <zalan@apple.com>
2200
2201         Make outline: auto repaint rect inflate more explicit.
2202         https://bugs.webkit.org/show_bug.cgi?id=148263
2203
2204         Reviewed by Simon Fraser.
2205
2206         Use RenderObject::adjustRectWithMaximumOutline() when inflating is conditional and call
2207         RenderView::maximalOutlineSize() when it is not.
2208         After this changeset, we can clearly tell calls when inflating is unconditional (adjusting the size of the compositing layer) apart from
2209         calls when we just simply inflate the repaint rect during outline painting phase.
2210
2211         No change in behaviour.
2212
2213         * rendering/InlineFlowBox.cpp:
2214         (WebCore::InlineFlowBox::paint):
2215         * rendering/RenderBlock.cpp:
2216         (WebCore::RenderBlock::paint):
2217         * rendering/RenderBlockFlow.cpp:
2218         (WebCore::RenderBlockFlow::layoutBlock):
2219         * rendering/RenderDetailsMarker.cpp:
2220         (WebCore::RenderDetailsMarker::paint):
2221         * rendering/RenderElement.cpp:
2222         (WebCore::RenderElement::computeMaxOutlineSize):
2223         * rendering/RenderLayer.cpp:
2224         (WebCore::RenderLayer::calculateClipRects):
2225         * rendering/RenderLineBoxList.cpp:
2226         (WebCore::isOutlinePhase):
2227         (WebCore::RenderLineBoxList::lineIntersectsDirtyRect):
2228         (WebCore::RenderLineBoxList::paint):
2229         * rendering/RenderListMarker.cpp:
2230         (WebCore::RenderListMarker::paint):
2231         * rendering/RenderObject.cpp:
2232         (WebCore::RenderObject::adjustRectWithMaximumOutline):
2233         (WebCore::RenderObject::maximalOutlineSize): Deleted.
2234         * rendering/RenderObject.h:
2235         * rendering/RenderRegion.cpp:
2236         (WebCore::RenderRegion::overflowRectForFlowThreadPortion):
2237         * rendering/RenderReplaced.cpp:
2238         (WebCore::RenderReplaced::shouldPaint):
2239         * rendering/RenderTable.cpp:
2240         (WebCore::RenderTable::paint):
2241         * rendering/RenderTableCell.cpp:
2242         (WebCore::RenderTableCell::paintCollapsedBorders):
2243         * rendering/RenderTableSection.cpp:
2244         (WebCore::RenderTableSection::paintObject):
2245         * rendering/RenderView.cpp:
2246         (WebCore::RenderView::setMaximalOutlineSize):
2247         (WebCore::RenderView::RenderView): Deleted.
2248         * rendering/RenderView.h:
2249
2250 2015-08-20  Myles C. Maxfield  <mmaxfield@apple.com>
2251
2252         [OS X] Cleaup after r188591
2253         https://bugs.webkit.org/show_bug.cgi?id=148219
2254
2255         Unreviewed.
2256
2257         Forgot to update a call site of FontPlatformData().
2258
2259         * platform/graphics/mac/FontCacheMac.mm:
2260         (WebCore::FontCache::systemFallbackForCharacters):
2261
2262 2015-08-20  Alex Christensen  <achristensen@webkit.org>
2263
2264         Build fix after r188716.
2265
2266         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
2267         (WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent):
2268         Add some scope so we can declare a variable (weakPtr) inside a switch statement.
2269
2270 2015-08-20  Alex Christensen  <achristensen@webkit.org>
2271
2272         Build fix after r188716.
2273
2274         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
2275         (WebCore::MediaPlayerPrivateMediaFoundation::endCreatedMediaSource):
2276         (WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent):
2277         Replace m_weakFactory with m_weakPtrFactory which actually exists.
2278
2279 2015-08-20  Myles C. Maxfield  <mmaxfield@apple.com>
2280
2281         [iOS] Adopt OS X's emoji behavior.
2282         https://bugs.webkit.org/show_bug.cgi?id=148265
2283
2284         Reviewed by Simon Fraser.
2285
2286         Remove our hardcoded hacks which limit the sizes of emoji. This is how
2287         OS X behaves with emoji.
2288
2289         Test: fast/text/emoji.html
2290
2291         * platform/graphics/FontPlatformData.h:
2292         (WebCore::FontPlatformData::hash):
2293         (WebCore::FontPlatformData::isEmoji): Deleted.
2294         (WebCore::FontPlatformData::setIsEmoji): Deleted.
2295         * platform/graphics/cocoa/FontCascadeCocoa.mm:
2296         (WebCore::FontCascade::drawGlyphs):
2297         (WebCore::isOnOrAfterIOS6): Deleted.
2298         (WebCore::pointAdjustedForEmoji): Deleted.
2299         * platform/graphics/cocoa/FontCocoa.mm:
2300         (WebCore::canUseFastGlyphAdvanceGetter):
2301         (WebCore::Font::platformInit): Deleted.
2302         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
2303         (WebCore::FontPlatformData::ctFont):
2304         (WebCore::FontPlatformData::platformDataInit): Deleted.
2305         (WebCore::FontPlatformData::platformDataAssign): Deleted.
2306         (WebCore::FontPlatformData::platformIsEqual): Deleted.
2307         (WebCore::FontPlatformData::ctFontSize): Deleted.
2308         * platform/graphics/ios/FontCacheIOS.mm:
2309         (WebCore::FontCache::getSystemFontFallbackForCharacters): Deleted.
2310         (WebCore::FontCache::createFontPlatformData): Deleted.
2311         * platform/graphics/mac/ComplexTextController.cpp:
2312         (WebCore::ComplexTextController::adjustGlyphsAndAdvances): Deleted.
2313
2314 2015-08-20  Chris Dumez  <cdumez@apple.com>
2315
2316         getElementsByClassName() should return an HTMLCollection
2317         https://bugs.webkit.org/show_bug.cgi?id=147980
2318
2319         Reviewed by Darin Adler.
2320
2321         Update Document.getElementsByClassName() and Element.getElementsByClassName()
2322         to return an HTMLCollection instead of a NodeList, as per the specification:
2323         - https://dom.spec.whatwg.org/#interface-document
2324         - https://dom.spec.whatwg.org/#interface-element
2325
2326         This behavior is also consistent with other major browsers. Due to this and
2327         the fact that NodeList / HTMLCollection pretty much the same API, the
2328         compatibility risk should be fairly low.
2329
2330         I also verified that the performance is the same according to the following
2331         performance test:
2332         PerformanceTests/DOM/get-elements-by-class-name-traversal-uncached.html
2333
2334         Tests: fast/dom/getElementsByClassName/dumpHTMLCollection.html
2335                fast/dom/getElementsByClassName/return-type.html
2336
2337         * CMakeLists.txt:
2338         * WebCore.vcxproj/WebCore.vcxproj:
2339         * WebCore.xcodeproj/project.pbxproj:
2340         Rename ClassNodeList.cpp file.
2341
2342         * bindings/scripts/CodeGeneratorObjC.pm:
2343         (GetImplClassName):
2344         Indicate that NodeList is implemented as NodeListBase. This is
2345         needed so that DOMNodeList can have either an HTMLCollection or
2346         a NodeList as internal representation. NodeListBase is a new
2347         common base class for HTMLCollection and NodeList.
2348
2349         * dom/ClassCollection.cpp: Renamed from Source/WebCore/dom/ClassNodeList.cpp.
2350         (WebCore::ClassCollection::create):
2351         (WebCore::ClassCollection::~ClassCollection):
2352         * dom/ClassCollection.h: Renamed from Source/WebCore/dom/ClassNodeList.h.
2353         (WebCore::ClassCollection::ClassCollection):
2354         (WebCore::ClassCollection::elementMatches):
2355         Rename ClassNodeList to ClassCollection and have it subclass
2356         CachedHTMLCollection instead of ClassNodeList.
2357
2358         * dom/ContainerNode.cpp:
2359         (WebCore::ContainerNode::getElementsByClassName):
2360         Have getElementsByClassName return an HTMLCollection instead of a
2361         NodeList.
2362
2363         (WebCore::ContainerNode::getElementsByClassNameForObjC):
2364         New method returns a NodeListBase for ObjC bindings, so they can
2365         convert the return value into a DOMNodeList. We need this to not
2366         break ObjC API compatibility.
2367
2368         * dom/Document.idl:
2369         * dom/Element.idl:
2370         Have getElementsByClassName return an HTMLCollection instead of a
2371         NodeList, except for ObjC bindings.
2372
2373         * dom/NodeList.h:
2374         Have NodeList subclass NodeListBase.
2375
2376         * dom/NodeListBase.h: Added.
2377         New common base interface for HTMLCollection and NodeList. This is
2378         so that the internal representation for ObjC's DOMNodeList can be
2379         a NodeListBase instead of a NodeList. This way, the ObjC API can
2380         keep returning a DOMNodeList, even though our implementation now
2381         returns an HTMLCollection instead of a NodeList.
2382
2383         * dom/NodeRareData.h:
2384         (WebCore::NodeListTypeIdentifier<NameNodeList>::value):
2385         (WebCore::NodeListTypeIdentifier<TagNodeList>::value):
2386         (WebCore::NodeListTypeIdentifier<HTMLTagNodeList>::value):
2387         (WebCore::NodeListTypeIdentifier<RadioNodeList>::value):
2388         (WebCore::NodeListTypeIdentifier<LabelsNodeList>::value):
2389         Drop ClassNodeList from the NodeListTypeIndentifiers.
2390
2391         * html/CollectionType.h:
2392         Add new ByClass CollectionType for ClassCollection.
2393
2394         * html/GenericCachedHTMLCollection.cpp:
2395         (WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches):
2396         Handle new ByClass CollectionType in the switch statement.
2397
2398         * html/HTMLCollection.cpp:
2399         (WebCore::invalidationTypeExcludingIdAndNameAttributes):
2400         (WebCore::HTMLCollection::~HTMLCollection):
2401         Add support for new ByClass Collection type.
2402
2403         * html/HTMLCollection.h:
2404         Have HTMLCollection subclass the NodeListBase interface.
2405
2406 2015-08-20  Myles C. Maxfield  <mmaxfield@apple.com>
2407
2408         Fix the iOS build after r188726
2409         https://bugs.webkit.org/show_bug.cgi?id=148278
2410
2411         Unreviewed.
2412
2413         * platform/graphics/ios/FontCacheIOS.mm:
2414         (WebCore::FontCache::systemFallbackForCharacters):
2415
2416 2015-08-20  Myles C. Maxfield  <mmaxfield@apple.com>
2417
2418         Cleanup after r188726
2419         https://bugs.webkit.org/show_bug.cgi?id=148278
2420
2421         Unreviewed.
2422
2423         No new tests because there is no behavior change.
2424
2425         * platform/graphics/ios/FontCacheIOS.mm:
2426         (WebCore::FontCache::systemFallbackForCharacters):
2427
2428 2015-08-20  Myles C. Maxfield  <mmaxfield@apple.com>
2429
2430         [iOS] Delete dead code
2431         https://bugs.webkit.org/show_bug.cgi?id=148278
2432
2433         Reviewed by Dean Jackson.
2434
2435         No new tests because there is no behavior change.
2436
2437         * platform/graphics/cocoa/FontCocoa.mm:
2438         (WebCore::Font::platformInit):
2439         * platform/graphics/ios/FontCacheIOS.mm:
2440         (WebCore::copyFontCharacterSet): Deleted.
2441         (WebCore::appleColorEmojiCharacterSet): Deleted.
2442         (WebCore::phoneFallbackCharacterSet): Deleted.
2443         (WebCore::languageSpecificFallbackFont): Deleted.
2444         (WebCore::FontCache::systemFallbackForCharacters): Deleted.
2445
2446 2015-08-20  Tim Horton  <timothy_horton@apple.com>
2447
2448         Unreviewed, rolling out r188712.
2449         https://bugs.webkit.org/show_bug.cgi?id=148274
2450
2451         broke allllll the tests (Requested by thorton on #webkit).
2452
2453         Reverted changeset:
2454
2455         "WK1 can re-enter layout during FrameView destruction and
2456         crash"
2457         https://bugs.webkit.org/show_bug.cgi?id=148237
2458         http://trac.webkit.org/changeset/188712
2459
2460 2015-08-20  Commit Queue  <commit-queue@webkit.org>
2461
2462         Unreviewed, rolling out r188717 and r188719.
2463         https://bugs.webkit.org/show_bug.cgi?id=148272
2464
2465         Broke the Mavericks build (Requested by andersca on #webkit).
2466
2467         Reverted changesets:
2468
2469         "Merge Lock and LockBase"
2470         https://bugs.webkit.org/show_bug.cgi?id=148266
2471         http://trac.webkit.org/changeset/188717
2472
2473         "Merge ConditionBase and Condition"
2474         https://bugs.webkit.org/show_bug.cgi?id=148270
2475         http://trac.webkit.org/changeset/188719
2476
2477 2015-08-20  Anders Carlsson  <andersca@apple.com>
2478
2479         Merge ConditionBase and Condition
2480         https://bugs.webkit.org/show_bug.cgi?id=148270
2481
2482         Reviewed by Filip Pizlo.
2483
2484         Change StaticCondition to Condition.
2485
2486         * platform/network/cf/LoaderRunLoopCF.cpp:
2487
2488 2015-08-20  Anders Carlsson  <andersca@apple.com>
2489
2490         Stop using cancelCallOnMainThread in MediaPlayerPrivateMediaFoundation
2491         https://bugs.webkit.org/show_bug.cgi?id=148252
2492
2493         Reviewed by Tim Horton.
2494
2495         Replace cancelCallOnMainThread with WeakPtrs.
2496
2497         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
2498         (WebCore::MediaPlayerPrivateMediaFoundation::MediaPlayerPrivateMediaFoundation):
2499         (WebCore::MediaPlayerPrivateMediaFoundation::endCreatedMediaSource):
2500         (WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent):
2501         (WebCore::MediaPlayerPrivateMediaFoundation::~MediaPlayerPrivateMediaFoundation):
2502         (WebCore::MediaPlayerPrivateMediaFoundation::onCreatedMediaSourceCallback):
2503         (WebCore::MediaPlayerPrivateMediaFoundation::onTopologySetCallback):
2504         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
2505
2506 2015-08-20  Beth Dakin  <bdakin@apple.com>
2507
2508         WK1 can re-enter layout during FrameView destruction and crash
2509         https://bugs.webkit.org/show_bug.cgi?id=148237
2510         -and corresponding-
2511         rdar://problem/22356782
2512
2513         Reviewed by Zalan Bujtas.
2514
2515         This is a safe fix for the time being. We won't resetScrollbars() for a FrameView 
2516         that is in the PageCache because resetting scrollbars can re-enter layout for the 
2517         Frame's new FrameView, which leads to updating pages in the page cache, which 
2518         leads to a crash because we're in the process of destroying something
2519         in the page cache. We should not be able to get into this mess at all.
2520         * page/FrameView.cpp:
2521         (WebCore::FrameView::~FrameView):
2522
2523 2015-08-20  Chris Dumez  <cdumez@apple.com>
2524
2525         Default value for createNodeIterator() / createTreeWalker()'s whatToShow parameter should be 0xFFFFFFFF
2526         https://bugs.webkit.org/show_bug.cgi?id=148238
2527
2528         Reviewed by Ryosuke Niwa.
2529
2530         Default value for createNodeIterator() / createTreeWalker()'s whatToShow
2531         parameter should be 0xFFFFFFFF as per the specification:
2532         - http://w3c-test.org/dom/traversal/NodeIterator.html
2533         - http://w3c-test.org/dom/traversal/TreeWalker.html
2534
2535         Firefox and Chrome conform to the specification. However, WebKit was
2536         using 0 as default value.
2537
2538         We still don't behave as expected in some cases, as visible from
2539         the checks that are still failing in the new layout tests. Those
2540         will be addressed separately.
2541
2542         Tests: fast/dom/createNodeIterator-parameters.html
2543                fast/dom/createTreeWalker-parameters.html
2544
2545         * dom/Document.cpp:
2546         (WebCore::Document::createNodeIterator):
2547         (WebCore::Document::createTreeWalker):
2548         (WebCore::Document::scheduleForcedStyleRecalc): Deleted.
2549         (WebCore::Document::scheduleStyleRecalc): Deleted.
2550         * dom/Document.h:
2551         * dom/Document.idl:
2552         * dom/NodeIterator.cpp:
2553         (WebCore::NodeIterator::NodeIterator):
2554         * dom/NodeIterator.h:
2555         (WebCore::NodeIterator::create):
2556         * dom/Traversal.cpp:
2557         (WebCore::NodeIteratorBase::NodeIteratorBase):
2558         * dom/Traversal.h:
2559         (WebCore::NodeIteratorBase::whatToShow):
2560         * dom/TreeWalker.cpp:
2561         (WebCore::TreeWalker::TreeWalker):
2562         * dom/TreeWalker.h:
2563         (WebCore::TreeWalker::create):
2564
2565 2015-08-20  Anders Carlsson  <andersca@apple.com>
2566
2567         Stop using cancelCallOnMainThread in MediaPlayerPrivateAVFoundation
2568         https://bugs.webkit.org/show_bug.cgi?id=148248
2569
2570         Reviewed by Tim Horton.
2571
2572         Replace cancelCallOnMainThread with WeakPtrs, just like in MediaPlayerPrivateAVFoundationObjC.
2573
2574         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
2575         (WebCore::MediaPlayerPrivateAVFoundation::mainThreadCallback):
2576         (WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification):
2577         (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
2578         (WebCore::MediaPlayerPrivateAVFoundation::~MediaPlayerPrivateAVFoundation): Deleted.
2579         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
2580
2581 2015-08-20  Anders Carlsson  <andersca@apple.com>
2582
2583         Stop using cancelCallOnMainThread in DisplayRefreshMonitorMac
2584         https://bugs.webkit.org/show_bug.cgi?id=148241
2585
2586         Reviewed by Tim Horton.
2587
2588         Create a WeakPtrFactory in DisplayRefreshMonitorMac and bind a WeakPtr in the function passed
2589         to callOnMainThread so we can check if the DisplayRefreshMonitorMac has gone away.
2590
2591         * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
2592         (WebCore::DisplayRefreshMonitorMac::DisplayRefreshMonitorMac):
2593         (WebCore::DisplayRefreshMonitorMac::displayLinkFired):
2594         (WebCore::DisplayRefreshMonitorMac::~DisplayRefreshMonitorMac):
2595         * platform/graphics/mac/DisplayRefreshMonitorMac.h:
2596
2597 2015-08-20  Alex Christensen  <achristensen@webkit.org>
2598
2599         AppleWin CMake build fix after r188696.
2600
2601         * PlatformWin.cmake:
2602         No ${} fixes the problem and keeps the desired behavior.
2603
2604 2015-08-20  Per Arne Vollan  <peavo@outlook.com>
2605
2606         [WinCairo] Link errors when building with VS2015.
2607         https://bugs.webkit.org/show_bug.cgi?id=148233
2608
2609         Reviewed by Alex Christensen.
2610
2611         Include some inline function definitions.
2612
2613         * bindings/js/JSWebGLRenderingContextCustom.cpp:
2614         * html/canvas/WebGLRenderingContext.cpp:
2615
2616 2015-08-20  Alex Christensen  <achristensen@webkit.org>
2617
2618         Clean up CMake build after r188673
2619         https://bugs.webkit.org/show_bug.cgi?id=148234
2620
2621         Reviewed by Tim Horton.
2622
2623         * CMakeLists.txt:
2624         * PlatformEfl.cmake:
2625         * PlatformGTK.cmake:
2626         * PlatformWin.cmake:
2627         Make including ANGLE headers platform specific because EFL and GTK don't want to copy headers,
2628         but we need to in order to get the Windows build working with each Source subdirectory isolated.
2629
2630 2015-08-20  Beth Dakin  <bdakin@apple.com>
2631
2632         Standalone image documents should send their size to the UIClient just like 
2633         standalone media documents
2634         https://bugs.webkit.org/show_bug.cgi?id=148195
2635         -and corresponding-
2636         rdar://problem/21951253
2637
2638         Reviewed by Tim Horton.
2639
2640         This patch re-names mediaDocumentNaturalSizeChanged() to 
2641         imageOrMediaDocumentSizeChanged(), and, as the new name implies, uses the 
2642         function for both media documents and images.
2643
2644         * html/ImageDocument.cpp:
2645         (WebCore::ImageDocument::imageUpdated):
2646         * html/MediaDocument.cpp:
2647         (WebCore::MediaDocument::mediaElementNaturalSizeChanged):
2648         * page/ChromeClient.h:
2649
2650 2015-08-20  Simon Fraser  <simon.fraser@apple.com>
2651
2652         Add myself as the will-change contact.
2653
2654         * features.json:
2655
2656 2015-08-20  Chris Dumez  <cdumez@apple.com>
2657
2658         [Cocoa] Treat Epoch as invalid value for "Last-Modified" header
2659         https://bugs.webkit.org/show_bug.cgi?id=148162
2660         rdar://problem/22330837
2661
2662         Reviewed by Antti Koivisto.
2663
2664         Ignore "Last-Modified" header when computing heuristic freshness if it
2665         is Epoch. CFNetwork currently converts a malformed date for Last-Modified
2666         into Epoch so there is no way for us to distinguish Epoch from invalid
2667         input. Without this, we would end up with cached resources that have a
2668         giant lifetime (> 4 years) due to a malformed HTTP header.
2669
2670         Some Websites (e.g. www.popehat.com) also wrongly return Epoch as
2671         Last-Modified value and we would end up caching it overly aggressively.
2672         Now that we consider Epoch as an invalid value for Last-Modified, it will
2673         also work around this content bug.
2674
2675         Test: http/tests/cache/disk-cache/disk-cache-last-modified.html
2676
2677         * platform/network/ResourceResponseBase.cpp:
2678         (WebCore::ResourceResponseBase::lastModified):
2679
2680 2015-08-19  Brian Burg  <bburg@apple.com>
2681
2682         Web Inspector: add TestHarness option to tee all commands to system console
2683         https://bugs.webkit.org/show_bug.cgi?id=148181
2684
2685         Reviewed by Joseph Pecoraro.
2686
2687         * inspector/InspectorFrontendHost.cpp:
2688         (WebCore::InspectorFrontendHost::unbufferedLog): Remove log prefix so output
2689         to stderr can be diffed against expected results without processing.
2690
2691 2015-08-19  Brent Fulgham  <bfulgham@apple.com>
2692
2693         [Win] Unreviewed build fix after r188663.
2694
2695         The new bindings file was added to the Visual Studio project, but was marked to not
2696         be built. It should have also been added to the "JSBindingsAllInOne.cpp" file so
2697         that the new code gets compiled.
2698
2699         * bindings/js/JSBindingsAllInOne.cpp:
2700
2701 2015-08-19  Alex Christensen  <achristensen@webkit.org>
2702
2703         CMake Windows build should not include files directly from other Source directories
2704         https://bugs.webkit.org/show_bug.cgi?id=148198
2705
2706         Reviewed by Brent Fulgham.
2707
2708         * CMakeLists.txt:
2709         * PlatformEfl.cmake:
2710         * PlatformGTK.cmake:
2711         * PlatformWin.cmake:
2712
2713 2015-08-19  Wenson Hsieh  <wenson_hsieh@apple.com>
2714
2715         Select validation does not correctly work when handling change event
2716         https://bugs.webkit.org/show_bug.cgi?id=145869
2717
2718         Reviewed by Dean Jackson.
2719
2720         When selecting an option in a <select> with validation that also has an onchange listener, calling
2721         checkValidity() for the select within the onchange handler would produce incorrect results and (on
2722         a debug build) crash at an assertion. This is because the change events were being dispatched before
2723         form validity was updated. Making the validation step come before the change event dispatch fixes
2724         this issue.
2725
2726         Test: fast/forms/onchange-select-check-validity.html
2727
2728         * html/HTMLSelectElement.cpp:
2729         (WebCore::HTMLSelectElement::selectOption): Update validity before dispatching change events.
2730
2731 2015-08-19  Jinyoung Hur  <hur.ims@navercorp.com>
2732
2733         GraphicsContext3D::activeTexture should not be called with zero-based index
2734         https://bugs.webkit.org/show_bug.cgi?id=148020
2735
2736         Reviewed by Alex Christensen.
2737
2738         GraphicsContext3D::activeTexture should be called with an argument that is greater than or equal to 
2739         GraphicsContext3D::TEXTURE0.
2740
2741         Test: fast/canvas/webgl/texture-complete.html
2742
2743         * html/canvas/WebGLRenderingContextBase.cpp:
2744         (WebCore::WebGLRenderingContextBase::checkTextureCompleteness):
2745
2746 2015-08-19  Chris Dumez  <cdumez@apple.com>
2747
2748         Avoid double hash lookup in our JS bindings named property getter code
2749         https://bugs.webkit.org/show_bug.cgi?id=148193
2750
2751         Reviewed by Geoffrey Garen.
2752
2753         Avoid double hash lookup in our JS bindings named property getter code
2754         for performance reasons.
2755
2756         * CMakeLists.txt:
2757         * WebCore.xcodeproj/project.pbxproj:
2758         Add new file.
2759
2760         * bindings/js/JSDOMNamedFlowCollectionCustom.cpp: Added.
2761         (WebCore::JSDOMNamedFlowCollection::nameGetter):
2762         Moved custom named getter code for DOMNamedFlowCollection from the
2763         bindings generator to an actual custom bindings file.
2764
2765         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
2766         * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
2767         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
2768         * bindings/scripts/test/JS/JSTestEventTarget.h:
2769         * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
2770         * bindings/scripts/test/JS/JSTestOverrideBuiltins.h:
2771         Rebaseline bindings tests.
2772
2773 2015-08-19  Simon Fraser  <simon.fraser@apple.com>
2774
2775         Add CSS will-change to the feature list
2776         https://bugs.webkit.org/show_bug.cgi?id=148199
2777
2778         Reviewed by Dean Jackson.
2779
2780         * features.json:
2781
2782 2015-08-19  Eric Carlson  <eric.carlson@apple.com>
2783
2784         Remove ENABLE_WEBVTT_REGIONS
2785         https://bugs.webkit.org/show_bug.cgi?id=148184
2786
2787         Reviewed by Jer Noble.
2788
2789         * Configurations/FeatureDefines.xcconfig: Remove ENABLE_WEBVTT_REGIONS.
2790         * html/HTMLMediaElement.cpp:
2791         (WebCore::HTMLMediaElement::textTrackRemoveCue):
2792         * html/shadow/MediaControlElements.cpp:
2793         (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
2794         * html/track/InbandGenericTextTrack.cpp:
2795         (WebCore::InbandGenericTextTrack::newCuesParsed):
2796         (WebCore::InbandGenericTextTrack::newRegionsParsed):
2797         (WebCore::InbandGenericTextTrack::fileFailedToParse):
2798         * html/track/InbandGenericTextTrack.h:
2799         * html/track/InbandWebVTTTextTrack.cpp:
2800         (WebCore::InbandWebVTTTextTrack::newCuesParsed):
2801         (WebCore::InbandWebVTTTextTrack::newRegionsParsed):
2802         (WebCore::InbandWebVTTTextTrack::fileFailedToParse):
2803         * html/track/InbandWebVTTTextTrack.h:
2804         * html/track/LoadableTextTrack.cpp:
2805         (WebCore::LoadableTextTrack::cueLoadingCompleted):
2806         (WebCore::LoadableTextTrack::newRegionsAvailable):
2807         (WebCore::LoadableTextTrack::id):
2808         * html/track/LoadableTextTrack.h:
2809         * html/track/TextTrack.cpp:
2810         (WebCore::TextTrack::TextTrack):
2811         (WebCore::TextTrack::~TextTrack):
2812         (WebCore::TextTrack::removeCue):
2813         (WebCore::TextTrack::ensureVTTRegionList):
2814         (WebCore::TextTrack::removeRegion):
2815         (WebCore::TextTrack::cueWillChange):
2816         * html/track/TextTrack.h:
2817         * html/track/TextTrack.idl:
2818         * html/track/TextTrackCue.cpp:
2819         * html/track/VTTCue.cpp:
2820         (WebCore::VTTCueBox::applyCSSProperties):
2821         (WebCore::VTTCue::createCueRenderingTree):
2822         (WebCore::VTTCue::setRegionId):
2823         (WebCore::VTTCue::notifyRegionWhenRemovingDisplayTree):
2824         (WebCore::VTTCue::setIsActive):
2825         (WebCore::VTTCue::removeDisplayTree):
2826         (WebCore::VTTCue::settingName):
2827         (WebCore::VTTCue::setCueSettings):
2828         (WebCore::VTTCue::getCSSAlignment):
2829         * html/track/VTTCue.h:
2830         (WebCore::VTTCue::regionId):
2831         * html/track/VTTCue.idl:
2832         * html/track/VTTRegion.cpp:
2833         * html/track/VTTRegion.h:
2834         * html/track/VTTRegion.idl:
2835         * html/track/VTTRegionList.cpp:
2836         * html/track/VTTRegionList.h:
2837         * html/track/VTTRegionList.idl:
2838         * html/track/WebVTTParser.cpp:
2839         (WebCore::WebVTTParser::parseFloatPercentageValue):
2840         (WebCore::WebVTTParser::parseFloatPercentageValuePair):
2841         (WebCore::WebVTTParser::WebVTTParser):
2842         (WebCore::WebVTTParser::getNewCues):
2843         (WebCore::WebVTTParser::getNewRegions):
2844         (WebCore::WebVTTParser::parseFileHeader):
2845         (WebCore::WebVTTParser::parse):
2846         (WebCore::WebVTTParser::collectMetadataHeader):
2847         (WebCore::WebVTTParser::collectCueId):
2848         (WebCore::WebVTTParser::resetCueValues):
2849         (WebCore::WebVTTParser::createNewRegion):
2850         (WebCore::WebVTTParser::collectTimeStamp):
2851         * html/track/WebVTTParser.h:
2852         (WebCore::WebVTTParserClient::~WebVTTParserClient):
2853         * loader/TextTrackLoader.cpp:
2854         (WebCore::TextTrackLoader::newCuesParsed):
2855         (WebCore::TextTrackLoader::newRegionsParsed):
2856         (WebCore::TextTrackLoader::fileFailedToParse):
2857         (WebCore::TextTrackLoader::getNewCues):
2858         (WebCore::TextTrackLoader::getNewRegions):
2859         * loader/TextTrackLoader.h:
2860         * rendering/RenderVTTCue.cpp:
2861         (WebCore::RenderVTTCue::layout):
2862
2863 2015-08-19  Brent Fulgham  <bfulgham@apple.com>
2864
2865         Scrollable area container is not properly cleared when page is going into the PageCache
2866         https://bugs.webkit.org/show_bug.cgi?id=148182
2867         <rdar://problem/21969170>
2868
2869         Reviewed by Dean Jackson.
2870
2871         Must be tested manually going back and forth in history several times.
2872
2873         * history/CachedFrame.cpp:
2874         (WebCore::CachedFrame::CachedFrame): Clear the cached ScrollableAreas from the FrameView.
2875         * page/FrameView.cpp:
2876         (WebCore::FrameView::clearScrollableAreas): Added.
2877         * page/FrameView.h:
2878
2879 2015-08-19  Zalan Bujtas  <zalan@apple.com>
2880
2881         outline-style: auto leaves bits behind on strava's flyby view.
2882         https://bugs.webkit.org/show_bug.cgi?id=148178
2883
2884         Reviewed by Simon Fraser.
2885
2886         RenderView::m_maximalOutlineSize should include outline-offset.
2887
2888         Test: fast/repaint/outline-auto-with-width-less-than-focus-ring-width-and-offset-repaint.html
2889
2890         * rendering/RenderElement.cpp:
2891         (WebCore::RenderElement::computeMaxOutlineSize):
2892         * rendering/RenderObject.cpp:
2893         (WebCore::RenderObject::adjustRectForOutlineAndShadow):
2894
2895 2015-08-19  Anders Carlsson  <andersca@apple.com>
2896
2897         Fix errors on bots.
2898
2899         Ask the backend to cleanup and terminate
2900
2901         * Modules/webdatabase/SQLTransaction.cpp:
2902         (WebCore::SQLTransaction::computeNextStateAndCleanupIfNeeded):
2903
2904 2015-08-19  Dean Jackson  <dino@apple.com>
2905
2906         Clean up our CSS files (e.g. remove prefixes)
2907         https://bugs.webkit.org/show_bug.cgi?id=148194
2908         <rdar://problem/22351034>
2909
2910         Reviewed by Brent Fulgham.
2911
2912         A lot of our internal CSS was still using prefixed forms of properties.
2913         As I started cleaning those up, I noticed lots of small things
2914         like missing semicolons and whitespace.
2915
2916         No change in behaviour for testing.
2917
2918         * css/fullscreen.css:
2919         * css/html.css:
2920         * css/mathml.css:
2921         * css/mediaControls.css:
2922         * css/mediaControlsGtk.css:
2923         * css/plugIns.css:
2924
2925 2015-08-19  Zalan Bujtas  <zalan@apple.com>
2926
2927         Cleanup outline-style: auto painting.
2928         https://bugs.webkit.org/show_bug.cgi?id=148159
2929
2930         Reviewed by Simon Fraser.
2931
2932         Old platform style required the focus ring to be painted with an offset. (https://trac.webkit.org/r5358)
2933         (and it has the side effect of growing outline-width adds further, unwanted offset)
2934         Default css for :focus is adjusted to remove this offset by setting the outline-width to 5px
2935         and the outline-offset to -2px. (https://trac.webkit.org/r13639)
2936         This patch removes both the old logic and the workaround for getting rid of the unwanted offset.
2937
2938         Test: fast/repaint/outline-auto-with-default-width-and-offset-repaint.html
2939
2940         * css/html.css:
2941         (:focus):
2942         (input:focus, textarea:focus, isindex:focus, keygen:focus, select:focus): Deleted.
2943         * platform/graphics/mac/GraphicsContextMac.mm:
2944         (WebCore::GraphicsContext::drawFocusRing):
2945         * rendering/RenderElement.cpp:
2946         (WebCore::RenderElement::computeMaxOutlineSize):
2947         (WebCore::RenderElement::paintFocusRing):
2948         (WebCore::RenderElement::paintOutline): Short circuit painting outline when painting is disabled. It
2949         only change behaviour for non-auto outlines -which are anyway not supposed to be painted when painting is disabled.
2950         * rendering/RenderObject.cpp:
2951         (WebCore::RenderObject::adjustRectForOutlineAndShadow):
2952         * rendering/RenderTheme.h:
2953         (WebCore::RenderTheme::platformFocusRingWidth):
2954         (WebCore::RenderTheme::platformFocusRingMaxWidth): Deleted.
2955
2956 2015-08-18  Dean Jackson  <dino@apple.com>
2957
2958         Support CSS filters without webkit prefix
2959         https://bugs.webkit.org/show_bug.cgi?id=148138
2960         <rdar://problem/22331434>
2961
2962         Reviewed by Sam Weinig.
2963
2964         Add support for the un-prefixed form of the CSS filter property.
2965         This was straightforward for the general case on HTML content.
2966         It was a bit more tricky on SVG content, where there already
2967         was an existing "filter" property/attribute. The parsing
2968         code is now shared between SVG and HTML, as is the
2969         computed style output.
2970
2971         Covered by updating the existing tests, and
2972         adding one new test: css3/filters/unprefixed.html
2973
2974         * css/CSSComputedStyleDeclaration.cpp: Rename CSSPropertyWebkitFilter to CSSPropertyFilter.
2975         (WebCore::isLayoutDependent):
2976         (WebCore::ComputedStyleExtractor::propertyValue):
2977
2978         * css/CSSFilterImageValue.cpp:
2979         (WebCore::CSSFilterImageValue::customCSSText): Use "filter(" as the prefix.
2980
2981         * css/CSSParser.cpp:
2982         (WebCore::CSSParser::parseValue): Rename CSSPropertyWebkitFilter to CSSPropertyFilter.
2983         (WebCore::CSSParser::isGeneratedImageValue): Add support for "filter()".
2984         (WebCore::CSSParser::parseGeneratedImage): Ditto.
2985         (WebCore::CSSParser::parseBuiltinFilterArguments):
2986
2987         * css/CSSPropertyNames.in: Add filter. Make -webkit-filter an alias.
2988
2989         * css/SVGCSSComputedStyleDeclaration.cpp:
2990         (WebCore::ComputedStyleExtractor::svgPropertyValue): Deleted.
2991
2992         * page/animation/CSSPropertyAnimation.cpp: Rename CSSPropertyWebkitFilter to CSSPropertyFilter.
2993         (WebCore::PropertyWrapperAcceleratedFilter::PropertyWrapperAcceleratedFilter):
2994         * page/animation/KeyframeAnimation.cpp: Ditto.
2995         (WebCore::KeyframeAnimation::checkForMatchingFilterFunctionLists):
2996
2997         * platform/graphics/GraphicsLayer.cpp: Rename AnimatedPropertyWebkitFilter to AnimatedPropertyFilter.
2998         (WebCore::GraphicsLayer::validateFilterOperations):
2999         * platform/graphics/GraphicsLayerClient.h: Ditto.
3000         * platform/graphics/ca/GraphicsLayerCA.cpp: Ditto.
3001         (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
3002         (WebCore::GraphicsLayerCA::addAnimation):
3003         (WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
3004         (WebCore::GraphicsLayerCA::createFilterAnimationsFromKeyframes):
3005
3006         * rendering/RenderLayer.cpp:
3007         (WebCore::RenderLayer::updateOrRemoveFilterClients): SVG manages its own filter resources,
3008         so we shouldn't add a layer that has an SVG root to the filter clients.
3009
3010         * rendering/RenderLayerBacking.cpp: Renaming.
3011         (WebCore::RenderLayerBacking::startAnimation):
3012         (WebCore::RenderLayerBacking::startTransition):
3013         (WebCore::RenderLayerBacking::graphicsLayerToCSSProperty):
3014         (WebCore::RenderLayerBacking::cssToGraphicsLayerProperty):
3015         * rendering/RenderLayerCompositor.cpp: Ditto.
3016         (WebCore::RenderLayerCompositor::requiresCompositingForAnimation):
3017
3018         * rendering/style/SVGRenderStyle.h: Remove the SVG filter style.
3019         (WebCore::SVGRenderStyle::isolatesBlending): No need to check for hasFilter().
3020         (WebCore::SVGRenderStyle::initialFilterResource): Deleted.
3021         (WebCore::SVGRenderStyle::setFilterResource): Deleted.
3022         (WebCore::SVGRenderStyle::filterResource): Deleted.
3023         (WebCore::SVGRenderStyle::hasFilter): Deleted.
3024
3025         * rendering/style/SVGRenderStyleDefs.cpp: Remove the filter resource.
3026         (WebCore::StyleResourceData::StyleResourceData): Deleted.
3027         (WebCore::StyleResourceData::operator==): Deleted.
3028         * rendering/style/SVGRenderStyleDefs.h:
3029
3030         * rendering/style/WillChangeData.cpp: Renaming.
3031         (WebCore::propertyCreatesStackingContext):
3032         (WebCore::propertyTriggersCompositing):
3033
3034         * rendering/svg/SVGRenderSupport.cpp:
3035         (WebCore::SVGRenderSupport::isolatesBlending): Since SVGRenderStyle no longer checks
3036         hasFilter() in its isolatesBlending(), we need to do it here.
3037
3038         * rendering/svg/SVGRenderingContext.cpp:
3039         (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
3040
3041         * rendering/svg/SVGRenderTreeAsText.cpp:
3042         (WebCore::writeResources): Dump from the CSS style value.
3043         * rendering/svg/SVGResources.cpp: Ditto.
3044         (WebCore::SVGResources::buildCachedResources):
3045         * rendering/svg/SVGResources.h:
3046         * rendering/svg/SVGResourcesCache.cpp:
3047         (WebCore::SVGResourcesCache::addResourcesFromRenderer):
3048
3049         * platform/graphics/texmap/TextureMapperLayer.cpp: Renaming.
3050         * platform/graphics/texmap/TextureMapperAnimation.cpp:
3051         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
3052
3053 2015-08-18  Anders Carlsson  <andersca@apple.com>
3054
3055         More work on simplifying the WebSQL code
3056         https://bugs.webkit.org/show_bug.cgi?id=148145
3057
3058         Reviewed by Tim Horton.
3059
3060         Eliminate SQLTransaction::sendToBackendState.
3061
3062         * Modules/webdatabase/SQLTransaction.cpp:
3063         (WebCore::SQLTransaction::stateFunctionFor):
3064         Change sendToBackendState to unreachableState,
3065
3066         (WebCore::SQLTransaction::deliverTransactionCallback):
3067         Call deliverTransactionErrorCallback directly and schedule RunStatements on the backend.
3068
3069         (WebCore::SQLTransaction::deliverTransactionErrorCallback):
3070         Schedule CleanupAfterTransactionErrorCallback on the backend.
3071
3072         (WebCore::SQLTransaction::deliverStatementCallback):
3073         Fold nextStateForTransactionError into here. Schedule backend states explicitly.
3074
3075         (WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
3076         Schedule RunStatements on the backend.
3077
3078         (WebCore::SQLTransaction::deliverSuccessCallback):
3079         Schedule CleanupAndTerminate on the backend.
3080
3081         (WebCore::SQLTransaction::computeNextStateAndCleanupIfNeeded):
3082         The return value of this function isn't used to make it return void.
3083
3084         (WebCore::SQLTransaction::nextStateForTransactionError): Deleted.
3085         Remove this, it's been folded into deliverStatementCallback.
3086
3087         (WebCore::SQLTransaction::sendToBackendState): Deleted.
3088         Get rid of this.
3089
3090         * Modules/webdatabase/SQLTransaction.h:
3091         Update member functions.
3092
3093         * Modules/webdatabase/SQLTransactionBackend.cpp:
3094         (WebCore::SQLTransactionBackend::openTransactionAndPreflight):
3095         Just call runStatements() directly.
3096
3097         (WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
3098         Just call cleanupAndTerminate() directly.
3099
3100         (WebCore::SQLTransactionBackend::shouldPerformWhilePaused): Deleted.
3101         Get rid of an iOS member function that's no longer used.
3102
3103         * Modules/webdatabase/SQLTransactionBackend.h:
3104         Remove member function.
3105
3106 2015-08-18  Filip Pizlo  <fpizlo@apple.com>
3107
3108         Replace all uses of std::mutex/std::condition_variable with WTF::Lock/WTF::Condition
3109         https://bugs.webkit.org/show_bug.cgi?id=148140
3110
3111         Reviewed by Geoffrey Garen.
3112
3113         No new tests because no new behavior.
3114
3115         * Modules/webaudio/AudioBufferSourceNode.cpp:
3116         (WebCore::AudioBufferSourceNode::process):
3117         (WebCore::AudioBufferSourceNode::setBuffer):
3118         * Modules/webaudio/AudioBufferSourceNode.h:
3119         * Modules/webaudio/AudioParamTimeline.cpp:
3120         (WebCore::AudioParamTimeline::insertEvent):
3121         (WebCore::AudioParamTimeline::cancelScheduledValues):
3122         (WebCore::AudioParamTimeline::valueForContextTime):
3123         (WebCore::AudioParamTimeline::valuesForTimeRange):
3124         * Modules/webaudio/AudioParamTimeline.h:
3125         * Modules/webaudio/ConvolverNode.cpp:
3126         (WebCore::ConvolverNode::process):
3127         (WebCore::ConvolverNode::reset):
3128         (WebCore::ConvolverNode::setBuffer):
3129         * Modules/webaudio/ConvolverNode.h:
3130         * Modules/webaudio/MediaElementAudioSourceNode.cpp:
3131         (WebCore::MediaElementAudioSourceNode::process):
3132         * Modules/webaudio/MediaElementAudioSourceNode.h:
3133         * Modules/webaudio/MediaStreamAudioSourceNode.cpp:
3134         (WebCore::MediaStreamAudioSourceNode::setFormat):
3135         (WebCore::MediaStreamAudioSourceNode::process):
3136         * Modules/webaudio/MediaStreamAudioSourceNode.h:
3137         * Modules/webaudio/OscillatorNode.cpp:
3138         (WebCore::OscillatorNode::process):
3139         (WebCore::OscillatorNode::setPeriodicWave):
3140         * Modules/webaudio/OscillatorNode.h:
3141         * Modules/webaudio/PannerNode.cpp:
3142         (WebCore::PannerNode::process):
3143         (WebCore::PannerNode::setPanningModel):
3144         * Modules/webaudio/PannerNode.h:
3145         * Modules/webaudio/WaveShaperProcessor.cpp:
3146         (WebCore::WaveShaperProcessor::setCurve):
3147         (WebCore::WaveShaperProcessor::setOversample):
3148         (WebCore::WaveShaperProcessor::process):
3149         * Modules/webaudio/WaveShaperProcessor.h:
3150         * Modules/webdatabase/Database.cpp:
3151         (WebCore::retrieveTextResultFromDatabase):
3152         (WebCore::guidToVersionMap):
3153         (WebCore::Database::Database):
3154         (WebCore::Database::performOpenAndVerify):
3155         (WebCore::Database::closeDatabase):
3156         (WebCore::Database::getCachedVersion):
3157         (WebCore::Database::setCachedVersion):
3158         (WebCore::guidMutex): Deleted.
3159         * Modules/webdatabase/DatabaseManager.cpp:
3160         (WebCore::DatabaseManager::existingDatabaseContextFor):
3161         (WebCore::DatabaseManager::registerDatabaseContext):
3162         (WebCore::DatabaseManager::unregisterDatabaseContext):
3163         (WebCore::DatabaseManager::didConstructDatabaseContext):
3164         (WebCore::DatabaseManager::didDestructDatabaseContext):
3165         (WebCore::DatabaseManager::addProposedDatabase):
3166         (WebCore::DatabaseManager::removeProposedDatabase):
3167         (WebCore::DatabaseManager::fullPathForDatabase):
3168         (WebCore::DatabaseManager::detailsForNameAndOrigin):
3169         * Modules/webdatabase/DatabaseManager.h:
3170         * bindings/objc/DOMInternal.mm:
3171         (getDOMWrapper):
3172         (addDOMWrapper):
3173         (removeDOMWrapper):
3174         (wrapperCacheLock): Deleted.
3175         * crypto/CryptoAlgorithmRegistry.cpp:
3176         (WebCore::CryptoAlgorithmRegistry::singleton):
3177         (WebCore::CryptoAlgorithmRegistry::CryptoAlgorithmRegistry):
3178         (WebCore::CryptoAlgorithmRegistry::getIdentifierForName):
3179         (WebCore::CryptoAlgorithmRegistry::nameForIdentifier):
3180         (WebCore::CryptoAlgorithmRegistry::create):
3181         (WebCore::CryptoAlgorithmRegistry::registerAlgorithm):
3182         (WebCore::registryMutex): Deleted.
3183         * inspector/WorkerDebuggerAgent.cpp:
3184         (WebCore::WorkerDebuggerAgent::WorkerDebuggerAgent):
3185         (WebCore::WorkerDebuggerAgent::~WorkerDebuggerAgent):
3186         (WebCore::WorkerDebuggerAgent::interruptAndDispatchInspectorCommands):
3187         * page/WheelEventTestTrigger.cpp:
3188         (WebCore::WheelEventTestTrigger::clearAllTestDeferrals):
3189         (WebCore::WheelEventTestTrigger::setTestCallbackAndStartNotificationTimer):
3190         (WebCore::WheelEventTestTrigger::deferTestsForReason):
3191         (WebCore::WheelEventTestTrigger::removeTestDeferralForReason):
3192         (WebCore::WheelEventTestTrigger::triggerTestTimerFired):
3193         * page/WheelEventTestTrigger.h:
3194         * page/scrolling/ScrollingThread.cpp:
3195         (WebCore::ScrollingThread::dispatch):
3196         (WebCore::ScrollingThread::createThreadIfNeeded):
3197         (WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread):
3198         * page/scrolling/ScrollingThread.h:
3199         * page/scrolling/mac/ScrollingThreadMac.mm:
3200         (WebCore::ScrollingThread::initializeRunLoop):
3201         * platform/audio/ReverbConvolver.cpp:
3202         (WebCore::ReverbConvolver::~ReverbConvolver):
3203         (WebCore::ReverbConvolver::backgroundThreadEntry):
3204         (WebCore::ReverbConvolver::process):
3205         (WebCore::ReverbConvolver::reset):
3206         * platform/audio/ReverbConvolver.h:
3207         * platform/ios/wak/WebCoreThreadRun.cpp:
3208         * platform/mac/Language.mm:
3209         (WebCore::preferredLanguages):
3210         (+[WebLanguageChangeObserver languagePreferencesDidChange:]):
3211         (WebCore::platformUserPreferredLanguages):
3212         (WebCore::preferredLanguagesMutex): Deleted.
3213         * platform/network/cf/LoaderRunLoopCF.cpp:
3214         (WebCore::emptyPerform):
3215         (WebCore::runLoaderThread):
3216         (WebCore::loaderRunLoop):
3217         (WebCore::loaderRunLoopMutex): Deleted.
3218         (WebCore::loaderRunLoopConditionVariable): Deleted.
3219         * platform/network/cf/SocketStreamHandleCFNet.cpp:
3220         (WebCore::callOnMainThreadAndWait):
3221         * platform/network/curl/SocketStreamHandle.h:
3222         * platform/network/curl/SocketStreamHandleCurl.cpp:
3223         (WebCore::SocketStreamHandle::platformSend):
3224         (WebCore::SocketStreamHandle::sendData):
3225         * platform/sql/SQLiteDatabaseTracker.cpp:
3226         (WebCore::SQLiteDatabaseTracker::setClient):
3227         (WebCore::SQLiteDatabaseTracker::incrementTransactionInProgressCount):
3228         (WebCore::SQLiteDatabaseTracker::decrementTransactionInProgressCount):
3229         (WebCore::SQLiteDatabaseTracker::transactionInProgressMutex): Deleted.
3230         * platform/text/TextBreakIterator.cpp:
3231         (WebCore::compareAndSwapNonSharedCharacterBreakIterator):
3232         * platform/text/TextEncodingRegistry.cpp:
3233         (WebCore::newTextCodec):
3234         (WebCore::atomicCanonicalTextEncodingName):
3235         (WebCore::dumpTextEncodingNameMap):
3236         (WebCore::encodingRegistryMutex): Deleted.
3237         * workers/WorkerThread.cpp:
3238         (WebCore::workerThreads):
3239         (WebCore::WorkerThread::workerThreadCount):
3240         (WebCore::WorkerThread::WorkerThread):
3241         (WebCore::WorkerThread::~WorkerThread):
3242         (WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):
3243         (WebCore::threadSetMutex): Deleted.
3244
3245 2015-08-18  Wenson Hsieh  <wenson_hsieh@apple.com>
3246
3247         Scroll snapping should trigger when receiving a momentum end wheel event
3248         https://bugs.webkit.org/show_bug.cgi?id=148155
3249
3250         Reviewed by Alexey Proskuryakov.
3251
3252         No new tests, since the purpose of this patch is to get existing tests to pass when
3253         allowing similar wheel events to coalesce. To accomplish this, we relax our assumption
3254         that the user must have generated at least 3 momentum wheel events in order for the
3255         gliding animation to trigger. Upon receiving a wheel event indicating the end of the
3256         momentum phase, we now kick off the gliding animation as long as any momentum event
3257         was tracked earlier in the gesture with a nonzero wheel delta.
3258
3259         * platform/cocoa/ScrollController.mm:
3260         (WebCore::ScrollController::processWheelEventForScrollSnapOnAxis): Added logic to
3261             begin a glide animation if we have received a momentum end event but have not
3262             yet triggered a gliding animation.
3263         * platform/cocoa/ScrollSnapAnimatorState.h:
3264         * platform/cocoa/ScrollSnapAnimatorState.mm:
3265         (WebCore::ScrollSnapAnimatorState::wheelDeltaTrackingIsInProgress): Minor refactoring
3266             to make the wheel event processing code more readable.
3267         (WebCore::ScrollSnapAnimatorState::hasFinishedTrackingWheelDeltas): Ditto.
3268
3269 2015-08-18  Myles C. Maxfield  <mmaxfield@apple.com>
3270
3271         [Cocoa] Punctuation near Hindi text is garbled when styled with the system font
3272         https://bugs.webkit.org/show_bug.cgi?id=148164
3273
3274         Reviewed by Brian Burg.
3275
3276         Fonts cache whether or not they are the system font. This caching took place at the end of Font::platformInit().
3277         However, in the middle of Font::platformInit(), we look up a glyph, which calls GlyphPage::fill() which consults
3278         with this cache. However, at this point, the cache has not been constructed yet. The solution is just to
3279         construct the cache earlier (at the beginning of the function).
3280
3281         Consulting with the cache before it is populated causes it to erroneously say that no fonts are system fonts.
3282         Then, we use Core Graphics to ask for glyphs instead of Core Text. Core Graphics, however, is incapable of
3283         handling the system font, and returns us garbled results. In particular, when the system language is set to
3284         Japanese, the system font does not support punctuation, and Core Text tells us so. However, Core Graphics
3285         erroneously tells us that the system font does support punctuation.
3286
3287         Then, if text is near the punctuation which causes us to take the complex text codepath (such as Hindi text),
3288         we tell Core Text to explicitly lay out the punctuation using the system font (which does not support
3289         punctuation). Core Text then replies that the provided font doesn't support the punctuation, and that we should
3290         use LastResort with some other glyphs instead. WebKit then disregards the font CoreText told us to use (because
3291         we are oh-so-sure that the font in question supports punctuation) and uses the LastResort glyph IDs with our
3292         font, which causes arbitrary glyphs to be shown.
3293
3294         Test: fast/text/hindi-system-font-punctuation.html
3295
3296         * platform/graphics/cocoa/FontCocoa.mm:
3297         (WebCore::Font::platformInit):
3298
3299 2015-08-18  Joseph Pecoraro  <pecoraro@apple.com>
3300
3301         Web Inspector: Links for rules in <style> are incorrect, do not account for <style> offset in the document
3302         https://bugs.webkit.org/show_bug.cgi?id=148141
3303
3304         Reviewed by Brian Burg.
3305
3306         Test: inspector/css/getAllStyleSheets.html
3307
3308         * css/CSSStyleSheet.h:
3309         * css/CSSStyleSheet.cpp:
3310         (WebCore::CSSStyleSheet::create):
3311         (WebCore::CSSStyleSheet::createInline):
3312         (WebCore::CSSStyleSheet::CSSStyleSheet):
3313         Include the starting position when created by the Parser.
3314         Default to the minimum position, which should never be
3315         possible for an inline <style> because the "<style>" characters
3316         themselves require at least some offset.
3317
3318         * dom/InlineStyleSheetOwner.cpp:
3319         (WebCore::InlineStyleSheetOwner::createSheet):
3320         Provide the start position offset for this stylesheet if it was inline.
3321
3322         * inspector/InspectorStyleSheet.cpp:
3323         (WebCore::InspectorStyleSheet::buildObjectForStyleSheetInfo):
3324         Include new protocol values for the style sheet.
3325
3326 2015-08-18  Dean Jackson  <dino@apple.com>
3327
3328         Add null check in ImageBufferData::getData
3329         https://bugs.webkit.org/show_bug.cgi?id=148156
3330         <rdar://problem/22337157>
3331
3332         Reviewed by Simon Fraser.
3333
3334         We're getting a number of crash reports that suggest the allocation
3335         of the result buffer has failed, but have been unable to reproduce.
3336         This patch adds a null check to the allocation, and logs a message
3337         to the system console. This might avoid the crashes, and hopefully
3338         we'll see the message.
3339
3340         No new tests, since we're unable to reproduce this crash.
3341
3342         * platform/graphics/cg/ImageBufferDataCG.cpp:
3343         (WebCore::ImageBufferData::getData): Add a null-check and early
3344         return.
3345
3346 2015-08-18  Chris Dumez  <cdumez@apple.com>
3347
3348         Use CSSValuePool::singleton() instead of cssValuePool()
3349         https://bugs.webkit.org/show_bug.cgi?id=148132
3350
3351         Reviewed by Simon Fraser.
3352
3353         Use CSSValuePool::singleton() instead of cssValuePool() to access the
3354         global CSSValuePool instance, as per coding style.
3355
3356 2015-08-17  Matt Rajca  <mrajca@apple.com>
3357
3358         Media Session: don't begin listening for interruptions when an interruption provider is created
3359         https://bugs.webkit.org/show_bug.cgi?id=148109
3360
3361         Reviewed by Eric Carlson.
3362
3363         If we call `beginListeningForInterruption` in MediaSessionInterruptionProvider's constructor, the current
3364         class's implementation will get called, not implementations provided by subclasses (this makes sense since base
3365         classes are initialized before derived classes). To fix this, we let clients of
3366         MediaSessionInterruptionProvider start listening for interruptions instead. As a corollary of this, we can
3367         make MediaSessionInterruptionProvider's methods pure virtual.
3368
3369         * Modules/mediasession/MediaSessionManager.cpp:
3370         (WebCore::MediaSessionManager::MediaSessionManager):
3371         * platform/mediasession/MediaSessionInterruptionProvider.h:
3372         * platform/mediasession/MediaSessionInterruptionProvider.cpp:
3373         (WebCore::MediaSessionInterruptionProvider::MediaSessionInterruptionProvider):
3374
3375 2015-08-18  Eric Carlson  <eric.carlson@apple.com>
3376
3377         Remove "platform text track menu"
3378         https://bugs.webkit.org/show_bug.cgi?id=148139
3379
3380         Reviewed by Jer Noble.
3381
3382         No new tests, this patch removes unused code.
3383
3384         * WebCore.xcodeproj/project.pbxproj: Remove PlatformTextTrackMenu.h.
3385         * html/HTMLMediaElement.cpp:
3386         (WebCore::HTMLMediaElement::scheduleDelayedAction): Remove PLATFORM_TEXT_TRACK_MENU.
3387         (WebCore::HTMLMediaElement::pendingActionTimerFired):
3388         (WebCore::HTMLMediaElement::textTrackModeChanged):
3389         (WebCore::HTMLMediaElement::mediaPlayerDidRemoveVideoTrack):
3390         (WebCore::HTMLMediaElement::closeCaptionTracksChanged):
3391         (WebCore::HTMLMediaElement::addAudioTrack):
3392         (WebCore::HTMLMediaElement::clearMediaPlayer):
3393         (WebCore::HTMLMediaElement::setSelectedTextTrack): Deleted.
3394         (WebCore::HTMLMediaElement::platformTextTracks): Deleted.
3395         (WebCore::HTMLMediaElement::notifyMediaPlayerOfTextTrackChanges): Deleted.
3396         (WebCore::HTMLMediaElement::platformTextTrackMenu): Deleted.
3397         * html/HTMLMediaElement.h:
3398         (WebCore::HTMLMediaElement::player):
3399         * html/track/InbandTextTrack.h:
3400         * html/track/TextTrack.cpp:
3401         (WebCore::TextTrack::hasCue):
3402         (WebCore::TextTrack::isMainProgramContent):
3403         (WebCore::TextTrack::platformTextTrack): Deleted.
3404         * html/track/TextTrack.h:
3405         (WebCore::TextTrack::create):
3406         * platform/graphics/MediaPlayer.cpp:
3407         (WebCore::MediaPlayer::resetMediaEngines):
3408         (WebCore::MediaPlayer::implementsTextTrackControls): Deleted.
3409         (WebCore::MediaPlayer::textTrackMenu): Deleted.
3410         * platform/graphics/MediaPlayer.h:
3411         * platform/graphics/MediaPlayerPrivate.h:
3412         (WebCore::MediaPlayerPrivateInterface::tracksChanged):
3413         (WebCore::MediaPlayerPrivateInterface::simulateAudioInterruption):
3414         (WebCore::MediaPlayerPrivateInterface::implementsTextTrackControls): Deleted.
3415         (WebCore::MediaPlayerPrivateInterface::textTrackMenu): Deleted.
3416         * platform/graphics/PlatformTextTrack.h:
3417         * platform/graphics/PlatformTextTrackMenu.h: Removed.
3418
3419 2015-08-18  Wenson Hsieh  <wenson_hsieh@apple.com>
3420
3421         Search input results and clear icons are misaligned when padding is added
3422         https://bugs.webkit.org/show_bug.cgi?id=148146
3423         <rdar://problem/22310951>
3424
3425         Reviewed by Zalan Bujtas.
3426
3427         Use content box rect to determine where to draw the results and cancel buttons
3428         of a search field that has -webkit-appearance: textfield. Previously, we used
3429         the bounding box, which caused the buttons to render in the input's padding
3430         region.
3431
3432         Test: platform/mac/fast/forms/search/search-padding-cancel-results-buttons.html
3433
3434         * rendering/RenderThemeMac.mm:
3435         (WebCore::RenderThemeMac::paintSearchFieldCancelButton): Use content box to
3436             compute where to render cancel button.
3437         (WebCore::RenderThemeMac::paintSearchFieldResultsButton): Use content box to
3438             compute where to render results button.
3439
3440 2015-08-18  Dean Jackson  <dino@apple.com>
3441
3442         CAOpenGLLayer doesn't need an SPI declaration
3443         https://bugs.webkit.org/show_bug.cgi?id=148151
3444
3445         Reviewed by Tim Horton.
3446
3447         Follow-up to https://trac.webkit.org/r188608.
3448         The property is in the public SDK, so we don't need
3449         to declare it.
3450
3451         * platform/spi/cocoa/QuartzCoreSPI.h:
3452
3453 2015-08-18  Myles C. Maxfield  <mmaxfield@apple.com>
3454
3455         [El Capitan] Fix the open source build
3456         https://bugs.webkit.org/show_bug.cgi?id=148134
3457
3458         Reviewed by Anders Carlsson.
3459
3460         No new tests because there is no behavior change.
3461
3462         Need to declare CGFontRenderingStyle.
3463
3464         * platform/spi/cocoa/CoreTextSPI.h:
3465
3466 2015-08-18  Dean Jackson  <dino@apple.com>
3467
3468         CAOpenGLLayer needs a named class extension for non-internal installs
3469         https://bugs.webkit.org/show_bug.cgi?id=148151
3470         <rdar://problem/22335111>
3471
3472         Reviewed by Tim Horton.
3473