[Content Filtering] Determine navigation and content policy before continuing to...
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2015-08-26  Andy Estes  <aestes@apple.com>
2
3         [Content Filtering] Determine navigation and content policy before continuing to filter a load
4         https://bugs.webkit.org/show_bug.cgi?id=148506
5
6         Reviewed by Brady Eidson.
7
8         Prior to this change, ContentFilter would hide from DocumentLoader all CachedRawResourceClient callbacks until
9         a decision was made, then replay the missed callbacks. This approach interacted poorly with some features of
10         the loader, notably appcache and downloads. In the case of appcache, DocumentLoader might not have a chance to
11         check for substitute data until the original load has finished, wasting bandwidth, and might receive duplicate
12         or out-of-order callbacks. In the case of downloads, it would often be too late to convert the existing
13         connection to a download, leading to restarted downloads or outright failures.
14
15         Bandaids were put in place for these issues in r188150, r188486, and r188851 to fix crashes or serious
16         regressions in behavior, but these weren't complete fixes. They did not solve any of the duplicate data loading
17         problems, and they did not make downloads work reliably in all cases.
18
19         This patch rolls out the bandaids (but keeps their tests) and replaces them with a more robust fix. Instead of
20         hiding callbacks from DocumentLoader, ContentFilter now delivers willSendRequest(), redirectReceived(), and
21         responseReceived() to DocumentLoader immediately, and cancels filtering if DocumentLoader decides to ignore the
22         load, download it, or load substitute data. ContentFilter continues to buffer incoming data to prevent partial
23         rendering of blocked content.
24
25         The existing tests for r188150 and r188851 were kept, the test for r188486 was rewritten to be specific to
26         content filtering, and new tests were added to cover the case where ContentFilter is still undecided after a
27         load finishes.
28
29         Tests: contentfiltering/allow-never.html
30                contentfiltering/block-never.html
31                ContentFiltering.AllowDownloadAfterAddData
32                ContentFiltering.AllowDownloadAfterFinishedAddingData
33                ContentFiltering.AllowDownloadAfterRedirect
34                ContentFiltering.AllowDownloadAfterResponse
35                ContentFiltering.AllowDownloadAfterWillSendRequest
36                ContentFiltering.AllowDownloadNever
37                ContentFiltering.BlockDownloadAfterAddData
38                ContentFiltering.BlockDownloadAfterFinishedAddingData
39                ContentFiltering.BlockDownloadAfterRedirect
40                ContentFiltering.BlockDownloadAfterResponse
41                ContentFiltering.BlockDownloadAfterWillSendRequest
42                ContentFiltering.BlockDownloadNever
43
44         * bindings/js/JSMockContentFilterSettingsCustom.cpp:
45         (WebCore::JSMockContentFilterSettings::decisionPoint): Taught to handle DecisionPoint::Never, and rewrote to
46         not need a set of const uint8_ts that mirror the DecisionPoint enum.
47         (WebCore::JSMockContentFilterSettings::setDecisionPoint): Ditto.
48         (WebCore::toJSValue): Rewrote to not need a set of const uint8_ts that mirror the Decision enum.
49         (WebCore::toDecision): Ditto.
50         * loader/ContentFilter.cpp:
51         (WebCore::ContentFilter::createIfEnabled): Renamed from createIfNeeded, and changed to take a DocumentLoader&
52         instead of a DecisionFunction.
53         (WebCore::ContentFilter::ContentFilter):
54         (WebCore::ContentFilter::responseReceived): If m_state != Blocked after filtering, call DocumentLoader::responseReceived().
55         (WebCore::ContentFilter::dataReceived): If m_state == Allowed after filtering, deliver buffered data to DocumentLoader.
56         If no filtering was necessary, call DocumentLoader::dataReceived() directly.
57         (WebCore::ContentFilter::redirectReceived): If m_state != Blocked after filtering, call DocumentLoader::redirectReceived().
58         (WebCore::ContentFilter::notifyFinished): If an error occured, call DocumentLoader::notifyFinished() immediately and return.
59         If m_state != Blocked after filtering, deliver buffered data to DocumentLoader and call DocumentLoader::notifyFinished().
60         If no filtering was necessary and m_state != Blocked, call DocumentLoader::notifyFinished() directly.
61         (WebCore::ContentFilter::didDecide): Called DocumentLoader::contentFilterDidDecide() instead of m_decisionFunction().
62         (WebCore::ContentFilter::deliverResourceData): Added a helper function to deliver buffered data to DocumentLoader.
63         (WebCore::ContentFilter::createIfNeeded): Renamed to createIfEnabled().
64         * loader/ContentFilter.h:
65         * loader/DocumentLoader.cpp:
66         (WebCore::DocumentLoader::DocumentLoader):
67         (WebCore::DocumentLoader::willSendRequest): Stopped asserting that redirectResponse is null and made it part of
68         the if condition instead, since willSendRequest() will now be called on redirects when there is an active ContentFilter.
69         (WebCore::DocumentLoader::startLoadingMainResource): Called becomeMainResourceClient() instead of becomeMainResourceClientIfFilterAllows().
70         (WebCore::DocumentLoader::becomeMainResourceClient): Renamed from becomeMainResourceClientIfFilterAllows().
71         Only called ContentFilter::startFilteringMainResource() if the filter state is Initialized, since ContentFilter
72         might have already made a decision in willSendRequest().
73         (WebCore::DocumentLoader::contentFilterDidDecide): Stopped deleting m_contentFilter, since it will continue to deliver callbacks
74         even after making a decision. Fixed a bug where we were creating two copies of ContentFilter's replacement data.
75         (WebCore::DocumentLoader::syntheticRedirectReceived): Deleted.
76         (WebCore::DocumentLoader::becomeMainResourceClientIfFilterAllows): Renamed to becomeMainResourceClient().
77         * loader/DocumentLoader.h:
78         * loader/EmptyClients.h:
79         * loader/FrameLoaderClient.h:
80         * loader/ResourceLoader.cpp:
81         (WebCore::ResourceLoader::willSendRequestInternal): Removed part of r188851.
82         * loader/SubresourceLoader.cpp:
83         (WebCore::SubresourceLoader::didReceiveResponse): Removed part of r188486.
84         * loader/SubresourceLoader.h:
85         * loader/cache/CachedRawResource.cpp:
86         (WebCore::CachedRawResource::didAddClient): Removed part of r188150.
87         * loader/cache/CachedRawResourceClient.h:
88         (WebCore::CachedRawResourceClient::syntheticRedirectReceived): Removed part of r188150.
89         * testing/MockContentFilterSettings.h: Defined DecisionPoint::Never.
90         * testing/MockContentFilterSettings.idl: Defined DECISION_POINT_NEVER.
91
92 2015-08-31  Chris Dumez  <cdumez@apple.com>
93
94         Unreviewed, rebaseline bindings tests after r189184.
95
96 2015-08-31  Chris Dumez  <cdumez@apple.com>
97
98         NodeFilter.SHOW_ALL has wrong value on 32-bit
99         https://bugs.webkit.org/show_bug.cgi?id=148602
100
101         Reviewed by Geoffrey Garen.
102
103         NodeFilter.SHOW_ALL has wrong value on 32-bit. This is because
104         NodeFilter.SHOW_ALL is an unsigned long whose value is 0xFFFFFFFF but
105         our bindings code is casting it to an intptr_t type which is not wide
106         enough on 32-bit.
107
108         No new tests, already covered by fast/dom/node-filter-interface.html
109         which is now unskipped on Windows / 32bit.
110
111         * bindings/scripts/CodeGeneratorJS.pm:
112         (GenerateHashTableValueArray):
113         Generate extra curly brackets to initialize the new union member.
114         Also cast to long long the constant instead of intptr_t.
115
116         * dom/NodeFilter.h:
117         Explicitly mark the enum underlying type to be an unsigned long
118         to make sure it can hold the value for SHOW_ALL on all platforms.
119         On Windows, it seems the default underlying type is an int for
120         e.g.
121
122 2015-08-31  Chris Dumez  <cdumez@apple.com>
123
124         Range.detach() / NodeIterator.detach() should be no-ops as per the latest DOM specification
125         https://bugs.webkit.org/show_bug.cgi?id=148454
126
127         Reviewed by Ryosuke Niwa.
128
129         Range.detach() / NodeIterator.detach() should be no-ops as per the
130         latest DOM specification:
131         - https://dom.spec.whatwg.org/#dom-range-detach
132         - https://dom.spec.whatwg.org/#dom-nodeiterator-detach
133
134         These are already no-ops in Firefox:
135         - https://bugzilla.mozilla.org/show_bug.cgi?id=702948
136         - https://bugzilla.mozilla.org/show_bug.cgi?id=823549
137
138         and Chrome:
139         - https://src.chromium.org/viewvc/blink?revision=173010&view=revision
140         - https://src.chromium.org/viewvc/blink?revision=172768&view=revision
141
142         Tests: fast/dom/Range/range-detach-noop.html
143                fast/dom/node-iterator-detach-noop.html
144
145         * accessibility/AccessibilityObject.cpp:
146         (WebCore::AccessibilityObject::selectText):
147         (WebCore::AccessibilityObject::stringForVisiblePositionRange):
148         (WebCore::AccessibilityObject::lengthForVisiblePositionRange):
149         * accessibility/atk/WebKitAccessibleUtil.cpp:
150         (selectionBelongsToObject):
151         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
152         (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
153         (-[WebAccessibilityObjectWrapper _convertToNSRange:]):
154         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
155         (-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]):
156         (-[WebAccessibilityObjectWrapper _convertToNSRange:]):
157         * bindings/scripts/CodeGeneratorGObject.pm:
158         (FunctionUsedToRaiseException):
159         * dom/DocumentMarkerController.cpp:
160         (WebCore::DocumentMarkerController::addMarker):
161         (WebCore::DocumentMarkerController::addTextMatchMarker):
162         (WebCore::DocumentMarkerController::addDictationPhraseWithAlternativesMarker):
163         (WebCore::DocumentMarkerController::addDictationResultMarker):
164         (WebCore::DocumentMarkerController::removeMarkers):
165         (WebCore::DocumentMarkerController::markersInRange):
166         (DocumentMarkerController::setMarkersActive):
167         (DocumentMarkerController::hasMarkers):
168         (DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange):
169         * dom/NodeIterator.cpp:
170         (WebCore::NodeIterator::nextNode):
171         (WebCore::NodeIterator::previousNode):
172         (WebCore::NodeIterator::detach):
173         (WebCore::NodeIterator::NodeIterator): Deleted.
174         (WebCore::NodeIterator::nodeWillBeRemoved): Deleted.
175         (WebCore::NodeIterator::updateForNodeRemoval): Deleted.
176         * dom/NodeIterator.h:
177         (WebCore::NodeIterator::nextNode):
178         (WebCore::NodeIterator::previousNode):
179         * dom/NodeIterator.idl:
180         * dom/Range.cpp:
181         (WebCore::Range::commonAncestorContainer):
182         (WebCore::Range::setStart):
183         (WebCore::Range::setEnd):
184         (WebCore::Range::collapse):
185         (WebCore::Range::isPointInRange):
186         (WebCore::Range::comparePoint):
187         (WebCore::Range::compareNode):
188         (WebCore::Range::compareBoundaryPoints):
189         (WebCore::Range::boundaryPointsValid):
190         (WebCore::Range::deleteContents):
191         (WebCore::Range::processContents):
192         (WebCore::Range::processContentsBetweenOffsets):
193         (WebCore::Range::processAncestorsAndTheirSiblings):
194         (WebCore::Range::extractContents):
195         (WebCore::Range::cloneContents):
196         (WebCore::Range::insertNode):
197         (WebCore::Range::toString):
198         (WebCore::Range::text):
199         (WebCore::Range::createContextualFragment):
200         (WebCore::Range::detach):
201         (WebCore::Range::cloneRange):
202         (WebCore::Range::surroundContents):
203         (WebCore::Range::checkDeleteExtract):
204         (WebCore::Range::containedByReadOnly):
205         (WebCore::Range::firstNode):
206         (WebCore::Range::shadowRoot):
207         (WebCore::Range::pastLastNode):
208         (WebCore::Range::absoluteTextRects):
209         (WebCore::Range::absoluteTextQuads):
210         (WebCore::Range::collectSelectionRects):
211         (WebCore::Range::formatForDebugger):
212         (WebCore::Range::contains):
213         (WebCore::rangesOverlap):
214         (WebCore::Range::getBorderAndTextQuads):
215         (WebCore::Range::boundingRectInternal):
216         (showTree):
217         (WebCore::checkForDifferentRootContainer): Deleted.
218         (WebCore::lengthOfContentsInNode): Deleted.
219         (WebCore::Range::processNodes): Deleted.
220         (WebCore::Range::checkNodeWOffset): Deleted.
221         (WebCore::Range::checkNodeBA): Deleted.
222         (WebCore::Range::setStartAfter): Deleted.
223         (WebCore::Range::setEndBefore): Deleted.
224         (WebCore::Range::setEndAfter): Deleted.
225         (WebCore::Range::selectNode): Deleted.
226         (WebCore::intervalsSufficientlyOverlap): Deleted.
227         (WebCore::coalesceSelectionRects): Deleted.
228         (WebCore::areRangesEqual): Deleted.
229         (WebCore::boundaryTextNodesSplit): Deleted.
230         (WebCore::Range::textNodeSplit): Deleted.
231         (WebCore::Range::expand): Deleted.
232         * dom/Range.h:
233         (WebCore::Range::startContainer):
234         (WebCore::Range::endContainer):
235         (WebCore::Range::collapsed):
236         (WebCore::Range::commonAncestorContainer):
237         * dom/Range.idl:
238         * editing/AlternativeTextController.cpp:
239         (WebCore::AlternativeTextController::applyAlternativeTextToRange):
240         (WebCore::AlternativeTextController::handleAlternativeTextUIResult):
241         (WebCore::AlternativeTextController::markReversed):
242         (WebCore::AlternativeTextController::markCorrection):
243         (WebCore::AlternativeTextController::recordSpellcheckerResponseForModifiedCorrection):
244         (WebCore::AlternativeTextController::applyDictationAlternative):
245         * editing/EditingStyle.cpp:
246         (WebCore::EditingStyle::styleAtSelectionStart):
247         * editing/Editor.cpp:
248         (WebCore::Editor::canDeleteRange):
249         (WebCore::Editor::shouldDeleteRange):
250         (WebCore::Editor::advanceToNextMisspelling):
251         (WebCore::Editor::markMisspellingsOrBadGrammar):
252         (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
253         (WebCore::correctSpellcheckingPreservingTextCheckingParagraph):
254         (WebCore::Editor::markAndReplaceFor):
255         (WebCore::Editor::changeBackToReplacedString):
256         (WebCore::Editor::firstRectForRange):
257         (WebCore::Editor::rangeOfString):
258         (WebCore::Editor::countMatchesForText):
259         (WebCore::Editor::scanRangeForTelephoneNumbers):
260         (WebCore::isFrameInRange): Deleted.
261         * editing/EditorCommand.cpp:
262         (WebCore::expandSelectionToGranularity):
263         (WebCore::unionDOMRanges):
264         * editing/FormatBlockCommand.cpp:
265         (WebCore::FormatBlockCommand::elementForFormatBlockCommand):
266         * editing/FrameSelection.cpp:
267         (WebCore::FrameSelection::setSelectedRange):
268         (WebCore::FrameSelection::wordOffsetInRange):
269         (WebCore::FrameSelection::spaceFollowsWordInRange):
270         (WebCore::FrameSelection::selectionAtDocumentStart): Deleted.
271         * editing/MarkupAccumulator.cpp:
272         (WebCore::MarkupAccumulator::appendText):
273         * editing/SpellChecker.cpp:
274         (WebCore::SpellCheckRequest::SpellCheckRequest):
275         (WebCore::SpellChecker::isCheckable):
276         * editing/SpellingCorrectionCommand.cpp:
277         (WebCore::SpellingCorrectionCommand::SpellingCorrectionCommand):
278         * editing/TextCheckingHelper.cpp:
279         (WebCore::expandToParagraphBoundary):
280         (WebCore::TextCheckingParagraph::offsetTo):
281         (WebCore::TextCheckingParagraph::offsetAsRange):
282         (WebCore::TextCheckingHelper::findFirstMisspelling):
283         (WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
284         (WebCore::TextCheckingHelper::findFirstGrammarDetail):
285         (WebCore::TextCheckingHelper::isUngrammatical):
286         (WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange):
287         * editing/TextIterator.cpp:
288         (WebCore::TextIterator::TextIterator):
289         (WebCore::TextIterator::node):
290         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
291         (WebCore::CharacterIterator::range):
292         (WebCore::characterSubrange):
293         (WebCore::BackwardsCharacterIterator::range):
294         (WebCore::TextIterator::rangeFromLocationAndLength):
295         (WebCore::TextIterator::getLocationAndLengthFromRange):
296         (WebCore::collapsedToBoundary):
297         (WebCore::findPlainText):
298         (WebCore::BackwardsCharacterIterator::BackwardsCharacterIterator): Deleted.
299         (WebCore::BackwardsCharacterIterator::advance): Deleted.
300         (WebCore::plainText): Deleted.
301         * editing/VisibleUnits.cpp:
302         (WebCore::previousBoundary):
303         * editing/cocoa/HTMLConverter.mm:
304         (HTMLConverter::_processText):
305         (HTMLConverter::_traverseNode):
306         (HTMLConverter::_traverseFooterNode):
307         (HTMLConverterCaches::cacheAncestorsOfStartToBeConverted):
308         (WebCore::editingAttributedStringFromRange):
309         * editing/mac/EditorMac.mm:
310         (WebCore::Editor::adjustedSelectionRange):
311         * editing/markup.cpp:
312         (WebCore::StyledMarkupAccumulator::renderedText):
313         (WebCore::StyledMarkupAccumulator::stringValueForRange):
314         (WebCore::highestAncestorToWrapMarkup):
315         (WebCore::createMarkupInternal):
316         (WebCore::createFullMarkup):
317         (WebCore::urlToMarkup): Deleted.
318         * loader/archive/cf/LegacyWebArchive.cpp:
319         (WebCore::LegacyWebArchive::create):
320         * page/ContextMenuController.cpp:
321         (WebCore::ContextMenuController::contextMenuItemSelected):
322         * page/DOMSelection.cpp:
323         (WebCore::DOMSelection::deleteFromDocument):
324         (WebCore::DOMSelection::containsNode):
325         * page/TextIndicator.cpp:
326         (WebCore::TextIndicator::createWithRange):
327         * page/ios/FrameIOS.mm:
328         (WebCore::Frame::indexCountOfWordPrecedingSelection):
329         (WebCore::Frame::wordsInCurrentParagraph):
330         * platform/win/PasteboardWin.cpp:
331         (WebCore::Pasteboard::writeRangeToDataObject):
332         (WebCore::Pasteboard::writeSelection):
333         * rendering/RenderNamedFlowThread.cpp:
334         (WebCore::RenderNamedFlowThread::getRanges):
335         * rendering/RenderObject.cpp:
336         (WebCore::RenderObject::absoluteBoundingBoxRectForRange):
337
338 2015-08-31  Myles C. Maxfield  <mmaxfield@apple.com>
339
340         [Cocoa] Unify showGlyphsWithAdvances
341         https://bugs.webkit.org/show_bug.cgi?id=148565
342
343         Reviewed by Dean Jackson.
344
345         None of the fonts created for WebKit have the renderingMode of
346         NSFontAntialiasedIntegerAdvancementsRenderingMode and are already printer fonts.
347
348         No new tests because there is no behavior change.
349
350         * platform/graphics/cocoa/FontCascadeCocoa.mm:
351         (WebCore::setCGFontRenderingMode):
352         (WebCore::FontCascade::drawGlyphs):
353
354 2015-08-31  Tim Horton  <timothy_horton@apple.com>
355
356         iOS WebKit2 find-in-page doesn't support multi-line results, is often blank
357         https://bugs.webkit.org/show_bug.cgi?id=148599
358         <rdar://problem/17914031>
359
360         Reviewed by Beth Dakin.
361
362         * editing/FrameSelection.cpp:
363         (WebCore::FrameSelection::getClippedVisibleTextRectangles):
364         (WebCore::FrameSelection::getTextRectangles):
365         * editing/FrameSelection.h:
366         * page/TextIndicator.cpp:
367         (WebCore::initializeIndicator):
368         * page/TextIndicator.h:
369         Make it possible to create a TextIndicator that isn't clipped to the visible rect,
370         because iOS find-in-page TextIndicators persist while scrolling the page,
371         and are already constrained to the document rect anyway.
372
373 2015-08-31  Michael Catanzaro  <mcatanzaro@igalia.com>
374
375         [Freetype] FontCache::strengthOfFirstAlias leaks an FcPattern
376         https://bugs.webkit.org/show_bug.cgi?id=148624
377
378         Reviewed by Martin Robinson.
379
380         Using the normal RefPtr constructor causes the FcPattern to be reffed one extra time. Even
381         though the FcPattern is intentionally leaked to FcFontSetAdd down below, the FcPattern has
382         its own refcount and now it's screwed up. Just completely stop using RefPtr for these
383         FcPatterns, since the potential for confusion regarding leakRef combined with Fontconfig
384         refcounting far outweighs the benefit of using a smart pointer.
385
386         * platform/graphics/freetype/FontCacheFreeType.cpp:
387         (WebCore::strengthOfFirstAlias):
388
389 2015-08-31  Javier Fernandez  <jfernandez@igalia.com>
390
391         [CSS Grid Layout] auto-margins alignment does not work for heights
392         https://bugs.webkit.org/show_bug.cgi?id=148071
393
394         Reviewed by Sergio Villar Senin.
395
396         We still had pending to align grid items horizontally via auto-margins
397         alignment. We already landed a patch in r188582 to implement the
398         column-axis alignment and this patch implements the expected behavior in
399         the row-axis.
400
401         This patch also removes the logic in RenderBox, so we reduce grid related
402         code dependencies in the general layout logic. We can do that because this
403         patch manages that in the layoutGridItems function by resetting grid item's
404         margin and logicalTop (if it does not need to perform a layout, which it
405         would do the job anyway).
406
407         No new tests, we just need to adapt some cases of the ones we already have.
408
409         * rendering/RenderBox.cpp:
410         (WebCore::RenderBox::styleDidChange): Deleted.
411         (WebCore::RenderBox::willBeRemovedFromTree): Deleted.
412         (WebCore::RenderBox::updateFromStyle): Deleted.
413         * rendering/RenderGrid.cpp:
414         (WebCore::RenderGrid::layoutGridItems):
415         (WebCore::RenderGrid::resetAutoMarginsAndLogicalTopInColumnAxis):
416         (WebCore::RenderGrid::updateAutoMarginsInRowAxisIfNeeded):
417         (WebCore::RenderGrid::updateAutoMarginsInColumnAxisIfNeeded):
418         (WebCore::RenderGrid::hasAutoMarginsInRowAxis): Deleted.
419         * rendering/RenderGrid.h:
420
421 2015-08-31  Alexey Proskuryakov  <ap@apple.com>
422
423         Build fix.
424
425         * page/EventHandler.h:
426         (WebCore::EventHandler::immediateActionStage): Don't export an inline function,
427         to avoid "weak external symbol" errors.
428
429 2015-08-31  Enrica Casucci  <enrica@apple.com>
430
431         Incorrect cursor movement for U+26F9, U+1F3CB with variations.
432         https://bugs.webkit.org/show_bug.cgi?id=148629
433         rdar://problem/22492366
434
435         Reviewed by Ryosuke Niwa.
436
437         Updating text break iterator rules to correctly handle those two emoji with variations.
438
439         * platform/text/TextBreakIterator.cpp:
440         (WebCore::cursorMovementIterator):
441
442 2015-07-31  Sergio Villar Senin  <svillar@igalia.com>
443
444         [css-grid] Grid containers reporting wrong preferred widths
445         https://bugs.webkit.org/show_bug.cgi?id=147486
446
447         Reviewed by Darin Adler.
448
449         RenderGrid used to have its own overwritten version of
450         computePreferredLogicalWidths() because we didn't have an
451         implementation of computeIntrinsicLogicalWidths(). That
452         implementation was not as complete as RenderBlock's because it
453         was not taking into account min/max-width restrictions.
454
455         Provided that computeIntrinsicLogicalWidths() has been there
456         for some time we can safelly kill our overwrite and use
457         RenderBlock's version which addresses all the FIXMEs we had in
458         our code.
459
460         * rendering/RenderGrid.cpp:
461         * rendering/RenderGrid.h:
462
463 2015-08-31  Sungmann Cho  <sungmann.cho@navercorp.com>
464
465         Fix the WinCairo build after landing of webkit.org/b/148561.
466         https://bugs.webkit.org/show_bug.cgi?id=148627
467
468         Reviewed by Myles C. Maxfield.
469
470         No new tests, no behavior change.
471
472         * platform/graphics/win/ImageCairoWin.cpp:
473         (WebCore::BitmapImage::getHBITMAPOfSize):
474         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
475         (WebCore::MediaPlayerPrivateMediaFoundation::paint):
476         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
477
478 2015-08-31  Antti Koivisto  <antti@apple.com>
479
480         REGRESSION (r188820): fast/dom/HTMLObjectElement/object-as-frame.html is flaky
481         https://bugs.webkit.org/show_bug.cgi?id=148533
482
483         Reviewed by Chris Dumez.
484
485         <object> element may cause document load event fire too early. By making data URL
486         loading faster r188820 made this condition more likely to trigger in this test.
487
488         * loader/SubframeLoader.cpp:
489         (WebCore::SubframeLoader::loadSubframe):
490
491             Post-parsing style recalc may trigger loads for <object> elements. If all other loads have already
492             completed this may cause load event to fire synchronously from the initial empty document construction.
493
494             Fix by preventing load events during subframe initialization. They will be fired if needed by the
495             subsequent explicit call to FrameLoader::checkCompleted.
496
497 2015-08-30  Ryuan Choi  <ryuan.choi@navercorp.com>
498
499         [CoordinatedGraphics] Remove unnecessary two virtual methods from TiledBackingStoreClient
500         https://bugs.webkit.org/show_bug.cgi?id=147137
501
502         Reviewed by Gyuyoung Kim.
503
504         tiledBackingStoreContentsRect() and tiledBackingStoreVisibleRect() are not
505         necessary because CoordinatedGraphicsLayer can pass them directly if needed.
506         This patch removes them in order to simplify code flow between TiledBackingStore
507         and CoordinatedGraphicsLayer.
508
509         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
510         (WebCore::CoordinatedGraphicsLayer::imageBackingVisible):
511         (WebCore::CoordinatedGraphicsLayer::adjustContentsScale):
512         (WebCore::clampToContentsRectIfRectIsInfinite):
513         (WebCore::CoordinatedGraphicsLayer::transformedVisibleRect):
514         (WebCore::CoordinatedGraphicsLayer::updateContentBuffers):
515         (WebCore::CoordinatedGraphicsLayer::tiledBackingStoreContentsRect): Deleted.
516         (WebCore::CoordinatedGraphicsLayer::tiledBackingStoreVisibleRect): Deleted.
517         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
518         * platform/graphics/texmap/coordinated/TiledBackingStore.cpp:
519         (WebCore::TiledBackingStore::createTilesIfNeeded):
520         (WebCore::TiledBackingStore::coverageRatio):
521         (WebCore::TiledBackingStore::visibleAreaIsCovered):
522         Used TiledBackingStore's m_visibleRect and m_rect, cached and scaled values for
523         visibleRect, contentsRect.
524         (WebCore::TiledBackingStore::createTiles):
525         (WebCore::TiledBackingStore::removeAllNonVisibleTiles):
526         (WebCore::TiledBackingStore::coverWithTilesIfNeeded): Renamed to createTilesIfNeeded.
527         (WebCore::TiledBackingStore::visibleRect): Deleted. nobody used.
528         * platform/graphics/texmap/coordinated/TiledBackingStore.h:
529         * platform/graphics/texmap/coordinated/TiledBackingStoreClient.h:
530         (WebCore::TiledBackingStoreClient::tiledBackingStoreHasPendingTileCreation):
531         Removed default implementation.
532
533 2015-08-29  Jessie Berlin  <berlin@apple.com>
534
535         El Capitan build fix.
536
537         * platform/graphics/cocoa/FontCascadeCocoa.mm:
538         (WebCore::FontCascade::drawGlyphs):
539
540 2015-08-29  Chris Fleizach  <cfleizach@apple.com>
541
542         AX: When navigating the elements of a scrollable element with VoiceOver, the scrollTop() position of the element does not permanently change
543         https://bugs.webkit.org/show_bug.cgi?id=125720
544
545         Reviewed by Daniel Bates.
546
547         The scrollToVisible code did not account for scrollable elements that are larger than their viewports.
548         First, we need to pass the sub-focus up the scroll chain (otherwise we'll scroll some parent to y=0).
549         Second, we should try to center the focus within the viewport, rather than positioning at the bottom for a 
550         better experience.
551
552         This change was adapted from Blink r183926:
553         https://src.chromium.org/viewvc/blink?view=rev&revision=183926
554
555         Tests: accessibility/scroll-to-global-point-iframe-nested.html
556                accessibility/scroll-to-global-point-iframe.html
557                accessibility/scroll-to-global-point-main-window.html
558                accessibility/scroll-to-global-point-nested.html
559                accessibility/scroll-to-make-visible-div-overflow.html
560                accessibility/scroll-to-make-visible-iframe.html
561                accessibility/scroll-to-make-visible-nested-2.html
562                accessibility/scroll-to-make-visible-nested.html
563                accessibility/scroll-to-make-visible-with-subfocus.html
564
565         * accessibility/AccessibilityObject.cpp:
566         (WebCore::computeBestScrollOffset):
567         (WebCore::AccessibilityObject::isOnscreen):
568         (WebCore::AccessibilityObject::scrollToMakeVisibleWithSubFocus):
569         (WebCore::AccessibilityObject::scrollToGlobalPoint):
570         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
571         (-[WebAccessibilityObjectWrapper accessibilityScrollToVisible]):
572         (-[WebAccessibilityObjectWrapper _accessibilityScrollToMakeVisibleWithSubFocus:]):
573         (-[WebAccessibilityObjectWrapper _accessibilityScrollToGlobalPoint:]):
574         (-[WebAccessibilityObjectWrapper accessibilityPerformAction:]):
575
576 2015-08-28  Myles C. Maxfield  <mmaxfield@apple.com>
577
578         Migrate GraphicsContexts from pointers to references
579         https://bugs.webkit.org/show_bug.cgi?id=148561
580
581         Reviewed by Tim Horton.
582
583         We were using GraphicsContext*s throughout our rendering code. However,
584         these contexts can't be nullptr. This patch migrates users to
585         GraphicsContext&s.
586
587         This is a purely mechanical change.
588
589         No new tests because there is no behavior change.
590
591         * css/CSSFilterImageValue.cpp:
592         (WebCore::CSSFilterImageValue::image):
593         * editing/Editor.cpp:
594         (WebCore::Editor::countMatchesForText):
595         * editing/FrameSelection.cpp:
596         (WebCore::FrameSelection::paintCaret):
597         (WebCore::CaretBase::paintCaret):
598         (WebCore::DragCaretController::paintDragCaret):
599         * editing/FrameSelection.h:
600         * html/HTMLCanvasElement.cpp:
601         (WebCore::HTMLCanvasElement::paint):
602         (WebCore::HTMLCanvasElement::createImageBuffer):
603         (WebCore::HTMLCanvasElement::drawingContext):
604         * html/HTMLCanvasElement.h:
605         * html/HTMLVideoElement.cpp:
606         (WebCore::HTMLVideoElement::paintCurrentFrameInContext):
607         * html/HTMLVideoElement.h:
608         * html/canvas/CanvasRenderingContext2D.cpp:
609         (WebCore::CanvasRenderingContext2D::drawImage):
610         (WebCore::drawImageToContext):
611         (WebCore::CanvasRenderingContext2D::fullCanvasCompositedDrawImage):
612         (WebCore::CanvasRenderingContext2D::drawTextInternal):
613         * html/canvas/WebGLRenderingContextBase.cpp:
614         (WebCore::WebGLRenderingContextBase::drawImageIntoBuffer):
615         * inspector/InspectorOverlay.cpp:
616         (WebCore::InspectorOverlay::paint):
617         * page/FrameSnapshotting.cpp:
618         (WebCore::snapshotFrameRect):
619         * page/FrameView.cpp:
620         (WebCore::FrameView::paintScrollCorner):
621         (WebCore::FrameView::paintScrollbar):
622         (WebCore::FrameView::paintControlTints):
623         (WebCore::FrameView::willPaintContents):
624         (WebCore::FrameView::didPaintContents):
625         (WebCore::FrameView::paintContents):
626         (WebCore::FrameView::paintContentsForSnapshot):
627         (WebCore::FrameView::paintOverhangAreas):
628         (WebCore::FrameView::adjustPageHeightDeprecated):
629         * page/FrameView.h:
630         * page/PrintContext.cpp:
631         (WebCore::PrintContext::spoolPage):
632         (WebCore::PrintContext::spoolRect):
633         * page/win/FrameCGWin.cpp:
634         (WebCore::drawRectIntoContext):
635         (WebCore::imageFromRect):
636         * platform/ScrollView.cpp:
637         (WebCore::ScrollView::paintScrollCorner):
638         (WebCore::ScrollView::paintScrollbar):
639         (WebCore::ScrollView::paintScrollbars):
640         (WebCore::ScrollView::paintPanScrollIcon):
641         (WebCore::ScrollView::paint):
642         (WebCore::ScrollView::paintOverhangAreas):
643         (WebCore::ScrollView::calculateAndPaintOverhangAreas):
644         * platform/ScrollView.h:
645         * platform/Scrollbar.cpp:
646         (WebCore::Scrollbar::paint):
647         * platform/Scrollbar.h:
648         * platform/ScrollbarTheme.h:
649         (WebCore::ScrollbarTheme::paintScrollCorner):
650         (WebCore::ScrollbarTheme::defaultPaintScrollCorner):
651         (WebCore::ScrollbarTheme::paintOverhangAreas):
652         * platform/ScrollbarThemeComposite.cpp:
653         (WebCore::ScrollbarThemeComposite::paintScrollCorner):
654         (WebCore::ScrollbarThemeComposite::paintOverhangAreas):
655         * platform/ScrollbarThemeComposite.h:
656         * platform/Theme.cpp:
657         (WebCore::Theme::drawNamedImage):
658         * platform/Theme.h:
659         (WebCore::Theme::paint):
660         * platform/Widget.h:
661         * platform/cocoa/ThemeCocoa.cpp:
662         (WebCore::fitContextToBox):
663         (WebCore::ThemeCocoa::drawNamedImage):
664         * platform/cocoa/ThemeCocoa.h:
665         * platform/efl/WidgetEfl.cpp:
666         (WebCore::Widget::paint):
667         * platform/graphics/BitmapImage.cpp:
668         (WebCore::BitmapImage::drawPattern):
669         * platform/graphics/BitmapImage.h:
670         * platform/graphics/CrossfadeGeneratedImage.cpp:
671         (WebCore::drawCrossfadeSubimage):
672         (WebCore::CrossfadeGeneratedImage::drawCrossfade):
673         (WebCore::CrossfadeGeneratedImage::draw):
674         (WebCore::CrossfadeGeneratedImage::drawPattern):
675         * platform/graphics/CrossfadeGeneratedImage.h:
676         * platform/graphics/FontCascade.cpp:
677         (WebCore::FontCascade::drawText):
678         (WebCore::FontCascade::drawEmphasisMarks):
679         (WebCore::FontCascade::drawSimpleText):
680         (WebCore::FontCascade::drawEmphasisMarksForSimpleText):
681         (WebCore::FontCascade::drawGlyphBuffer):
682         * platform/graphics/FontCascade.h:
683         * platform/graphics/GeneratedImage.h:
684         * platform/graphics/GradientImage.cpp:
685         (WebCore::GradientImage::draw):
686         (WebCore::GradientImage::drawPattern):
687         * platform/graphics/GradientImage.h:
688         * platform/graphics/GraphicsContext.cpp:
689         (WebCore::GraphicsContext::drawText):
690         (WebCore::GraphicsContext::drawGlyphs):
691         (WebCore::GraphicsContext::drawEmphasisMarks):
692         (WebCore::GraphicsContext::drawBidiText):
693         (WebCore::GraphicsContext::drawImage):
694         (WebCore::GraphicsContext::drawTiledImage):
695         (WebCore::GraphicsContext::drawImageBuffer):
696         (WebCore::GraphicsContext::clipToImageBuffer):
697         (WebCore::GraphicsContext::createCompatibleBuffer):
698         (WebCore::GraphicsContext::isCompatibleWithBuffer):
699         * platform/graphics/GraphicsContext.h:
700         * platform/graphics/GraphicsContext3D.h:
701         * platform/graphics/Image.cpp:
702         (WebCore::Image::fillWithSolidColor):
703         (WebCore::Image::draw):
704         (WebCore::Image::drawTiled):
705         * platform/graphics/Image.h:
706         (WebCore::Image::drawFrameMatchingSourceSize):
707         * platform/graphics/ImageBuffer.cpp:
708         (WebCore::ImageBuffer::createCompatibleBuffer):
709         * platform/graphics/ImageBuffer.h:
710         * platform/graphics/MediaPlayer.cpp:
711         (WebCore::MediaPlayer::paint):
712         (WebCore::MediaPlayer::paintCurrentFrameInContext):
713         * platform/graphics/MediaPlayer.h:
714         * platform/graphics/MediaPlayerPrivate.h:
715         (WebCore::MediaPlayerPrivateInterface::paintCurrentFrameInContext):
716         * platform/graphics/NamedImageGeneratedImage.cpp:
717         (WebCore::NamedImageGeneratedImage::draw):
718         (WebCore::NamedImageGeneratedImage::drawPattern):
719         * platform/graphics/NamedImageGeneratedImage.h:
720         * platform/graphics/ShadowBlur.cpp:
721         (WebCore::ShadowBlur::adjustBlurRadius):
722         (WebCore::ShadowBlur::calculateLayerBoundingRect):
723         (WebCore::ShadowBlur::drawShadowBuffer):
724         (WebCore::ShadowBlur::drawRectShadow):
725         (WebCore::ShadowBlur::drawInsetShadow):
726         (WebCore::ShadowBlur::drawRectShadowWithoutTiling):
727         (WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
728         (WebCore::ShadowBlur::drawInsetShadowWithTiling):
729         (WebCore::ShadowBlur::drawRectShadowWithTiling):
730         (WebCore::ShadowBlur::drawLayerPieces):
731         (WebCore::ShadowBlur::blurAndColorShadowBuffer):
732         (WebCore::ShadowBlur::beginShadowLayer):
733         (WebCore::ShadowBlur::endShadowLayer):
734         * platform/graphics/ShadowBlur.h:
735         * platform/graphics/TextRun.h:
736         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
737         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
738         (WebCore::MediaPlayerPrivateAVFoundationCF::paintCurrentFrameInContext):
739         (WebCore::MediaPlayerPrivateAVFoundationCF::paint):
740         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
741         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
742         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
743         (WebCore::MediaPlayerPrivateAVFoundationObjC::paintCurrentFrameInContext):
744         (WebCore::MediaPlayerPrivateAVFoundationObjC::paint):
745         (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithImageGenerator):
746         (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
747         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
748         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
749         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paint):
750         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paintCurrentFrameInContext):
751         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
752         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
753         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paint):
754         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paintCurrentFrameInContext):
755         * platform/graphics/cairo/BitmapImageCairo.cpp:
756         (WebCore::BitmapImage::draw):
757         * platform/graphics/cairo/FontCairo.cpp:
758         (WebCore::drawGlyphsToContext):
759         (WebCore::drawGlyphsShadow):
760         (WebCore::FontCascade::drawGlyphs):
761         * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
762         (WebCore::FontCascade::drawComplexText):
763         (WebCore::FontCascade::drawEmphasisMarksForComplexText):
764         * platform/graphics/cairo/GraphicsContextCairo.cpp:
765         (WebCore::drawPathShadow):
766         (WebCore::fillCurrentCairoPath):
767         (WebCore::shadowAndFillCurrentCairoPath):
768         (WebCore::shadowAndStrokeCurrentCairoPath):
769         (WebCore::GraphicsContext::fillPath):
770         (WebCore::GraphicsContext::strokePath):
771         (WebCore::GraphicsContext::fillRect):
772         (WebCore::GraphicsContext::strokeRect):
773         (WebCore::GraphicsContext::platformFillRoundedRect):
774         (WebCore::GraphicsContext::fillRectWithRoundedHole):
775         * platform/graphics/cairo/ImageBufferCairo.cpp:
776         (WebCore::ImageBuffer::context):
777         (WebCore::ImageBuffer::clip):
778         (WebCore::ImageBuffer::draw):
779         (WebCore::ImageBuffer::drawPattern):
780         (WebCore::ImageBuffer::toDataURL):
781         * platform/graphics/cairo/ImageCairo.cpp:
782         (WebCore::Image::drawPattern):
783         * platform/graphics/cairo/PlatformContextCairo.cpp:
784         (WebCore::PlatformContextCairo::drawSurfaceToContext):
785         * platform/graphics/cairo/PlatformContextCairo.h:
786         * platform/graphics/cg/BitmapImageCG.cpp:
787         (WebCore::BitmapImage::draw):
788         * platform/graphics/cg/GraphicsContext3DCG.cpp:
789         (WebCore::GraphicsContext3D::paintToCanvas):
790         * platform/graphics/cg/GraphicsContextCG.cpp:
791         (WebCore::GraphicsContext::fillRect):
792         (WebCore::GraphicsContext::platformFillRoundedRect):
793         (WebCore::GraphicsContext::fillRectWithRoundedHole):
794         * platform/graphics/cg/ImageBufferCG.cpp:
795         (WebCore::ImageBuffer::ImageBuffer):
796         (WebCore::ImageBuffer::context):
797         (WebCore::ImageBuffer::flushContext):
798         (WebCore::ImageBuffer::copyNativeImage):
799         (WebCore::ImageBuffer::draw):
800         (WebCore::ImageBuffer::drawPattern):
801         (WebCore::ImageBuffer::clip):
802         (WebCore::ImageBuffer::getUnmultipliedImageData):
803         (WebCore::ImageBuffer::getPremultipliedImageData):
804         (WebCore::ImageBuffer::putByteArray):
805         (WebCore::ImageBuffer::toDataURL):
806         * platform/graphics/cg/ImageCG.cpp:
807         (WebCore::Image::drawPattern):
808         * platform/graphics/cg/PDFDocumentImage.cpp:
809         (WebCore::PDFDocumentImage::cacheParametersMatch):
810         (WebCore::transformContextForPainting):
811         (WebCore::PDFDocumentImage::updateCachedImageIfNeeded):
812         (WebCore::PDFDocumentImage::draw):
813         (WebCore::applyRotationForPainting):
814         (WebCore::PDFDocumentImage::drawPDFPage):
815         * platform/graphics/cg/PDFDocumentImage.h:
816         * platform/graphics/cocoa/FontCascadeCocoa.mm:
817         (WebCore::showLetterpressedGlyphsWithAdvances):
818         (WebCore::showGlyphsWithAdvances):
819         (WebCore::FontCascade::drawGlyphs):
820         (WebCore::FontCascade::drawComplexText):
821         (WebCore::FontCascade::drawEmphasisMarksForComplexText):
822         * platform/graphics/efl/ImageBufferEfl.cpp:
823         (WebCore::ImageBuffer::toDataURL):
824         * platform/graphics/filters/FEBlend.cpp:
825         (WebCore::FEBlend::platformApplySoftware):
826         * platform/graphics/filters/FEColorMatrix.cpp:
827         (WebCore::FEColorMatrix::platformApplySoftware):
828         * platform/graphics/filters/FEComposite.cpp:
829         (WebCore::FEComposite::platformApplySoftware):
830         * platform/graphics/filters/FEDropShadow.cpp:
831         (WebCore::FEDropShadow::platformApplySoftware):
832         * platform/graphics/filters/FEFlood.cpp:
833         (WebCore::FEFlood::platformApplySoftware):
834         * platform/graphics/filters/FEMerge.cpp:
835         (WebCore::FEMerge::platformApplySoftware):
836         * platform/graphics/filters/FEOffset.cpp:
837         (WebCore::FEOffset::platformApplySoftware):
838         * platform/graphics/filters/FETile.cpp:
839         (WebCore::FETile::platformApplySoftware):
840         * platform/graphics/filters/FilterEffect.cpp:
841         (WebCore::FilterEffect::createImageBufferResult): Deleted.
842         * platform/graphics/filters/SourceAlpha.cpp:
843         (WebCore::SourceAlpha::platformApplySoftware):
844         * platform/graphics/filters/SourceGraphic.cpp:
845         (WebCore::SourceGraphic::platformApplySoftware):
846         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
847         (WebCore::MediaPlayerPrivateGStreamerBase::paint):
848         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
849         * platform/graphics/mac/GraphicsContextMac.mm:
850         (WebCore::GraphicsContext::drawLineForDocumentMarker):
851         * platform/graphics/mac/IconMac.mm:
852         (WebCore::Icon::paint):
853         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
854         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
855         (WebCore::MediaPlayerPrivateQTKit::paintCurrentFrameInContext):
856         (WebCore::MediaPlayerPrivateQTKit::paint):
857         * platform/graphics/mac/PDFDocumentImageMac.mm:
858         (WebCore::PDFDocumentImage::drawPDFPage):
859         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
860         (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
861         * platform/graphics/texmap/BitmapTexture.cpp:
862         (WebCore::BitmapTexture::updateContents):
863         * platform/graphics/win/FontCGWin.cpp:
864         (WebCore::FontCascade::drawGlyphs):
865         * platform/graphics/win/FontWin.cpp:
866         (WebCore::FontCascade::drawComplexText):
867         (WebCore::FontCascade::drawEmphasisMarksForComplexText):
868         * platform/graphics/win/IconWin.cpp:
869         (WebCore::Icon::paint):
870         * platform/graphics/win/ImageCGWin.cpp:
871         (WebCore::BitmapImage::getHBITMAPOfSize):
872         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
873         * platform/graphics/win/ImageCairoWin.cpp:
874         (WebCore::BitmapImage::getHBITMAPOfSize):
875         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
876         * platform/graphics/win/LocalWindowsContext.h:
877         (WebCore::LocalWindowsContext::LocalWindowsContext):
878         (WebCore::LocalWindowsContext::~LocalWindowsContext):
879         * platform/gtk/WidgetGtk.cpp:
880         (WebCore::Widget::paint):
881         * platform/ios/WidgetIOS.mm:
882         (WebCore::Widget::paint):
883         * platform/mac/DragImageMac.mm:
884         (WebCore::drawAtPoint):
885         * platform/mac/LocalCurrentGraphicsContext.h:
886         (WebCore::ContextContainer::ContextContainer):
887         * platform/mac/LocalCurrentGraphicsContext.mm:
888         (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext):
889         (WebCore::LocalCurrentGraphicsContext::~LocalCurrentGraphicsContext):
890         (WebCore::LocalCurrentGraphicsContext::cgContext):
891         * platform/mac/ScrollbarThemeMac.mm:
892         (WebCore::ScrollbarThemeMac::paint):
893         * platform/mac/ThemeMac.h:
894         * platform/mac/ThemeMac.mm:
895         (WebCore::paintToggleButton):
896         (WebCore::paintButton):
897         (WebCore::paintStepper):
898         (WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):
899         (WebCore::ThemeMac::paint):
900         * platform/mac/WidgetMac.mm:
901         (WebCore::Widget::paint):
902         * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
903         (WebCore::MockMediaPlayerMediaSource::paint):
904         * platform/mock/mediasource/MockMediaPlayerMediaSource.h:
905         * platform/win/PopupMenuWin.cpp:
906         (WebCore::PopupMenuWin::paint):
907         * platform/win/ScrollbarThemeWin.cpp:
908         (WebCore::ScrollbarThemeWin::paintTrackPiece):
909         (WebCore::ScrollbarThemeWin::paintButton):
910         (WebCore::ScrollbarThemeWin::paintThumb):
911         * platform/win/WebCoreTextRenderer.cpp:
912         (WebCore::doDrawTextAtPoint):
913         * platform/win/WidgetWin.cpp:
914         (WebCore::Widget::paint):
915         * rendering/EllipsisBox.cpp:
916         (WebCore::EllipsisBox::paint):
917         (WebCore::EllipsisBox::paintSelection):
918         * rendering/EllipsisBox.h:
919         * rendering/FilterEffectRenderer.cpp:
920         (WebCore::FilterEffectRenderer::inputContext):
921         (WebCore::FilterEffectRendererHelper::applyFilterEffect):
922         * rendering/FilterEffectRenderer.h:
923         * rendering/ImageQualityController.cpp:
924         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
925         * rendering/ImageQualityController.h:
926         * rendering/InlineFlowBox.cpp:
927         (WebCore::InlineFlowBox::paintFillLayer):
928         (WebCore::InlineFlowBox::paintBoxDecorations):
929         (WebCore::InlineFlowBox::paintMask):
930         * rendering/InlineTextBox.cpp:
931         (WebCore::InlineTextBox::paint):
932         * rendering/PaintInfo.h:
933         (WebCore::PaintInfo::PaintInfo):
934         (WebCore::PaintInfo::context):
935         (WebCore::PaintInfo::setContext):
936         (WebCore::PaintInfo::applyTransform):
937         * rendering/RenderBlock.cpp:
938         (WebCore::RenderBlock::paint):
939         (WebCore::RenderBlock::paintCaret):
940         (WebCore::RenderBlock::paintObject):
941         (WebCore::RenderBlock::paintSelection):
942         (WebCore::clipOutPositionedObjects):
943         (WebCore::RenderBlock::blockSelectionGap):
944         (WebCore::RenderBlock::logicalLeftSelectionGap):
945         (WebCore::RenderBlock::logicalRightSelectionGap):
946         * rendering/RenderBlockFlow.cpp:
947         (WebCore::RenderBlockFlow::paintColumnRules):
948         (WebCore::RenderBlockFlow::clipOutFloatingObjects):
949         * rendering/RenderBox.cpp:
950         (WebCore::RenderBox::determineBackgroundBleedAvoidance):
951         (WebCore::RenderBox::paintBoxDecorations):
952         (WebCore::RenderBox::paintMask):
953         (WebCore::RenderBox::paintClippingMask):
954         (WebCore::RenderBox::paintMaskImages):
955         (WebCore::RenderBox::paintFillLayers):
956         (WebCore::RenderBox::pushContentsClip):
957         (WebCore::RenderBox::popContentsClip):
958         * rendering/RenderBox.h:
959         * rendering/RenderBoxModelObject.cpp:
960         (WebCore::RenderBoxModelObject::shouldPaintAtLowQuality):
961         (WebCore::RenderBoxModelObject::clipRoundedInnerRect):
962         (WebCore::applyBoxShadowForBackground):
963         (WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
964         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
965         (WebCore::RenderBoxModelObject::paintNinePieceImage):
966         (WebCore::RenderBoxModelObject::paintOneBorderSide):
967         (WebCore::RenderBoxModelObject::paintBorderSides):
968         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
969         (WebCore::RenderBoxModelObject::paintBorder):
970         (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
971         (WebCore::RenderBoxModelObject::clipBorderSidePolygon):
972         (WebCore::RenderBoxModelObject::clipBorderSideForComplexInnerPath):
973         (WebCore::RenderBoxModelObject::paintBoxShadow):
974         (WebCore::RenderBoxModelObject::shouldAntialiasLines):
975         * rendering/RenderBoxModelObject.h:
976         * rendering/RenderDetailsMarker.cpp:
977         (WebCore::RenderDetailsMarker::paint):
978         * rendering/RenderElement.cpp:
979         (WebCore::RenderElement::paintFocusRing):
980         (WebCore::RenderElement::paintOutline):
981         * rendering/RenderEmbeddedObject.cpp:
982         (WebCore::RenderEmbeddedObject::paintSnapshotImage):
983         (WebCore::drawReplacementArrow):
984         (WebCore::RenderEmbeddedObject::paintReplaced):
985         * rendering/RenderFieldset.cpp:
986         (WebCore::RenderFieldset::paintBoxDecorations):
987         * rendering/RenderFileUploadControl.cpp:
988         (WebCore::RenderFileUploadControl::paintObject):
989         * rendering/RenderFrameSet.cpp:
990         (WebCore::RenderFrameSet::paintColumnBorder):
991         (WebCore::RenderFrameSet::paintRowBorder):
992         * rendering/RenderHTMLCanvas.cpp:
993         (WebCore::RenderHTMLCanvas::paintReplaced):
994         * rendering/RenderImage.cpp:
995         (WebCore::RenderImage::paintReplaced):
996         (WebCore::RenderImage::paintAreaElementFocusRing):
997         (WebCore::RenderImage::paintIntoRect):
998         * rendering/RenderImage.h:
999         * rendering/RenderInline.cpp:
1000         (WebCore::RenderInline::paintOutline):
1001         (WebCore::RenderInline::paintOutlineForLine):
1002         * rendering/RenderInline.h:
1003         * rendering/RenderLayer.cpp:
1004         (WebCore::RenderLayer::beginTransparencyLayers):
1005         (WebCore::RenderLayer::paintOverflowControls):
1006         (WebCore::RenderLayer::paintScrollCorner):
1007         (WebCore::RenderLayer::drawPlatformResizerImage):
1008         (WebCore::RenderLayer::paintResizer):
1009         (WebCore::RenderLayer::paint):
1010         (WebCore::RenderLayer::paintOverlayScrollbars):
1011         (WebCore::RenderLayer::clipToRect):
1012         (WebCore::RenderLayer::restoreClip):
1013         (WebCore::RenderLayer::paintLayer):
1014         (WebCore::RenderLayer::paintLayerContentsAndReflection):
1015         (WebCore::RenderLayer::setupFontSubpixelQuantization):
1016         (WebCore::RenderLayer::setupClipPath):
1017         (WebCore::RenderLayer::hasFilterThatIsPainting):
1018         (WebCore::RenderLayer::setupFilters):
1019         (WebCore::RenderLayer::applyFilters):
1020         (WebCore::RenderLayer::paintFixedLayersInNamedFlows):
1021         (WebCore::RenderLayer::paintLayerContents):
1022         (WebCore::RenderLayer::paintLayerByApplyingTransform):
1023         (WebCore::RenderLayer::paintList):
1024         (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
1025         (WebCore::RenderLayer::paintBackgroundForFragments):
1026         (WebCore::RenderLayer::paintForegroundForFragments):
1027         (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
1028         (WebCore::RenderLayer::paintOutlineForFragments):
1029         (WebCore::RenderLayer::paintMaskForFragments):
1030         (WebCore::RenderLayer::paintChildClippingMaskForFragments):
1031         (WebCore::RenderLayer::paintOverflowControlsForFragments):
1032         (WebCore::RenderLayer::calculateClipRects):
1033         * rendering/RenderLayer.h:
1034         * rendering/RenderLayerBacking.cpp:
1035         (WebCore::RenderLayerBacking::paintIntoLayer):
1036         (WebCore::RenderLayerBacking::paintContents):
1037         * rendering/RenderLayerBacking.h:
1038         * rendering/RenderLayerCompositor.cpp:
1039         (WebCore::paintScrollbar):
1040         (WebCore::RenderLayerCompositor::paintContents):
1041         * rendering/RenderListBox.cpp:
1042         (WebCore::RenderListBox::paintScrollbar):
1043         (WebCore::RenderListBox::paintItemForeground):
1044         (WebCore::RenderListBox::paintItemBackground):
1045         * rendering/RenderListMarker.cpp:
1046         (WebCore::RenderListMarker::paint):
1047         * rendering/RenderMediaControls.cpp:
1048         (WebCore::getUnzoomedRectAndAdjustCurrentContext):
1049         (WebCore::RenderMediaControls::paintMediaControlsPart):
1050         * rendering/RenderMultiColumnSet.cpp:
1051         (WebCore::RenderMultiColumnSet::paintColumnRules):
1052         * rendering/RenderObject.cpp:
1053         (WebCore::RenderObject::addPDFURLRect):
1054         * rendering/RenderReplaced.cpp:
1055         (WebCore::RenderReplaced::paint):
1056         * rendering/RenderReplica.cpp:
1057         (WebCore::RenderReplica::paint):
1058         * rendering/RenderScrollbar.cpp:
1059         (WebCore::RenderScrollbar::paint):
1060         (WebCore::RenderScrollbar::paintPart):
1061         * rendering/RenderScrollbar.h:
1062         * rendering/RenderScrollbarPart.cpp:
1063         (WebCore::RenderScrollbarPart::paintIntoRect):
1064         * rendering/RenderScrollbarPart.h:
1065         * rendering/RenderScrollbarTheme.cpp:
1066         (WebCore::RenderScrollbarTheme::paintScrollCorner):
1067         (WebCore::RenderScrollbarTheme::paintScrollbarBackground):
1068         (WebCore::RenderScrollbarTheme::paintTrackBackground):
1069         (WebCore::RenderScrollbarTheme::paintTrackPiece):
1070         (WebCore::RenderScrollbarTheme::paintButton):
1071         (WebCore::RenderScrollbarTheme::paintThumb):
1072         * rendering/RenderScrollbarTheme.h:
1073         * rendering/RenderSnapshottedPlugIn.cpp:
1074         (WebCore::RenderSnapshottedPlugIn::paintSnapshot):
1075         * rendering/RenderTable.cpp:
1076         (WebCore::RenderTable::paintBoxDecorations):
1077         * rendering/RenderTableCell.cpp:
1078         (WebCore::RenderTableCell::paintCollapsedBorders):
1079         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
1080         * rendering/RenderTableSection.cpp:
1081         (WebCore::RenderTableSection::paintRowGroupBorder):
1082         (WebCore::RenderTableSection::paintRowGroupBorderIfRequired):
1083         * rendering/RenderTheme.cpp:
1084         (WebCore::RenderTheme::paint):
1085         (WebCore::RenderTheme::paintBorderOnly):
1086         (WebCore::RenderTheme::paintDecorations):
1087         (WebCore::RenderTheme::paintSliderTicks):
1088         * rendering/RenderThemeEfl.cpp:
1089         (WebCore::RenderThemeEfl::paintThemePart):
1090         * rendering/RenderThemeGtk.cpp:
1091         (WebCore::paintToggle):
1092         (WebCore::renderButton):
1093         (WebCore::RenderThemeGtk::paintMenuList):
1094         (WebCore::RenderThemeGtk::paintTextField):
1095         (WebCore::paintGdkPixbuf):
1096         (WebCore::RenderThemeGtk::paintSearchFieldResultsDecorationPart):
1097         (WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
1098         (WebCore::RenderThemeGtk::paintCapsLockIndicator):
1099         (WebCore::RenderThemeGtk::paintSliderTrack):
1100         (WebCore::RenderThemeGtk::paintSliderThumb):
1101         (WebCore::RenderThemeGtk::paintProgressBar):
1102         (WebCore::paintSpinArrowButton):
1103         (WebCore::RenderThemeGtk::paintMediaButton):
1104         (WebCore::RenderThemeGtk::paintMediaFullscreenButton):
1105         (WebCore::RenderThemeGtk::paintMediaMuteButton):
1106         (WebCore::RenderThemeGtk::paintMediaPlayButton):
1107         (WebCore::RenderThemeGtk::paintMediaSeekBackButton):
1108         (WebCore::RenderThemeGtk::paintMediaSeekForwardButton):
1109         (WebCore::RenderThemeGtk::paintMediaToggleClosedCaptionsButton):
1110         (WebCore::RenderThemeGtk::paintMediaSliderTrack):
1111         (WebCore::RenderThemeGtk::paintMediaSliderThumb):
1112         (WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack):
1113         * rendering/RenderThemeGtk.h:
1114         * rendering/RenderThemeIOS.h:
1115         * rendering/RenderThemeIOS.mm:
1116         (WebCore::RenderThemeIOS::addRoundedBorderClip):
1117         (WebCore::RenderThemeIOS::paintCheckboxDecorations):
1118         (WebCore::RenderThemeIOS::paintRadioDecorations):
1119         (WebCore::RenderThemeIOS::paintTextFieldDecorations):
1120         (WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
1121         (WebCore::RenderThemeIOS::paintSliderTrack):
1122         (WebCore::RenderThemeIOS::paintSliderThumbDecorations):
1123         (WebCore::RenderThemeIOS::paintProgressBar):
1124         (WebCore::RenderThemeIOS::paintPushButtonDecorations):
1125         (WebCore::RenderThemeIOS::paintFileUploadIconDecorations):
1126         * rendering/RenderThemeMac.mm:
1127         (WebCore::RenderThemeMac::paintTextField):
1128         (WebCore::RenderThemeMac::paintTextArea):
1129         (WebCore::RenderThemeMac::paintMenuList):
1130         (WebCore::RenderThemeMac::paintMeter):
1131         (WebCore::RenderThemeMac::paintProgressBar):
1132         (WebCore::RenderThemeMac::paintMenuListButtonGradients):
1133         (WebCore::RenderThemeMac::paintMenuListButtonDecorations):
1134         (WebCore::RenderThemeMac::paintCellAndSetFocusedElementNeedsRepaintIfNecessary):
1135         (WebCore::RenderThemeMac::paintSliderTrack):
1136         (WebCore::RenderThemeMac::paintSliderThumb):
1137         (WebCore::RenderThemeMac::paintSearchField):
1138         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
1139         (WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart):
1140         (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
1141         (WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):
1142         (WebCore::RenderThemeMac::paintImageControlsButton):
1143         (WebCore::RenderThemeMac::paintAttachment):
1144         * rendering/RenderThemeSafari.cpp:
1145         (WebCore::RenderThemeSafari::paintCheckbox):
1146         (WebCore::RenderThemeSafari::paintRadio):
1147         (WebCore::RenderThemeSafari::paintButton):
1148         (WebCore::RenderThemeSafari::paintTextField):
1149         (WebCore::RenderThemeSafari::paintCapsLockIndicator):
1150         (WebCore::RenderThemeSafari::paintTextArea):
1151         (WebCore::RenderThemeSafari::paintMenuList):
1152         (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
1153         (WebCore::RenderThemeSafari::paintMenuListButtonDecorations):
1154         (WebCore::RenderThemeSafari::paintSliderTrack):
1155         (WebCore::RenderThemeSafari::paintSliderThumb):
1156         (WebCore::RenderThemeSafari::paintSearchField):
1157         (WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
1158         (WebCore::RenderThemeSafari::paintSearchFieldResultsDecorationPart):
1159         (WebCore::RenderThemeSafari::paintSearchFieldResultsButton):
1160         * rendering/RenderThemeWin.cpp:
1161         (WebCore::drawControl):
1162         (WebCore::RenderThemeWin::paintButton):
1163         (WebCore::RenderThemeWin::paintInnerSpinButton):
1164         (WebCore::RenderThemeWin::paintTextField):
1165         (WebCore::RenderThemeWin::paintMenuList):
1166         (WebCore::RenderThemeWin::paintMenuListButtonDecorations):
1167         (WebCore::RenderThemeWin::paintSliderTrack):
1168         (WebCore::RenderThemeWin::paintSliderThumb):
1169         (WebCore::RenderThemeWin::paintSearchFieldCancelButton):
1170         (WebCore::RenderThemeWin::paintSearchFieldResultsDecorationPart):
1171         (WebCore::RenderThemeWin::paintSearchFieldResultsButton):
1172         (WebCore::RenderThemeWin::paintMeter):
1173         * rendering/RenderVideo.cpp:
1174         (WebCore::RenderVideo::paintReplaced):
1175         * rendering/RenderView.cpp:
1176         (WebCore::RenderView::paint):
1177         (WebCore::RenderView::paintBoxDecorations):
1178         * rendering/RenderWidget.cpp:
1179         (WebCore::RenderWidget::paintContents):
1180         (WebCore::RenderWidget::paint):
1181         * rendering/RootInlineBox.cpp:
1182         (WebCore::RootInlineBox::lineSelectionGap):
1183         * rendering/SimpleLineLayoutFunctions.cpp:
1184         (WebCore::SimpleLineLayout::paintFlow):
1185         * rendering/mathml/RenderMathMLBlock.cpp:
1186         (WebCore::RenderMathMLBlock::paint):
1187         * rendering/mathml/RenderMathMLFraction.cpp:
1188         (WebCore::RenderMathMLFraction::paint):
1189         * rendering/mathml/RenderMathMLMenclose.cpp:
1190         (WebCore::RenderMathMLMenclose::paint):
1191         * rendering/mathml/RenderMathMLOperator.cpp:
1192         (WebCore::RenderMathMLOperator::paintGlyph):
1193         (WebCore::RenderMathMLOperator::fillWithVerticalExtensionGlyph):
1194         (WebCore::RenderMathMLOperator::fillWithHorizontalExtensionGlyph):
1195         (WebCore::RenderMathMLOperator::paint):
1196         * rendering/mathml/RenderMathMLRadicalOperator.cpp:
1197         (WebCore::RenderMathMLRadicalOperator::paint):
1198         * rendering/mathml/RenderMathMLRoot.cpp:
1199         (WebCore::RenderMathMLRoot::paint):
1200         * rendering/shapes/Shape.cpp:
1201         (WebCore::Shape::createRasterShape):
1202         * rendering/style/NinePieceImage.cpp:
1203         (WebCore::NinePieceImage::paint):
1204         * rendering/style/NinePieceImage.h:
1205         * rendering/svg/RenderSVGContainer.cpp:
1206         (WebCore::RenderSVGContainer::paint):
1207         * rendering/svg/RenderSVGEllipse.cpp:
1208         (WebCore::RenderSVGEllipse::fillShape):
1209         (WebCore::RenderSVGEllipse::strokeShape):
1210         * rendering/svg/RenderSVGEllipse.h:
1211         * rendering/svg/RenderSVGForeignObject.cpp:
1212         (WebCore::RenderSVGForeignObject::paint):
1213         * rendering/svg/RenderSVGImage.cpp:
1214         (WebCore::RenderSVGImage::paint):
1215         (WebCore::RenderSVGImage::paintForeground):
1216         * rendering/svg/RenderSVGPath.cpp:
1217         (WebCore::useStrokeStyleToFill):
1218         (WebCore::RenderSVGPath::strokeShape):
1219         * rendering/svg/RenderSVGPath.h:
1220         * rendering/svg/RenderSVGRect.cpp:
1221         (WebCore::RenderSVGRect::fillShape):
1222         (WebCore::RenderSVGRect::strokeShape):
1223         * rendering/svg/RenderSVGRect.h:
1224         * rendering/svg/RenderSVGResourceClipper.cpp:
1225         (WebCore::RenderSVGResourceClipper::applyResource):
1226         (WebCore::RenderSVGResourceClipper::pathOnlyClipping):
1227         (WebCore::RenderSVGResourceClipper::applyClippingToContext):
1228         (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
1229         * rendering/svg/RenderSVGResourceClipper.h:
1230         * rendering/svg/RenderSVGResourceFilter.cpp:
1231         (WebCore::RenderSVGResourceFilter::applyResource):
1232         * rendering/svg/RenderSVGResourceGradient.cpp:
1233         (WebCore::createMaskAndSwapContextForTextGradient):
1234         (WebCore::clipToTextMask):
1235         (WebCore::RenderSVGResourceGradient::applyResource):
1236         * rendering/svg/RenderSVGResourceMarker.cpp:
1237         (WebCore::RenderSVGResourceMarker::applyViewportClip):
1238         (WebCore::RenderSVGResourceMarker::draw):
1239         * rendering/svg/RenderSVGResourceMasker.cpp:
1240         (WebCore::RenderSVGResourceMasker::applyResource):
1241         (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
1242         * rendering/svg/RenderSVGResourcePattern.cpp:
1243         (WebCore::RenderSVGResourcePattern::postApplyResource):
1244         (WebCore::RenderSVGResourcePattern::createTileImage):
1245         * rendering/svg/RenderSVGResourceSolidColor.cpp:
1246         (WebCore::RenderSVGResourceSolidColor::postApplyResource):
1247         * rendering/svg/RenderSVGRoot.cpp:
1248         (WebCore::RenderSVGRoot::paintReplaced):
1249         * rendering/svg/RenderSVGShape.cpp:
1250         (WebCore::RenderSVGShape::fillShape):
1251         (WebCore::RenderSVGShape::strokeShape):
1252         (WebCore::RenderSVGShape::fillStrokeMarkers):
1253         (WebCore::RenderSVGShape::paint):
1254         * rendering/svg/RenderSVGShape.h:
1255         * rendering/svg/RenderSVGText.cpp:
1256         (WebCore::RenderSVGText::paint):
1257         * rendering/svg/RenderSVGViewportContainer.cpp:
1258         (WebCore::RenderSVGViewportContainer::applyViewportClip):
1259         * rendering/svg/SVGInlineFlowBox.cpp:
1260         (WebCore::SVGInlineFlowBox::paintSelectionBackground):
1261         (WebCore::SVGInlineFlowBox::paint):
1262         * rendering/svg/SVGInlineTextBox.cpp:
1263         (WebCore::SVGInlineTextBox::paintSelectionBackground):
1264         (WebCore::SVGInlineTextBox::paint):
1265         (WebCore::SVGInlineTextBox::prepareGraphicsContextForTextPainting):
1266         (WebCore::SVGInlineTextBox::paintDecoration):
1267         (WebCore::SVGInlineTextBox::paintDecorationWithStyle):
1268         (WebCore::SVGInlineTextBox::paintTextWithShadows):
1269         (WebCore::SVGInlineTextBox::paintText):
1270         * rendering/svg/SVGInlineTextBox.h:
1271         * rendering/svg/SVGRenderingContext.cpp:
1272         (WebCore::SVGRenderingContext::~SVGRenderingContext):
1273         (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
1274         (WebCore::SVGRenderingContext::createImageBuffer):
1275         (WebCore::SVGRenderingContext::clipToImageBuffer):
1276         (WebCore::SVGRenderingContext::bufferForeground):
1277         (WebCore::SVGRenderingContext::renderSubtreeToImageBuffer): Deleted.
1278         * rendering/svg/SVGRenderingContext.h:
1279         * rendering/svg/SVGRootInlineBox.cpp:
1280         (WebCore::SVGRootInlineBox::paint):
1281         * rendering/svg/SVGTextRunRenderingContext.cpp:
1282         (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs):
1283         * rendering/svg/SVGTextRunRenderingContext.h:
1284         * svg/graphics/SVGImage.cpp:
1285         (WebCore::SVGImage::drawForContainer):
1286         (WebCore::SVGImage::drawPatternForContainer):
1287         (WebCore::SVGImage::draw):
1288         * svg/graphics/SVGImage.h:
1289         * svg/graphics/SVGImageForContainer.cpp:
1290         (WebCore::SVGImageForContainer::draw):
1291         (WebCore::SVGImageForContainer::drawPattern):
1292         * svg/graphics/SVGImageForContainer.h:
1293         * svg/graphics/filters/SVGFEImage.cpp:
1294         (WebCore::FEImage::platformApplySoftware):
1295
1296 2015-08-28  Alexey Proskuryakov  <ap@apple.com>
1297
1298         Update bindings test results after
1299         https://bugs.webkit.org/show_bug.cgi?id=148591
1300
1301         JSCallbackData::invokeCallback() should return the Exception to the caller
1302
1303         * bindings/scripts/test/JS/JSTestCallback.cpp:
1304         (WebCore::JSTestCallback::callbackWithNoParam):
1305         (WebCore::JSTestCallback::callbackWithArrayParam):
1306         (WebCore::JSTestCallback::callbackWithSerializedScriptValueParam):
1307         (WebCore::JSTestCallback::callbackWithStringList):
1308         (WebCore::JSTestCallback::callbackWithBoolean):
1309         (WebCore::JSTestCallback::callbackRequiresThisToPass):
1310         * bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
1311         (WebCore::JSTestCallbackFunction::callbackWithNoParam):
1312         (WebCore::JSTestCallbackFunction::callbackWithArrayParam):
1313         (WebCore::JSTestCallbackFunction::callbackWithSerializedScriptValueParam):
1314         (WebCore::JSTestCallbackFunction::callbackWithStringList):
1315         (WebCore::JSTestCallbackFunction::callbackWithBoolean):
1316         (WebCore::JSTestCallbackFunction::callbackRequiresThisToPass):
1317
1318 2015-08-28  Chris Dumez  <cdumez@apple.com>
1319
1320         JSCallbackData::invokeCallback() should return the Exception to the caller
1321         https://bugs.webkit.org/show_bug.cgi?id=148591
1322
1323         Reviewed by Mark Lam.
1324
1325         JSCallbackData::invokeCallback() calls a callback function. If this
1326         function throws an exception, it will report it and clear it on the VM.
1327         However, in the case of NodeFilter, the DOM specification clearly states
1328         that we are supposed to rethrow the exception [1].
1329
1330         Once way to support this is to have JSCallbackData::invokeCallback()
1331         return the Exception to the caller and let the caller decide what to do
1332         with it (i.e. report it or rethrow it).
1333
1334         There is no actual behavior change in this patch. This slight
1335         refactoring is in preparation for Bug 148415.
1336
1337         [1] https://dom.spec.whatwg.org/#traversal
1338
1339         Some more context at:
1340         https://www.w3.org/Bugs/Public/show_bug.cgi?id=17713#c16
1341
1342         * bindings/js/JSCallbackData.cpp:
1343         (WebCore::JSCallbackData::invokeCallback):
1344         * bindings/js/JSCallbackData.h:
1345         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
1346         (WebCore::JSSQLStatementErrorCallback::handleEvent):
1347         * bindings/scripts/CodeGeneratorJS.pm:
1348         (GenerateCallbackImplementation):
1349
1350 2015-08-28  Bem Jones-Bey  <bjonesbe@adobe.com>
1351
1352         [CSS Shapes] Remove unused CSSBasicShape::m_referenceBox
1353         https://bugs.webkit.org/show_bug.cgi?id=148588
1354
1355         Reviewed by Zoltan Horvath.
1356
1357         At some point, the code was refactored to no longer store the
1358         referenceBox in CSSBasicShape; however, it looks like this code
1359         wasn't cleaned up. This patch rectifies this.
1360
1361         This is based on a Blink patch by Timothy Loh.
1362
1363         No new tests, removing unused code.
1364
1365         * css/CSSBasicShapes.cpp:
1366         (WebCore::buildCircleString):
1367         (WebCore::CSSBasicShapeCircle::cssText):
1368         (WebCore::CSSBasicShapeCircle::equals):
1369         (WebCore::buildEllipseString):
1370         (WebCore::CSSBasicShapeEllipse::cssText):
1371         (WebCore::CSSBasicShapeEllipse::equals):
1372         (WebCore::buildPolygonString):
1373         (WebCore::CSSBasicShapePolygon::cssText):
1374         (WebCore::CSSBasicShapePolygon::equals):
1375         (WebCore::buildInsetString):
1376         (WebCore::CSSBasicShapeInset::cssText):
1377         * css/CSSBasicShapes.h:
1378         (WebCore::CSSBasicShape::referenceBox): Deleted.
1379         (WebCore::CSSBasicShape::setReferenceBox): Deleted.
1380
1381 2015-08-28  Eric Carlson  <eric.carlson@apple.com>
1382
1383         [Mac] Restructure WebMediaSessionManager for testing
1384         https://bugs.webkit.org/show_bug.cgi?id=148593
1385
1386         Reviewed by Jer Noble.
1387
1388         No new tests, no functional change.
1389
1390         * Modules/mediasession/WebMediaSessionManager.cpp:
1391         (WebCore::mediaProducerStateString): Add some missing states.
1392         (WebCore::webMediaSessionManagerOverride): New.
1393         (WebCore::WebMediaSessionManager::singleton): New.
1394         (WebCore::WebMediaSessionManager::setWebMediaSessionManagerOverride): New, will allow runtime
1395           registration of a mock manager.
1396         * Modules/mediasession/WebMediaSessionManager.h:
1397
1398         * platform/graphics/avfoundation/WebMediaSessionManagerMac.cpp:
1399         (WebCore::WebMediaSessionManager::platformManager): Renamed from singleton.
1400         (WebCore::WebMediaSessionManagerMac::singleton): Deleted.
1401         * platform/graphics/avfoundation/WebMediaSessionManagerMac.h:
1402
1403 2015-08-28  Jer Noble  <jer.noble@apple.com>
1404
1405         [iOS] Add WebKit/WebKit2 settings to control automatic data loading
1406         https://bugs.webkit.org/show_bug.cgi?id=148579
1407
1408         Reviewed by Anders Carlsson.
1409
1410         Move the automatic and metadata restrictions from PlatformMediaSessionManager (where access
1411         to Settings is unavailable) to MediaElementSession (where it is available). Add properties
1412         to Settings so that clients can control this behavior at runtime. Move these restrictions
1413         between the two Internals functions which can set them for testing purposes.
1414
1415         * html/HTMLMediaElement.cpp:
1416         (WebCore::HTMLMediaElement::HTMLMediaElement):
1417         * html/MediaElementSession.cpp:
1418         (WebCore::MediaElementSession::effectivePreloadForElement):
1419         * html/MediaElementSession.h:
1420         * platform/audio/PlatformMediaSessionManager.h:
1421         * platform/audio/ios/MediaSessionManagerIOS.mm:
1422         (WebCore::MediaSessionManageriOS::resetRestrictions): Deleted.
1423         * testing/Internals.cpp:
1424         (WebCore::Internals::setMediaElementRestrictions):
1425         (WebCore::Internals::setMediaSessionRestrictions): Deleted.
1426
1427 2015-08-28  Yusuke Suzuki  <utatane.tea@gmail.com>
1428
1429         Move std::function from JSFunction into NativeStdFunctionCell to correctly destroy the heap allocated std::function
1430         https://bugs.webkit.org/show_bug.cgi?id=148262
1431
1432         Reviewed by Filip Pizlo.
1433
1434         No behavior change.
1435
1436         Change JSFunction::create to JSNativeStdFunction::create to explicitly create the JSNativeStdFunction with the C++ lambda.
1437
1438         * ForwardingHeaders/runtime/JSNativeStdFunction.h: Added.
1439         * bindings/js/ReadableJSStream.cpp:
1440         (WebCore::createStartResultFulfilledFunction):
1441         (WebCore::createPullResultFulfilledFunction):
1442         (WebCore::createCancelResultFulfilledFunction):
1443         (WebCore::createCancelResultRejectedFunction):
1444         (WebCore::ReadableJSStream::ReadableJSStream):
1445
1446 2015-08-28  Sukolsak Sakshuwong  <sukolsak@gmail.com>
1447
1448         Create WebAssembly functions
1449         https://bugs.webkit.org/show_bug.cgi?id=148373
1450
1451         Reviewed by Filip Pizlo.
1452
1453         No new tests, because it is a function rename.
1454
1455         * testing/Internals.cpp:
1456         (WebCore::Internals::parserMetaData):
1457
1458 2015-08-28  Jer Noble  <jer.noble@apple.com>
1459
1460         [iOS] Make the AllowsInlineMediaPlayback preference work in WebKit / WebKit2.
1461         https://bugs.webkit.org/show_bug.cgi?id=147512
1462
1463         Reviewed by Anders Carlsson.
1464
1465         Updated existing tests to use the Setting rather than the Behavior Restriction.
1466
1467         Get rid of the sessionRestrictsInlineVideoPlayback() method and the InlineVideoPlaybackRestricted
1468         restriction. Instead, just use the allowsInlineMediaPlayback() setting, and require
1469         WebKit and WebKitLegacy clients to initialize the setting appropriately.
1470
1471         * html/MediaElementSession.cpp:
1472         (WebCore::MediaElementSession::requiresFullscreenForVideoPlayback): Deleted.
1473         * page/Settings.cpp: Add a new inlineMediaPlaybackRequiresPlaysInlineAttribute setting.
1474         * page/Settings.in: Ditto.
1475         * platform/audio/PlatformMediaSessionManager.cpp:
1476         (WebCore::PlatformMediaSessionManager::sessionRestrictsInlineVideoPlayback): Deleted.
1477         * platform/audio/PlatformMediaSessionManager.h:
1478         * platform/audio/ios/MediaSessionManagerIOS.mm:
1479         (WebCore::MediaSessionManageriOS::resetRestrictions): Deleted.
1480         * testing/InternalSettings.cpp:
1481         (WebCore::InternalSettings::Backup::Backup): Backup the allowsInlineMediaPlayback() setting value.
1482         (WebCore::InternalSettings::Backup::restoreTo): Restore same.
1483         (WebCore::InternalSettings::setAllowsInlineMediaPlayback): Set allowsInlineMediaPlayback().
1484         * testing/InternalSettings.h:
1485         * testing/InternalSettings.idl:
1486         * testing/Internals.cpp:
1487         (WebCore::Internals::setMediaSessionRestrictions): Deleted.
1488
1489 2015-08-28  Eric Carlson  <eric.carlson@apple.com>
1490
1491         Media Session: MediaSession.releaseSession() renamed to deactivate()
1492         https://bugs.webkit.org/show_bug.cgi?id=148578
1493
1494         Reviewed by Jer Noble.
1495
1496         No new tests, media/session/releasing-sessions.html was updated for the change.
1497
1498         * Modules/mediasession/MediaSession.cpp:
1499         (WebCore::MediaSession::deactivate): Renamed from releaseSession.
1500         (WebCore::MediaSession::releaseSession): Deleted.
1501         * Modules/mediasession/MediaSession.h:
1502         * Modules/mediasession/MediaSession.idl:
1503
1504         * html/HTMLMediaElement.cpp:
1505         (WebCore::HTMLMediaElement::setSession): releaseSession -> deactivate.
1506
1507 2015-08-28  Joseph Pecoraro  <pecoraro@apple.com>
1508
1509         Web Inspector: Separate creating a style sheet from adding a new rule in the protocol
1510         https://bugs.webkit.org/show_bug.cgi?id=148502
1511
1512         Reviewed by Timothy Hatcher.
1513
1514         Tests: inspector/css/createStyleSheet.html
1515                inspector/css/manager-preferredInspectorStyleSheetForFrame.html
1516
1517         * inspector/InspectorCSSAgent.h:
1518         Allow for multiple inspector style sheets per document.
1519
1520         * inspector/InspectorCSSAgent.cpp:
1521         (WebCore::InspectorCSSAgent::createStyleSheet):
1522         (WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument): Added.
1523         (WebCore::InspectorCSSAgent::viaInspectorStyleSheet): Deleted.
1524         Extract and generalize creating a via-inspector stylesheet here.
1525
1526         (WebCore::InspectorCSSAgent::addRule):
1527         Lookup stylesheet to add a rule to via the provided stylesheet id.
1528
1529         (WebCore::InspectorCSSAgent::bindStyleSheet):
1530         (WebCore::InspectorCSSAgent::detectOrigin):
1531         Update to account for a list of stylesheets per document instead of one.
1532
1533         * inspector/InspectorStyleSheet.cpp:
1534         (WebCore::InspectorStyleSheet::addRule):
1535         (WebCore::InspectorStyleSheetForInlineStyle::setStyleText):
1536
1537 2015-08-28  Timothy Horton  <timothy_horton@apple.com>
1538
1539         [Mac] Right-clicking on GIFs spins the UI process for a while
1540         https://bugs.webkit.org/show_bug.cgi?id=148566
1541         <rdar://problem/22460854>
1542
1543         Reviewed by Brady Eidson.
1544
1545         * platform/ContextMenuItem.h:
1546         Properly mark this as Mac-only. It's only implemented in ContextMenuItemMac.
1547
1548         * platform/mac/ContextMenuItemMac.mm:
1549         (WebCore::ContextMenuItem::shareMenuItem):
1550         Take a NSImage directly, so we don't have to round-trip through BitmapImage,
1551         which can be lossy and expensive.
1552
1553 2015-08-28  Brady Eidson  <beidson@apple.com>
1554
1555         Use new CFNetwork cookie jar SPI only on El Capitan.
1556         https://bugs.webkit.org/show_bug.cgi?id=148574 and rdar://problem/22460752
1557
1558         Reviewed by David Kilzer.
1559
1560         * platform/network/mac/CookieJarMac.mm:
1561         (WebCore::setCookiesFromDOM): Use OS X version to decide which API/SPI to use.
1562         * platform/spi/cf/CFNetworkSPI.h: Forward declare the SPI
1563
1564 2015-08-27  Myles C. Maxfield  <mmaxfield@apple.com>
1565
1566         [Cocoa] Draw fonts at their native sizes instead of scaling a 1pt font
1567         https://bugs.webkit.org/show_bug.cgi?id=146045
1568
1569         Reviewed by Darin Adler.
1570
1571         In his WWDC talk[1], Antonio Cavedoni describes how painting a font at a particular point size
1572         may yield different visual results than painting a font at a 1pt size into a scaled context.
1573         However, this is something that we currently do in WebKit. This patch migrates from this
1574         behavior to instead drawing text at the appropriate point size.
1575
1576         [1] https://developer.apple.com/videos/wwdc/2015/?id=804
1577
1578         * platform/graphics/cocoa/FontCascadeCocoa.mm:
1579         (WebCore::FontCascade::drawGlyphs):
1580
1581 2015-08-27  Zalan Bujtas  <zalan@apple.com>
1582
1583         Tiny cleanup in RenderLayer::enclosingCompositingLayerForRepaint()
1584         https://bugs.webkit.org/show_bug.cgi?id=148541
1585
1586         Reviewed by Tim Horton.
1587
1588         No change in functionality.
1589
1590         * rendering/RenderLayer.cpp:
1591         (WebCore::compositingContainer):
1592         (WebCore::compositedWithOwnBackingStore):
1593         (WebCore::RenderLayer::enclosingCompositingLayer):
1594         (WebCore::RenderLayer::enclosingCompositingLayerForRepaint):
1595         (WebCore::RenderLayer::enclosingFilterRepaintLayer):
1596         (WebCore::RenderLayer::clippingRootForPainting):
1597         * rendering/RenderLayer.h:
1598         * rendering/RenderLayerBacking.cpp:
1599         (WebCore::descendantLayerPaintsIntoAncestor):
1600
1601 2015-08-27  Commit Queue  <commit-queue@webkit.org>
1602
1603         Unreviewed, rolling out r189079.
1604         https://bugs.webkit.org/show_bug.cgi?id=148555
1605
1606         broke the build (Requested by jessieberlin on #webkit).
1607
1608         Reverted changeset:
1609
1610         "Create WebAssembly functions"
1611         https://bugs.webkit.org/show_bug.cgi?id=148373
1612         http://trac.webkit.org/changeset/189079
1613
1614 2015-08-27  Sukolsak Sakshuwong  <sukolsak@gmail.com>
1615
1616         Create WebAssembly functions
1617         https://bugs.webkit.org/show_bug.cgi?id=148373
1618
1619         Reviewed by Geoffrey Garen.
1620
1621         No new tests because it's a function rename.
1622
1623         * testing/Internals.cpp:
1624         (WebCore::Internals::parserMetaData):
1625
1626 2015-08-27  Chris Dumez  <cdumez@apple.com>
1627
1628         A WebIDL callback interface is allowed to have constants
1629         https://bugs.webkit.org/show_bug.cgi?id=148449
1630
1631         Reviewed by Geoffrey Garen.
1632
1633         Our JS bindings generator is now able to:
1634         1. Handle IDL constants [1] on a callback interfaces [2] and generate
1635            a DOMConstructorObject subclass with static properties for
1636            these constants [3].
1637         2. Generate a property on the global object for callback interfaces
1638            that have constants and do not have the [NoInterfaceObject] IDL
1639            extended attribute [4].
1640
1641         This is a pre-requirement for Bug 148415 as NodeFilter [5] has constants
1642         and should be a callback interface. Once NodeFilter is ported to be
1643         a callback interface, the JS still needs to be able to access
1644         window.NodeFilter.SHOW_ALL for e.g.
1645
1646         [1] https://heycam.github.io/webidl/#dfn-constant
1647         [2] https://heycam.github.io/webidl/#dfn-callback-interface
1648         [3] https://heycam.github.io/webidl/#NoInterfaceObject
1649         [4] https://heycam.github.io/webidl/#es-interfaces
1650         [5] https://dom.spec.whatwg.org/#interface-nodefilter
1651
1652         * bindings/scripts/CodeGeneratorJS.pm:
1653         (GenerateCallbackHeader):
1654         (GenerateCallbackImplementation):
1655         (GenerateConstructorHelperMethods):
1656         (ConstructorHasProperties): Deleted.
1657         * bindings/scripts/preprocess-idls.pl:
1658         (getInterfaceExtendedAttributesFromIDL):
1659         (interfaceHasConstantAttribute):
1660         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
1661         * bindings/scripts/test/JS/JSTestCallback.cpp:
1662         (WebCore::JSTestCallbackConstructor::create):
1663         (WebCore::JSTestCallbackConstructor::createStructure):
1664         (WebCore::JSTestCallbackConstructor::JSTestCallbackConstructor):
1665         (WebCore::JSTestCallbackConstructor::finishCreation):
1666         (WebCore::JSTestCallback::getConstructor):
1667         * bindings/scripts/test/JS/JSTestCallback.h:
1668         * bindings/scripts/test/ObjC/DOMTestCallback.h:
1669         * bindings/scripts/test/TestCallback.idl:
1670
1671 2015-08-27  Chris Dumez  <cdumez@apple.com>
1672
1673         Range.compareBoundaryPoints() should throw a NotSupportedError for invalid compareHow values
1674         https://bugs.webkit.org/show_bug.cgi?id=148483
1675
1676         Reviewed by Geoffrey Garen.
1677
1678         Range.compareBoundaryPoints() should throw a NotSupportedError for
1679         invalid compareHow values:
1680         https://dom.spec.whatwg.org/#dom-range-compareboundarypoints (step 1)
1681
1682         Firefox and Chrome conform to the specification already.
1683
1684         Previously, WebKit would not throw and simply cast the value to our
1685         internal CompareHow enum type. This patch aligns WebKit's behavior with
1686         the DOM specificaiton and other browsers.
1687
1688         W3C test suite:
1689         http://w3c-test.org/dom/ranges/Range-compareBoundaryPoints.html
1690
1691         Test: fast/dom/Range/compareBoundaryPoints-compareHow-exception.html
1692
1693         * bindings/scripts/CodeGenerator.pm:
1694         * bindings/scripts/CodeGeneratorGObject.pm:
1695         * bindings/scripts/CodeGeneratorJS.pm:
1696         * bindings/scripts/CodeGeneratorObjC.pm:
1697         Drop CompareHow special casing from bindings generator as we now use
1698         unsigned short instead in the IDL.
1699
1700         * dom/Range.cpp:
1701         (WebCore::Range::compareBoundaryPointsForBindings):
1702         * dom/Range.h:
1703         * dom/Range.idl:
1704         Use "unsigned short" type instead of WebCore's CompareHow for the
1705         parameter, as per the specification. On implementation side, we
1706         now validate the compareHow value before casting it to a CompareHow
1707         enum type. If the value is not value, we throw and abort early.
1708
1709 2015-08-27  Joseph Pecoraro  <pecoraro@apple.com>
1710
1711         Page does not update when <link> media attribute changes to no longer apply to page
1712         https://bugs.webkit.org/show_bug.cgi?id=148392
1713
1714         Reviewed by Antti Koivisto.
1715
1716         Test: fast/css/link-media-attr.html
1717
1718         * html/HTMLLinkElement.cpp:
1719         (WebCore::HTMLLinkElement::parseAttribute):
1720         When the media attribute changes, recalculate styles if the link is not disabled.
1721
1722 2015-08-27  Zalan Bujtas  <zalan@apple.com>
1723
1724         Simple line layout: Text jumps sometimes on naughty strings page
1725         https://bugs.webkit.org/show_bug.cgi?id=148399
1726         rdar://problem/22212568
1727
1728         Reviewed by Antti Koivisto.
1729
1730         The x position we set for tab characters during painting should
1731         be the same as if it was set by the inline box tree painting.
1732
1733         Inline box tree computes the distance from the rootbox for each line
1734         and sets this value as the xPos for the TextRun.
1735         Currently simple line layout does not support cases where a line
1736         would have an offset, so this value is always 0.
1737
1738         Test: fast/text/whitespace/simple-line-layout-tab-position.html
1739
1740         * rendering/SimpleLineLayoutFunctions.cpp:
1741         (WebCore::SimpleLineLayout::paintFlow):
1742
1743 2015-08-27  Alex Christensen  <achristensen@webkit.org>
1744
1745         Isolate Source directories in CMake build
1746         https://bugs.webkit.org/show_bug.cgi?id=148389
1747
1748         Reviewed by Brent Fulgham.
1749
1750         * CMakeLists.txt:
1751         Use the forwarding header copy of the inspector scripts to avoid requiring JavaScriptCore directory to exist.
1752         * PlatformAppleWin.cmake:
1753         Add AVFoundation sources to build.
1754         * PlatformEFL.cmake:
1755         Moved WebKitVersion.h generating from CMakeLists.txt because it is now only used in WebCore by EFL.
1756         * PlatformWin.cmake:
1757         Include ../include/private to find forwarding headers in internal build.
1758
1759 2015-08-27  Alex Christensen  <achristensen@webkit.org>
1760
1761         [Win CMake] Fix incremental build after r188673
1762         https://bugs.webkit.org/show_bug.cgi?id=148539
1763
1764         Reviewed by Brent Fulgham.
1765
1766         * CMakeLists.txt:
1767         * PlatformWin.cmake:
1768         Use xcopy as a build step instead of file(COPY ...) to copy updated headers.
1769
1770 2015-08-27  Timothy Horton  <timothy_horton@apple.com>
1771
1772         Factor out Lookup invocation
1773         https://bugs.webkit.org/show_bug.cgi?id=148509
1774
1775         Reviewed by Anders Carlsson.
1776
1777         There's a ton of duplicated code in legacy and modern WebKit to talk to
1778         Lookup. And, it's pretty messy. As a first step to making it less messy,
1779         make it so we only have it in one place instead of four (or two).
1780
1781         * editing/DictionaryPopupInfo.h:
1782         Move DictionaryPopupInfo into WebCore. This was duplicated
1783         in both legacy and modern WebKit.
1784
1785         * editing/mac/DictionaryLookup.h:
1786         * editing/mac/DictionaryLookup.mm:
1787         (WebCore::DictionaryLookup::rangeForSelection):
1788         (WebCore::DictionaryLookup::rangeAtHitTestResult):
1789         (WebCore::DictionaryLookup::stringForPDFSelection):
1790         (WebCore::showPopupOrCreateAnimationController):
1791         (WebCore::DictionaryLookup::showPopup):
1792         (WebCore::DictionaryLookup::hidePopup):
1793         (WebCore::DictionaryLookup::animationControllerForPopup):
1794         (WebCore::rangeForDictionaryLookupForSelection): Deleted.
1795         (WebCore::rangeForDictionaryLookupAtHitTestResult): Deleted.
1796         (WebCore::dictionaryLookupForPDFSelection): Deleted.
1797         Move DictionaryLookup stuff into a class for better names.
1798
1799         Move showPopup, hidePopup, and animationControllerForPopup here.
1800         showPopup and animationControllerForPopup both bottleneck through
1801         a single function, where previously we duplicated all of the code
1802         for both of them, and in both legacy and modern WebKit.
1803
1804         showPopup and animationControllerForPopup take a block that they *may*
1805         call if we have support for overriding Lookup's indicator with TextIndicator,
1806         because the installation process is different per WebKit.
1807
1808         * page/mac/EventHandlerMac.mm:
1809         (WebCore::EventHandler::selectClosestWordFromHitTestResultBasedOnLookup):
1810         * testing/Internals.cpp:
1811         (WebCore::Internals::rangeForDictionaryLookupAtLocation):
1812         Adjust to the new naming.
1813
1814 2015-08-27  Jon Davis  <jond@apple.com>
1815
1816         Add IndexedDB to the feature status page.
1817         https://bugs.webkit.org/show_bug.cgi?id=148094
1818
1819         Reviewed by Timothy Hatcher.
1820
1821         * features.json:
1822
1823 2015-08-27  Anders Carlsson  <andersca@apple.com>
1824
1825         REGRESSION (r188987): imported/mozilla/svg/filters/feConvolveMatrix-1.svg fails
1826         https://bugs.webkit.org/show_bug.cgi?id=148497
1827         <rdar://problem/22459541>
1828
1829         Reviewed by Andy Estes.
1830
1831         Don't return early if iterations is 0.
1832
1833         * platform/graphics/filters/FEConvolveMatrix.cpp:
1834         (WebCore::FEConvolveMatrix::platformApplySoftware):
1835
1836 2015-08-27  Antti Koivisto  <antti@apple.com>
1837
1838         Decode redirected data URLs in web process
1839         https://bugs.webkit.org/show_bug.cgi?id=148386
1840
1841         Reviewed by Zalan Bujtas.
1842
1843         Redirected data URLs still end up to networking layer for decoding. Handle them locally as well.
1844
1845         Covered by existing tests.
1846
1847         * loader/ResourceLoader.cpp:
1848         (WebCore::ResourceLoader::~ResourceLoader):
1849         (WebCore::ResourceLoader::finishNetworkLoad):
1850
1851             Factor to a function.
1852
1853         (WebCore::ResourceLoader::releaseResources):
1854         (WebCore::ResourceLoader::willSendRequestInternal):
1855
1856             When receiving redirect to a data URL end the network load and decode it locally.
1857
1858         (WebCore::ResourceLoader::willSendRequest):
1859         * loader/ResourceLoader.h:
1860
1861 2015-08-27  Myles C. Maxfield  <mmaxfield@apple.com>
1862
1863         [Cocoa] Generic font families do not consult with the user's preferred language
1864         https://bugs.webkit.org/show_bug.cgi?id=148499
1865         <rdar://problem/22407296>
1866
1867         Reviewed by Antti Koivisto.
1868
1869         When WebKit encounters markup like lang="zh" style="font-family: sans-serif;"
1870         we currently always use Simplified Chinese fonts. However, the user may
1871         have specifically selected Traditional Chinese in their user preferences.
1872         In this absence of other signals, we should consult with the user
1873         preferences when determining which font to pick.
1874
1875         Tests: fast/text/international/generic-font-family-language-simplified.html
1876                fast/text/international/generic-font-family-language-traditional.html
1877
1878         * platform/Language.cpp:
1879         (WebCore::observerMap):
1880         (WebCore::overrideUserPreferredLanguages):
1881         * platform/graphics/FontGenericFamilies.cpp:
1882         (WebCore::computeUserPrefersSimplified):
1883         (WebCore::cachedUserPrefersSimplified):
1884         (WebCore::languageChanged):
1885         (WebCore::genericFontFamilyForScript):
1886         (WebCore::FontGenericFamilies::FontGenericFamilies):
1887         * platform/text/LocaleToScriptMappingDefault.cpp:
1888         (WebCore::scriptNameToCode):
1889
1890 2015-08-27  Myles C. Maxfield  <mmaxfield@apple.com>
1891
1892         Update Grid Layout to use fewer magic -1s
1893         https://bugs.webkit.org/show_bug.cgi?id=148505
1894
1895         Reviewed by Javier Fernandez.
1896
1897         After r188873, there were still some -1s left in Grid Layout code. This patch cleans them
1898         up after consulting with Javier Fernandez.
1899
1900         No new tests because there is no behavior change.
1901
1902         * rendering/RenderBox.cpp:
1903         (WebCore::RenderBox::containingBlockLogicalWidthForContent):
1904         (WebCore::RenderBox::containingBlockLogicalHeightForContent):
1905         (WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
1906         * rendering/RenderGrid.cpp:
1907         (WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):
1908
1909 2015-08-27  Brian Burg  <bburg@apple.com>
1910
1911         Web Inspector: FrontendChannel should know its own connection type
1912         https://bugs.webkit.org/show_bug.cgi?id=148482
1913
1914         Reviewed by Joseph Pecoraro.
1915
1916         To prepare for multiple attached frontends, the frontend connection should
1917         be able to report its type rather than explicitly setting connection type
1918         via a getter.
1919
1920         No behavior change, no new tests.
1921
1922         * inspector/InspectorController.cpp:
1923         (WebCore::InspectorController::hasLocalFrontend): Ask the channel what it is.
1924         (WebCore::InspectorController::hasRemoteFrontend): Ask the channel what it is.
1925         (WebCore::InspectorController::connectFrontend): Use hasRemoteFrotend().
1926         (WebCore::InspectorController::disconnectFrontend): Use hasRemoteFrontend().
1927         (WebCore::InspectorController::InspectorController): Deleted.
1928         * inspector/InspectorController.h: Initialize a few members here.
1929         (WebCore::InspectorController::hasFrontend): Deleted, it was unused.
1930         (WebCore::InspectorController::setHasRemoteFrontend): Deleted.
1931         * inspector/WorkerInspectorController.cpp:
1932         * page/PageDebuggable.cpp:
1933         (WebCore::PageDebuggable::connect):
1934         (WebCore::PageDebuggable::disconnect):
1935         * testing/Internals.cpp: Add connectionType().
1936
1937 2015-08-27  Eric Carlson  <eric.carlson@apple.com>
1938
1939         Media Session: MediaSession constructor 'kind' argument optional
1940         https://bugs.webkit.org/show_bug.cgi?id=148527
1941
1942         Reviewed by Jer Noble.
1943
1944         No new tests, updated media/session/session-creation.html.
1945
1946         * Modules/mediasession/MediaSession.cpp:
1947         (WebCore::MediaSession::parseKind): Treat null kind "content".
1948         (WebCore::MediaSession::MediaSession): Delete Document* version.
1949         * Modules/mediasession/MediaSession.h: Make constructor private.
1950         * Modules/mediasession/MediaSession.idl:
1951
1952         * WebCore.xcodeproj/project.pbxproj: Add JSMediaSessionCustom.cpp.
1953
1954         * bindings/js/JSMediaSessionCustom.cpp: Added.
1955         (WebCore::constructJSMediaSession):
1956
1957         * dom/Document.cpp:
1958         (WebCore::Document::defaultMediaSession): Call MediaSession::create.
1959
1960         * html/HTMLMediaElement.cpp:
1961         (WebCore::HTMLMediaElement::session): Compare session with document.defaultMediaSession, not
1962           its kind.
1963         (WebCore::HTMLMediaElement::setSession): Update comments.
1964
1965 2015-08-27  Zalan Bujtas  <zalan@apple.com>
1966
1967         Simple line layout: Use float types wherever possible to match line tree.
1968         https://bugs.webkit.org/show_bug.cgi?id=148444
1969
1970         Reviewed by Antti Koivisto.
1971
1972         To match inline tree output, we should try to match the data types as far as precision goes.
1973
1974         This patch also fixes the confusing mismatch between Run::baseline().x() and Run::rect().x(). 
1975         They are both supposed to return the left edge of the run. However Run::rect().x() returns a rounded
1976         LayoutUnit of the logical left, while Run::baseline().x() returns the correct logical left.          
1977         With this patch 
1978           1. baseline position does not include logical left anymore.
1979           2. Run::rect().x() does not round the logical left coordinate anymore.
1980
1981         * rendering/RenderTreeAsText.cpp:
1982         (WebCore::writeSimpleLine):
1983         * rendering/SimpleLineLayoutFunctions.cpp:
1984         (WebCore::SimpleLineLayout::paintFlow):
1985         (WebCore::SimpleLineLayout::collectFlowOverflow):
1986         (WebCore::SimpleLineLayout::collectAbsoluteRects):
1987         (WebCore::SimpleLineLayout::showLineLayoutForFlow):
1988         * rendering/SimpleLineLayoutResolver.cpp:
1989         (WebCore::SimpleLineLayout::linePosition):
1990         (WebCore::SimpleLineLayout::lineSize):
1991         (WebCore::SimpleLineLayout::RunResolver::Run::rect):
1992         (WebCore::SimpleLineLayout::LineResolver::Iterator::operator*):
1993         (WebCore::SimpleLineLayout::baselinePosition): Deleted.
1994         (WebCore::SimpleLineLayout::RunResolver::Run::baseline): Deleted.
1995         * rendering/SimpleLineLayoutResolver.h:
1996         (WebCore::SimpleLineLayout::RunResolver::Run::baselinePosition):
1997         (WebCore::SimpleLineLayout::RunResolver::Run::computeBaselinePosition):
1998
1999 2015-08-27  Zalan Bujtas  <zalan@apple.com>
2000
2001         Subpixel positioned iframe's repaint area calculation problem.
2002         https://bugs.webkit.org/show_bug.cgi?id=148422
2003
2004         When the repaint rect position is floored for iframes, we need
2005         to expand the size so that it still covers the content.
2006
2007         Reviewed by Simon Fraser.
2008
2009         Test: fast/repaint/content-inside-subpixel-positioned-iframe.html
2010
2011         * rendering/RenderBox.cpp:
2012         (WebCore::RenderBox::computeRectForRepaint):
2013
2014 2015-08-27  Enrica Casucci  <enrica@apple.com>
2015
2016         Add some new emoji with modifiers and new sequence.
2017         https://bugs.webkit.org/show_bug.cgi?id=148202
2018         rdar://problem/21849857
2019
2020         Reviewed by Sam Weinig.
2021
2022         Adding support for some new emoji with modifiers and
2023         one new emoji sequence.
2024
2025         * platform/graphics/FontCascade.cpp:
2026         (WebCore::FontCascade::characterRangeCodePath):
2027         * platform/text/CharacterProperties.h:
2028         (WebCore::isEmojiGroupCandidate):
2029         (WebCore::isEmojiModifier):
2030         * platform/text/TextBreakIterator.cpp:
2031         (WebCore::cursorMovementIterator):
2032
2033 2015-08-27  Dean Jackson  <dino@apple.com>
2034
2035         Initial infrastructure of media controls testing
2036         https://bugs.webkit.org/show_bug.cgi?id=148426
2037         <rdar://problem/22417286>
2038
2039         Reviewed by Eric Carlson.
2040
2041         Expose a JS API from Internals that allows a layout test
2042         to ask the controls instance what it thinks it is
2043         doing.
2044
2045         Test: media/controls/basic.html
2046
2047         * Modules/mediacontrols/mediaControlsApple.js:
2048         (Controller.prototype.getCurrentControlsStatus): New method. Currently
2049         returns a simple JSON string.
2050         * html/HTMLMediaElement.cpp:
2051         (WebCore::HTMLMediaElement::getCurrentMediaControlsStatus): Call into
2052         the controls instance.
2053         * html/HTMLMediaElement.h:
2054         * testing/Internals.cpp:
2055         (WebCore::Internals::getCurrentMediaControlsStatusForElement): Link
2056         between the Internals API and the HTMLMediaElement.
2057         * testing/Internals.h:
2058         * testing/Internals.idl:
2059
2060 2015-08-27  Gyuyoung Kim  <gyuyoung.kim@webkit.org>
2061
2062         [EFL] Move RenderThemeEfl.cpp|h from WebCore/platform/efl to WebCore/rendering
2063         https://bugs.webkit.org/show_bug.cgi?id=148511
2064
2065         Reviewed by Csaba Osztrogonác.
2066
2067         To be aligned with other ports, move RenderThemeEfl.cpp|h to WebCore/rendering.
2068
2069         Additionally this patch fixes style errors in RenderThemeEfl.cpp
2070
2071         * PlatformEfl.cmake:
2072         * rendering/RenderThemeEfl.cpp: Renamed from Source/WebCore/platform/efl/RenderThemeEfl.cpp.
2073         (WebCore::toEdjeGroup):
2074         (WebCore::setSourceGroupForEdjeObject):
2075         (WebCore::RenderThemeEfl::adjustSizeConstraints):
2076         (WebCore::isFormElementTooLargeToDisplay):
2077         (WebCore::RenderThemeEfl::ThemePartCacheEntry::create):
2078         (WebCore::RenderThemeEfl::ThemePartCacheEntry::reuse):
2079         (WebCore::RenderThemeEfl::getThemePartFromCache):
2080         (WebCore::RenderThemeEfl::clearThemePartCache):
2081         (WebCore::RenderThemeEfl::applyEdjeStateFromForm):
2082         (WebCore::RenderThemeEfl::applyEdjeRTLState):
2083         (WebCore::RenderThemeEfl::isControlStyled):
2084         (WebCore::RenderThemeEfl::paintThemePart):
2085         (WebCore::RenderThemeEfl::create):
2086         (WebCore::RenderTheme::themeForPage):
2087         (WebCore::applyColorCallback):
2088         (WebCore::fillColorsFromEdjeClass):
2089         (WebCore::RenderThemeEfl::setColorFromThemeClass):
2090         (WebCore::RenderThemeEfl::setThemePath):
2091         (WebCore::RenderThemeEfl::themePath):
2092         (WebCore::RenderThemeEfl::loadTheme):
2093         (WebCore::RenderThemeEfl::applyPartDescriptionFallback):
2094         (WebCore::RenderThemeEfl::applyPartDescription):
2095         (WebCore::RenderThemeEfl::applyPartDescriptionsFrom):
2096         (WebCore::RenderThemeEfl::RenderThemeEfl):
2097         (WebCore::RenderThemeEfl::~RenderThemeEfl):
2098         (WebCore::supportsFocus):
2099         (WebCore::RenderThemeEfl::supportsFocusRing):
2100         (WebCore::RenderThemeEfl::controlSupportsTints):
2101         (WebCore::RenderThemeEfl::baselinePosition):
2102         (WebCore::RenderThemeEfl::platformActiveSelectionBackgroundColor):
2103         (WebCore::RenderThemeEfl::platformInactiveSelectionBackgroundColor):
2104         (WebCore::RenderThemeEfl::platformActiveSelectionForegroundColor):
2105         (WebCore::RenderThemeEfl::platformInactiveSelectionForegroundColor):
2106         (WebCore::RenderThemeEfl::platformFocusRingColor):
2107         (WebCore::RenderThemeEfl::supportsSelectionForegroundColors):
2108         (WebCore::RenderThemeEfl::paintSliderTrack):
2109         (WebCore::RenderThemeEfl::adjustSliderTrackStyle):
2110         (WebCore::RenderThemeEfl::adjustSliderThumbStyle):
2111         (WebCore::RenderThemeEfl::adjustSliderThumbSize):
2112         (WebCore::RenderThemeEfl::sliderTickSize):
2113         (WebCore::RenderThemeEfl::sliderTickOffsetFromTrackCenter):
2114         (WebCore::RenderThemeEfl::sliderTickSnappingThreshold):
2115         (WebCore::RenderThemeEfl::supportsDataListUI):
2116         (WebCore::RenderThemeEfl::paintSliderThumb):
2117         (WebCore::RenderThemeEfl::adjustCheckboxStyle):
2118         (WebCore::RenderThemeEfl::paintCheckbox):
2119         (WebCore::RenderThemeEfl::adjustRadioStyle):
2120         (WebCore::RenderThemeEfl::paintRadio):
2121         (WebCore::RenderThemeEfl::adjustButtonStyle):
2122         (WebCore::RenderThemeEfl::paintButton):
2123         (WebCore::RenderThemeEfl::adjustMenuListStyle):
2124         (WebCore::RenderThemeEfl::paintMenuList):
2125         (WebCore::RenderThemeEfl::adjustMenuListButtonStyle):
2126         (WebCore::RenderThemeEfl::paintMenuListButtonDecorations):
2127         (WebCore::RenderThemeEfl::adjustTextFieldStyle):
2128         (WebCore::RenderThemeEfl::paintTextField):
2129         (WebCore::RenderThemeEfl::adjustTextAreaStyle):
2130         (WebCore::RenderThemeEfl::paintTextArea):
2131         (WebCore::RenderThemeEfl::adjustSearchFieldResultsButtonStyle):
2132         (WebCore::RenderThemeEfl::paintSearchFieldResultsButton):
2133         (WebCore::RenderThemeEfl::adjustSearchFieldResultsDecorationPartStyle):
2134         (WebCore::RenderThemeEfl::paintSearchFieldResultsDecorationPart):
2135         (WebCore::RenderThemeEfl::adjustSearchFieldCancelButtonStyle):
2136         (WebCore::RenderThemeEfl::paintSearchFieldCancelButton):
2137         (WebCore::RenderThemeEfl::adjustSearchFieldStyle):
2138         (WebCore::RenderThemeEfl::paintSearchField):
2139         (WebCore::RenderThemeEfl::adjustInnerSpinButtonStyle):
2140         (WebCore::RenderThemeEfl::paintInnerSpinButton):
2141         (WebCore::RenderThemeEfl::setDefaultFontSize):
2142         (WebCore::RenderThemeEfl::updateCachedSystemFontDescription):
2143         (WebCore::RenderThemeEfl::adjustProgressBarStyle):
2144         (WebCore::RenderThemeEfl::animationRepeatIntervalForProgressBar):
2145         (WebCore::RenderThemeEfl::animationDurationForProgressBar):
2146         (WebCore::RenderThemeEfl::paintProgressBar):
2147         (WebCore::RenderThemeEfl::mediaControlsStyleSheet):
2148         (WebCore::RenderThemeEfl::mediaControlsScript):
2149         * rendering/RenderThemeEfl.h: Renamed from Source/WebCore/platform/efl/RenderThemeEfl.h.
2150
2151 2015-08-26  Mark Lam  <mark.lam@apple.com>
2152
2153         watchdog m_didFire state erroneously retained.
2154         https://bugs.webkit.org/show_bug.cgi?id=131082
2155
2156         Reviewed by Geoffrey Garen.
2157
2158         No new tests.  The new code is covered by the JSC API tests and an existing test:
2159         fast/workers/worker-terminate-forever.html
2160
2161         * bindings/js/JSEventListener.cpp:
2162         (WebCore::JSEventListener::handleEvent):
2163         * bindings/js/WorkerScriptController.cpp:
2164         (WebCore::WorkerScriptController::WorkerScriptController):
2165         - Always create a watchdog for the Web Worker's VM.  We need this in order to support
2166           Worker.terminate().
2167         (WebCore::WorkerScriptController::evaluate):
2168         (WebCore::WorkerScriptController::scheduleExecutionTermination):
2169         (WebCore::WorkerScriptController::isTerminatingExecution):
2170         (WebCore::WorkerScriptController::forbidExecution):
2171         (WebCore::WorkerScriptController::isExecutionTerminating): Deleted.
2172         * bindings/js/WorkerScriptController.h:
2173
2174 2015-08-26  Myles C. Maxfield  <mmaxfield@apple.com>
2175
2176         [Cocoa] PerformanceTest Layout/RegionsShapes.html is failing
2177         https://bugs.webkit.org/show_bug.cgi?id=148464
2178
2179         Reviewed by Andy Estes.
2180
2181         The test is failing because Core Text emits a warning message when you use CTFontCreateWithName()
2182         and it cannot find the name you provide. However, this is exactly the situation we are creating
2183         (by attempting to auto-activate a font if we could not otherwise find it). The fix is to simply
2184         not use that API function in favor of using CTFontCreateWithFontDescriptor(), which does not emit
2185         a warning message..
2186
2187         No new tests because there is no behavior change.
2188
2189         * platform/graphics/cocoa/FontCacheCoreText.cpp:
2190         (WebCore::autoActivateFont):
2191         (WebCore::FontCache::createFontPlatformData):
2192
2193 2015-08-26  Joseph Pecoraro  <pecoraro@apple.com>
2194
2195         Web Inspector: Implement tracking of active stylesheets in the frontend
2196         https://bugs.webkit.org/show_bug.cgi?id=105828
2197
2198         Reviewed by Timothy Hatcher.
2199
2200         Tests: inspector/css/stylesheet-events-basic.html
2201                inspector/css/stylesheet-events-imports.html
2202                inspector/css/stylesheet-events-inspector-stylesheet.html
2203
2204         * inspector/InspectorInstrumentation.cpp:
2205         (WebCore::InspectorInstrumentation::documentDetachedImpl):
2206         (WebCore::InspectorInstrumentation::activeStyleSheetsUpdatedImpl):
2207         * inspector/InspectorInstrumentation.h:
2208         (WebCore::InspectorInstrumentation::documentDetached):
2209         (WebCore::InspectorInstrumentation::activeStyleSheetsUpdated):
2210         New hooks for when a document is detached or a document's style sheets are updated.
2211
2212         * dom/Document.cpp:
2213         (WebCore::Document::prepareForDestruction):
2214         Inform the inspector so the CSSAgent can remove document related data.
2215
2216         * dom/DocumentStyleSheetCollection.h:
2217         * dom/DocumentStyleSheetCollection.cpp:
2218         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
2219         Inform the inspector so the CSSAgent can push stylesheet related events.
2220
2221         (WebCore::DocumentStyleSheetCollection::activeStyleSheetsForInspector): Added.
2222         CSSStyleSheets for the inspector include non-disabled author stylesheets
2223         even if they are empty.
2224
2225         * inspector/InspectorCSSAgent.h:
2226         * inspector/InspectorCSSAgent.cpp:
2227         (WebCore::InspectorCSSAgent::reset):
2228         (WebCore::InspectorCSSAgent::documentDetached):
2229         Handling for the new list of known document to CSSStyleSheets map.
2230
2231         (WebCore::InspectorCSSAgent::enable):
2232         When the CSS domain is enabled, tell the frontend about known stylesheets.
2233
2234         (WebCore::InspectorCSSAgent::activeStyleSheetsUpdated):
2235         (WebCore::InspectorCSSAgent::setActiveStyleSheetsForDocument):
2236         Diff the old list of known stylesheets to the new list of stylesheets
2237         for an individual document. Then send appropriate added/removed events.
2238
2239         (WebCore::InspectorCSSAgent::collectAllStyleSheets):
2240         (WebCore::InspectorCSSAgent::collectAllDocumentStyleSheets):
2241         (WebCore::InspectorCSSAgent::collectStyleSheets):
2242         Collect stylesheets recursively. A stylesheet may link to other stylesheets
2243         through @import statements.
2244
2245         (WebCore::InspectorCSSAgent::getAllStyleSheets):
2246         Use the new methods, this command should go away as it will no longer be useful.
2247
2248         (WebCore::InspectorCSSAgent::unbindStyleSheet):
2249         (WebCore::InspectorCSSAgent::bindStyleSheet):
2250         Create an InspectorStyleSheet from a CSSStyleSheet and add to the appropriate lists.
2251         Likewise, unbinding will remove from the appropriate lists.
2252
2253         (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
2254         (WebCore::InspectorCSSAgent::detectOrigin):
2255         When creating the inspector stylesheet, which is a <style> element,
2256         it will push a StyleSheetAdded event. In the process of binding this
2257         new stylesheet use the m_creatingViaInspectorStyleSheet to add it to
2258         out list of Inspector Stylesheets.
2259
2260 2015-08-26  Myles C. Maxfield  <mmaxfield@apple.com>
2261
2262         Add comment to LocaleToScriptMappingDefault.cpp
2263         <rdar://problem/22407296>
2264
2265         Unreviewed.
2266
2267         We currently map lang="zh" to USCRIPT_SIMPLIFIED_HAN, which is incorrect.
2268         Instead, we should consult with an external source, such as the user's
2269         language preferences.
2270
2271         * platform/text/LocaleToScriptMappingDefault.cpp:
2272
2273 2015-08-26  Chris Dumez  <cdumez@apple.com>
2274
2275         Distinguish Web IDL callback interfaces from Web IDL callback functions
2276         https://bugs.webkit.org/show_bug.cgi?id=148434
2277
2278         Reviewed by Geoffrey Garen.
2279
2280         Distinguish Web IDL callback interfaces [1] from Web IDL callback
2281         functions [2].
2282
2283         One Web-exposed difference is that when using a callback interface,
2284         the user can pass either a function / callable object or a non-callable
2285         object that has a method with the same name as the callback interface
2286         operation:
2287         https://heycam.github.io/webidl/#es-user-objects
2288
2289         When using a callback function, the user needs to pass a function /
2290         callable object:
2291         https://heycam.github.io/webidl/#es-callback-function
2292
2293         This patch adds a new [Callback=FunctionOnly] IDL extended attribute to
2294         indicate that a callback interface should be function-only (i.e. a callback
2295         function in the latest Web IDL specification). Without this IDL extended
2296         attribute, the callback interface will be treated as a regular callback
2297         interface. This will be needed for Bug 148415, as NodeFilter should be
2298         an actual callback interface.
2299
2300         Note that longer term, we should really drop the old-style
2301         [Callback=FunctionOnly] extendd attribute and use actual IDL callback
2302         functions as per the latest Web IDL specification. However, I did not
2303         do this in this patch to minimize patch size.
2304
2305         This patch adds Callback=FunctionOnly] IDL extended attribute to all
2306         our pre-existing callback interfaces so that there is no behavior
2307         change.
2308
2309        [1] https://heycam.github.io/webidl/#dfn-callback-interface
2310        [2] https://heycam.github.io/webidl/#idl-callback-functions
2311
2312         * Modules/geolocation/PositionCallback.idl:
2313         * Modules/geolocation/PositionErrorCallback.idl:
2314         * Modules/mediastream/MediaStreamTrackSourcesCallback.idl:
2315         * Modules/mediastream/NavigatorUserMediaErrorCallback.idl:
2316         * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl:
2317         * Modules/mediastream/RTCPeerConnectionErrorCallback.idl:
2318         * Modules/mediastream/RTCSessionDescriptionCallback.idl:
2319         * Modules/mediastream/RTCStatsCallback.idl:
2320         * Modules/notifications/NotificationPermissionCallback.idl:
2321         * Modules/quota/StorageErrorCallback.idl:
2322         * Modules/quota/StorageQuotaCallback.idl:
2323         * Modules/quota/StorageUsageCallback.idl:
2324         * Modules/webaudio/AudioBufferCallback.idl:
2325         * Modules/webdatabase/DatabaseCallback.idl:
2326         * Modules/webdatabase/SQLStatementCallback.idl:
2327         * Modules/webdatabase/SQLStatementErrorCallback.idl:
2328         * Modules/webdatabase/SQLTransactionCallback.idl:
2329         * Modules/webdatabase/SQLTransactionErrorCallback.idl:
2330         * bindings/js/JSCallbackData.cpp:
2331         (WebCore::JSCallbackData::invokeCallback):
2332         * bindings/js/JSCallbackData.h:
2333         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
2334         (WebCore::JSSQLStatementErrorCallback::handleEvent):
2335         * bindings/scripts/CodeGenerator.pm:
2336         (trim):
2337         (IsFunctionOnlyCallbackInterface):
2338         * bindings/scripts/CodeGeneratorJS.pm:
2339         (GenerateParametersCheckExpression):
2340         (GenerateParametersCheck):
2341         (GenerateCallbackImplementation):
2342         * bindings/scripts/IDLAttributes.txt:
2343         * bindings/scripts/test/GObject/WebKitDOMTestCallbackFunction.cpp: Added.
2344         (WebKit::kit):
2345         (WebKit::core):
2346         (WebKit::wrapTestCallbackFunction):
2347         (webkit_dom_test_callback_function_finalize):
2348         (webkit_dom_test_callback_function_constructor):
2349         (webkit_dom_test_callback_function_class_init):
2350         (webkit_dom_test_callback_function_init):
2351         (webkit_dom_test_callback_function_callback_with_no_param):
2352         (webkit_dom_test_callback_function_callback_with_array_param):
2353         (webkit_dom_test_callback_function_callback_with_serialized_script_value_param):
2354         (webkit_dom_test_callback_function_callback_with_non_bool_return_type):
2355         (webkit_dom_test_callback_function_callback_with_string_list):
2356         (webkit_dom_test_callback_function_callback_with_boolean):
2357         (webkit_dom_test_callback_function_callback_requires_this_to_pass):
2358         * bindings/scripts/test/GObject/WebKitDOMTestCallbackFunction.h: Added.
2359         * bindings/scripts/test/GObject/WebKitDOMTestCallbackFunctionPrivate.h: Copied from Source/WebCore/css/MediaQueryListListener.idl.
2360         * bindings/scripts/test/JS/JSTestCallback.cpp:
2361         (WebCore::JSTestCallback::callbackWithNoParam):
2362         (WebCore::JSTestCallback::callbackWithArrayParam):
2363         (WebCore::JSTestCallback::callbackWithSerializedScriptValueParam):
2364         (WebCore::JSTestCallback::callbackWithStringList):
2365         (WebCore::JSTestCallback::callbackWithBoolean):
2366         (WebCore::JSTestCallback::callbackRequiresThisToPass):
2367         * bindings/scripts/test/JS/JSTestCallbackFunction.cpp: Copied from Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp.
2368         (WebCore::JSTestCallbackFunction::JSTestCallbackFunction):
2369         (WebCore::JSTestCallbackFunction::~JSTestCallbackFunction):
2370         (WebCore::JSTestCallbackFunction::callbackWithNoParam):
2371         (WebCore::JSTestCallbackFunction::callbackWithArrayParam):
2372         (WebCore::JSTestCallbackFunction::callbackWithSerializedScriptValueParam):
2373         (WebCore::JSTestCallbackFunction::callbackWithStringList):
2374         (WebCore::JSTestCallbackFunction::callbackWithBoolean):
2375         (WebCore::JSTestCallbackFunction::callbackRequiresThisToPass):
2376         * bindings/scripts/test/JS/JSTestCallbackFunction.h: Added.
2377         (WebCore::JSTestCallbackFunction::create):
2378         (WebCore::JSTestCallbackFunction::scriptExecutionContext):
2379         * bindings/scripts/test/JS/JSTestObj.cpp:
2380         (WebCore::JSTestObjConstructor::constructJSTestObj):
2381         (WebCore::JSTestObjConstructor::finishCreation):
2382         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
2383         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
2384         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
2385         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArg):
2386         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArg):
2387         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionAndOptionalArg):
2388         (WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArg):
2389         (WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArg):
2390         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
2391         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
2392         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2): Deleted.
2393         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10): Deleted.
2394         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
2395         (WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
2396         * bindings/scripts/test/ObjC/DOMTestCallbackFunction.h: Copied from Source/WebCore/html/VoidCallback.idl.
2397         * bindings/scripts/test/ObjC/DOMTestCallbackFunction.mm: Added.
2398         (-[DOMTestCallbackFunction dealloc]):
2399         (-[DOMTestCallbackFunction finalize]):
2400         (-[DOMTestCallbackFunction callbackWithNoParam]):
2401         (-[DOMTestCallbackFunction callbackWithArrayParam:]):
2402         (-[DOMTestCallbackFunction callbackWithSerializedScriptValueParam:strArg:]):
2403         (-[DOMTestCallbackFunction callbackWithNonBoolReturnType:]):
2404         (-[DOMTestCallbackFunction customCallback:class6Param:]):
2405         (-[DOMTestCallbackFunction callbackWithStringList:]):
2406         (-[DOMTestCallbackFunction callbackWithBoolean:]):
2407         (-[DOMTestCallbackFunction callbackRequiresThisToPass:testNodeParam:]):
2408         (core):
2409         (kit):
2410         * bindings/scripts/test/ObjC/DOMTestCallbackFunctionInternal.h: Copied from Source/WebCore/html/VoidCallback.idl.
2411         * bindings/scripts/test/TestCallbackFunction.idl: Copied from Source/WebCore/Modules/webdatabase/DatabaseCallback.idl.
2412         * bindings/scripts/test/TestObj.idl:
2413         * css/MediaQueryListListener.idl:
2414         * dom/RequestAnimationFrameCallback.idl:
2415         * dom/StringCallback.idl:
2416         * html/VoidCallback.idl:
2417
2418 2015-08-26  Beth Dakin  <bdakin@apple.com>
2419
2420         REGRESSION: Safari navigates after a cancelled force click
2421         https://bugs.webkit.org/show_bug.cgi?id=148491
2422         -and corresponding-
2423         rdar://problem/22394323
2424
2425         Reviewed by Tim Horton.
2426
2427         This regression was introduced on El Capitan because AppKit sends ‘cancel’ to 
2428         gesture recognizer BEFORE it sends the mouseUp. So the ImmediateActionStage needs 
2429         to track whether a cancel happened after updates or without any updates since they 
2430         signify different things. 
2431
2432         Don’t perform default behaviors when the stage is ActionCancelledAfterUpdate.
2433         * page/EventHandler.cpp:
2434         (WebCore::EventHandler::handleMouseReleaseEvent):
2435
2436         New possible stages, and new getter for the current stage.
2437         * page/EventHandler.h:
2438         (WebCore::EventHandler::immediateActionStage):
2439
2440 2015-08-26  Anders Carlsson  <andersca@apple.com>
2441
2442         Fix failing tests.
2443
2444         Add fallback code for the case when iterations is 0.
2445
2446         * platform/graphics/filters/FEConvolveMatrix.cpp:
2447         (WebCore::FEConvolveMatrix::platformApplySoftware):
2448
2449 2015-08-26  Anders Carlsson  <andersca@apple.com>
2450
2451         Use WorkQueue::concurrentApply in FEConvolveMatrix
2452         https://bugs.webkit.org/show_bug.cgi?id=148490
2453
2454         Reviewed by Tim Horton.
2455
2456         Using WorkQueue::concurrentApply lets us simplify the code a lot, and measurements show
2457         no difference in performance. The striding has been slightly tweaked to make more sense
2458         (we no longer divide up the remainder across some of the iterations, instead we just process 
2459         it separately last).
2460
2461         * platform/graphics/filters/FEConvolveMatrix.cpp:
2462         (WebCore::FEConvolveMatrix::platformApplySoftware):
2463         (WebCore::FEConvolveMatrix::setInteriorPixelsWorker): Deleted.
2464         * platform/graphics/filters/FEConvolveMatrix.h:
2465
2466 2015-08-26  Eric Carlson  <eric.carlson@apple.com>
2467
2468         Media Session: make MediaSessionMetadata a class
2469         https://bugs.webkit.org/show_bug.cgi?id=148486
2470
2471         Reviewed by Jer Noble.
2472
2473         No new tests, no observable changes.
2474
2475         * Modules/mediasession/MediaSessionMetadata.h: Make it a class.
2476         * page/ChromeClient.h: struct MediaSessionMetadata -> class MediaSessionMetadata.
2477
2478 2015-08-26  Per Arne Vollan  <peavo@outlook.com>
2479
2480         [Curl] Deadlock when downloading.
2481         https://bugs.webkit.org/show_bug.cgi?id=148438
2482
2483         Reviewed by Alex Christensen.
2484
2485         A thread should not try locking when it already has got the lock,
2486         this will create a deadlock.
2487
2488         * platform/network/curl/CurlDownload.cpp:
2489         (WebCore::CurlDownloadManager::startThreadIfNeeded):
2490         (WebCore::CurlDownloadManager::stopThread):
2491         (WebCore::CurlDownloadManager::stopThreadIfIdle):
2492         (WebCore::CurlDownload::~CurlDownload):
2493         (WebCore::CurlDownload::moveFileToDestination):
2494         (WebCore::CurlDownload::didFail):
2495         * platform/network/curl/CurlDownload.h:
2496         (WebCore::CurlDownloadManager::getMultiHandle):
2497         (WebCore::CurlDownloadManager::runThread):
2498         (WebCore::CurlDownloadManager::setRunThread):
2499
2500 2015-08-26  Jinyoung Hur  <hur.ims@navercorp.com>
2501
2502         [Cairo] Accelerated canvas should fall back to non-accelerated canvas on creation failure
2503         https://bugs.webkit.org/show_bug.cgi?id=148476
2504
2505         Reviewed by Brent Fulgham.
2506
2507         Cairo-gl backed surface might fail to be created with large dimensions, e.g., 50x32000, depending on 
2508         the gl implementations. In case of Mac port, ImageBufferCG falls back to a software surface when it fails to create
2509         IOSurface, an accelerated surface. Though the unaccelerated surface could be slower, it would be better
2510         to create a working surface than nothing.
2511
2512         Because the max dimensions of gl texture might vary among the OpenGL implementations, below test can't guarantee
2513         the verification of behavior difference depending on the running platform.
2514
2515         Test: fast/canvas/canvas-large-dimensions.html
2516
2517         * platform/graphics/cairo/ImageBufferCairo.cpp:
2518         (WebCore::ImageBuffer::ImageBuffer):
2519
2520 2015-08-26  Commit Queue  <commit-queue@webkit.org>
2521
2522         Unreviewed, rolling out r188960.
2523         https://bugs.webkit.org/show_bug.cgi?id=148479
2524
2525         Broke all the tests (Requested by ap on #webkit).
2526
2527         Reverted changeset:
2528
2529         "Add some new emoji with modifiers and new sequence."
2530         https://bugs.webkit.org/show_bug.cgi?id=148202
2531         http://trac.webkit.org/changeset/188960
2532
2533 2015-08-25  Philippe Normand  <pnormand@igalia.com>
2534
2535         [GStreamer] "method" property for the webkitwebsrc element
2536         https://bugs.webkit.org/show_bug.cgi?id=148433
2537
2538         Reviewed by Carlos Garcia Campos.
2539
2540         This new property is sometimes used by the GStreamer uridownloader
2541         when time synchronization is required for DASH. The same property
2542         was added to the souphttpsrc element.
2543
2544         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
2545         (webKitWebSrcSetProperty):
2546         (webKitWebSrcGetProperty):
2547         (webKitWebSrcStart):
2548
2549 2015-08-26  Enrica Casucci  <enrica@apple.com>
2550
2551         Add some new emoji with modifiers and new sequence.
2552         https://bugs.webkit.org/show_bug.cgi?id=148202
2553         rdar://problem/21849857
2554
2555         Reviewed by Sam Weinig.
2556
2557         Adding support for some new emoji with modifiers and
2558         one new emoji sequence.
2559
2560         * platform/graphics/FontCascade.cpp:
2561         (WebCore::FontCascade::characterRangeCodePath):
2562         * platform/text/CharacterProperties.h:
2563         (WebCore::isEmojiGroupCandidate):
2564         (WebCore::isEmojiModifier):
2565         * platform/text/TextBreakIterator.cpp:
2566         (WebCore::cursorMovementIterator):
2567
2568 2015-08-25  Nan Wang  <n_wang@apple.com>
2569
2570         AX: Enable accessibility/aria-controls.html test for mac
2571         https://bugs.webkit.org/show_bug.cgi?id=148458
2572
2573         Reviewed by Chris Fleizach.
2574
2575         Re-enabled accessibility/aria-controls.html test for mac.
2576
2577         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2578         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2579
2580 2015-08-25  Zalan Bujtas  <zalan@apple.com>
2581
2582         Using the filter functional notation for background images results in wrong background-size rendering
2583         https://bugs.webkit.org/show_bug.cgi?id=148221
2584         rdar://problem/22379518
2585
2586         Reviewed by Daniel Bates.
2587
2588         Do not ignore the size argument, when the filter image is being drawn onto the context.
2589         When the size is ignored, we end up painting the image with its native size while the filter
2590         is applied on the size of the generated image.
2591
2592         Test: fast/filter-image/background-filter-image.html
2593
2594         * css/CSSFilterImageValue.cpp:
2595         (WebCore::CSSFilterImageValue::image):
2596
2597 2015-08-25  Carlos Garcia Campos  <cgarcia@igalia.com>
2598
2599         IconDatabase: syncThreadMainLoop() is unlocking m_syncLock twice when thread termination is requested
2600         https://bugs.webkit.org/show_bug.cgi?id=148429
2601
2602         Reviewed by Filip Pizlo.
2603
2604         The lock is released an locked on every loop iteration, and then
2605         unlocked again after the loop. There's an early break in the loop
2606         when thread termination is requested that happens after the lock
2607         is released but before is locked again, so that the unlock after
2608         the loop is trying to unlock the lock again. This was not a
2609         problem before, but the new Lock has an assertion to ensure that a
2610         lock is not released twice.
2611
2612         * loader/icon/IconDatabase.cpp:
2613         (WebCore::IconDatabase::syncThreadMainLoop): Clean up the thread
2614         and return instead of breaking the loop when thread termination is
2615         requested.
2616
2617 2015-08-25  Nan Wang  <n_wang@apple.com>
2618
2619         [Mac] accessibility/document-attributes.html fails
2620         https://bugs.webkit.org/show_bug.cgi?id=116636
2621
2622         Reviewed by Chris Fleizach.
2623
2624         Re-enabled accessibility/document-attributes.html test.
2625
2626         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2627         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2628
2629 2015-08-25  Csaba Osztrogonác  <ossy@webkit.org>
2630
2631         Fix the !ENABLE(VIDEO) build after r188693
2632         https://bugs.webkit.org/show_bug.cgi?id=148424
2633
2634         Reviewed by Tim Horton.
2635
2636         * page/ChromeClient.h:
2637
2638 2015-08-25  Eric Carlson  <eric.carlson@apple.com>
2639
2640         [iOS] Don't clear AVPlayerItem when pausing if AirPlay is active
2641         https://bugs.webkit.org/show_bug.cgi?id=148319
2642
2643         Reviewed by Jer Noble.
2644
2645         * html/HTMLMediaElement.cpp:
2646         (WebCore::HTMLMediaElement::purgeBufferedDataIfPossible): Do nothing if the session
2647           is allowed to load data when in the background and we are not under memory pressure.
2648
2649         * platform/audio/ios/MediaSessionManagerIOS.mm:
2650         (WebCore::MediaSessionManageriOS::sessionCanLoadMedia): Call base class.
2651
2652 2015-08-25  Csaba Osztrogonác  <ossy@webkit.org>
2653
2654         Fix the !ENABLE(CSS_REGIONS) build after r188663
2655         https://bugs.webkit.org/show_bug.cgi?id=148425
2656
2657         Reviewed by Chris Dumez.
2658
2659         * bindings/js/JSDOMNamedFlowCollectionCustom.cpp:
2660
2661 2015-08-24  Brent Fulgham  <bfulgham@apple.com>
2662
2663         Wheel events stop propagating when target element is removed from DOM
2664         https://bugs.webkit.org/show_bug.cgi?id=148384
2665         <rdar://problem/19732211>
2666
2667         Reviewed by David Hyatt.
2668
2669         Tested by tiled-drawing/scrolling/latched-to-deleted-node.html
2670
2671         We need to reset our latching state if the targeted node is removed from the DOM.
2672         Add a check in 'platformPrepareForWheelEvents' that checks if the expected latching
2673         target node was already removed from the DOM. If it was, we should not send events
2674         to it, and should reset latching state so we can attach to the next relevant node.
2675
2676         * dom/Element.cpp:
2677         (WebCore::Element::removedFrom): Remove any latched wheel event state objects that
2678         match the current element.
2679         * page/MainFrame.cpp:
2680         (WebCore::MainFrame::removeLatchingStateForTarget): Remove any latched wheel event
2681         state structures that match the passed wheel event target.
2682         * page/MainFrame.h:
2683
2684 2015-08-25  Wenson Hsieh  <wenson_hsieh@apple.com>
2685
2686         Fix crash due to search field disappearing when showing results menu
2687         https://bugs.webkit.org/show_bug.cgi?id=148410
2688         <rdar://problem/22399850>
2689
2690         Reviewed by Brent Fulgham.
2691
2692         When clicking on the results button of a search field that hides upon being focused, WebKit will crash because we
2693         attempt to toggle the results menu using the search field's renderer which is null. This is addressed by adding a null
2694         check to make sure the search field has not been hidden before toggling the menu.
2695
2696         Test: fast/forms/search/search-results-hidden-crash.html
2697
2698         * html/shadow/TextControlInnerElements.cpp:
2699         (WebCore::SearchFieldResultsButtonElement::defaultEventHandler): Add a null check for the search field's renderer.
2700
2701 2015-08-25  Chris Dumez  <cdumez@apple.com>
2702
2703         compareDocumentPosition() should report PRECEDING or FOLLOWING information even if nodes are disconnected
2704         https://bugs.webkit.org/show_bug.cgi?id=119316
2705
2706         Reviewed by Darin Adler.
2707
2708         As the latest DOM specification, compareDocumentPosition() should report
2709         PRECEDING or FOLLOWING information even if nodes are disconnected:
2710         - http://dom.spec.whatwg.org/#dom-node-comparedocumentposition
2711
2712         This behavior is consistent with both IE10, Firefox and Chrome.
2713
2714         The implementation relies on the comparison of cryptographic hashes
2715         (SHA1) of the Node pointers so that the results returned by the function
2716         are consistent. We don't compare Node pointers directly as it was done
2717         previously in r153660 to avoid leaking information about our memory
2718         model to the Web.
2719
2720         Test: fast/dom/compare-document-position-disconnected-nodes.html
2721         W3C Test suite: http://w3c-test.org/dom/nodes/Node-compareDocumentPosition.html
2722
2723         * dom/Node.cpp:
2724         (WebCore::hashPointer):
2725         (WebCore::compareDetachedElementsPosition):
2726         (WebCore::Node::compareDocumentPosition):
2727
2728 2015-08-25  Chris Dumez  <cdumez@apple.com>
2729
2730         Add support for callback interfaces using other callback names than "handleEvent"
2731         https://bugs.webkit.org/show_bug.cgi?id=148418
2732
2733         Reviewed by Ryosuke Niwa.
2734
2735         Add support for callback interfaces using other callback names than
2736         "handleEvent" [1].
2737
2738         This is a pre-requirement for Bug 148415, as NodeFilter's callback
2739         function name is "acceptNode":
2740         - https://dom.spec.whatwg.org/#interface-nodefilter
2741
2742         [1] https://heycam.github.io/webidl/#es-user-objects
2743
2744         * bindings/js/JSCallbackData.cpp:
2745         (WebCore::JSCallbackData::invokeCallback):
2746         * bindings/js/JSCallbackData.h:
2747         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
2748         (WebCore::JSSQLStatementErrorCallback::handleEvent):
2749         * bindings/scripts/CodeGeneratorJS.pm:
2750         (GenerateCallbackImplementation):
2751         * bindings/scripts/test/JS/JSTestCallback.cpp:
2752         (WebCore::JSTestCallback::callbackWithNoParam):
2753         (WebCore::JSTestCallback::callbackWithArrayParam):
2754         (WebCore::JSTestCallback::callbackWithSerializedScriptValueParam):
2755         (WebCore::JSTestCallback::callbackWithStringList):
2756         (WebCore::JSTestCallback::callbackWithBoolean):
2757         (WebCore::JSTestCallback::callbackRequiresThisToPass):
2758
2759 2015-08-25  Chris Dumez  <cdumez@apple.com>
2760
2761         Get rid of custom bindings for RequestAnimationFrameCallback.handleEvent()
2762         https://bugs.webkit.org/show_bug.cgi?id=148417
2763
2764         Reviewed by Sam Weinig.
2765
2766         Get rid of custom bindings for RequestAnimationFrameCallback.handleEvent()
2767         by improving the bindings generator. In this case, the problem was that the
2768         bindings generator did not know how to convert a double parameter into a
2769         JSValue. The new code leverages the pre-existing NativeToJSValue subroutine
2770         to do the conversion instead of duplicating complex support here.
2771
2772         * WebCore.xcodeproj/project.pbxproj:
2773         * bindings/js/JSRequestAnimationFrameCallbackCustom.cpp: Removed.
2774         * bindings/scripts/CodeGeneratorJS.pm:
2775         (GenerateCallbackImplementation):
2776         * bindings/scripts/test/JS/JSTestCallback.cpp:
2777         (WebCore::JSTestCallback::callbackWithArrayParam):
2778         (WebCore::JSTestCallback::callbackWithSerializedScriptValueParam):
2779         (WebCore::JSTestCallback::callbackWithStringList):
2780         (WebCore::JSTestCallback::callbackWithBoolean):
2781         (WebCore::JSTestCallback::callbackRequiresThisToPass):
2782         * dom/RequestAnimationFrameCallback.idl:
2783
2784 2015-08-24  Jinyoung Hur  <hur.ims@navercorp.com>
2785
2786         Clear cairo-gl surface for initialization
2787         https://bugs.webkit.org/show_bug.cgi?id=148307
2788
2789         Reviewed by Martin Robinson.
2790
2791         A cairo-gl surface that is created from an uninitialized texture, should be cleared before use.
2792         A texture memory created by calling glTexImage2D with null data parameter, is uninitialized.
2793         And cairo_gl_surface_create_for_texture doesn't clear the provided texture for initialization.
2794         So it seems safe to clear the surface explicitly.
2795
2796         It is hard to verify this behavior change because the texture memory status is undefined. Undefined means
2797         it can be either initialized or not, though mostly initialized in my experiences.
2798
2799         * platform/graphics/cairo/ImageBufferCairo.cpp:
2800         (WebCore::clearSurface):
2801         (WebCore::createCairoGLSurface):
2802
2803 2015-08-24  Myles C. Maxfield  <mmaxfield@apple.com>
2804
2805         Fix the build fixes in r188875 and r188874
2806
2807         Unreviewed.
2808
2809         * platform/graphics/cocoa/FontCacheCoreText.cpp:
2810         (WebCore::FontCache::createFontPlatformData):
2811         * platform/graphics/mac/FontCacheMac.mm:
2812         (WebCore::toNSFontTraits):
2813
2814 2015-08-24  Tim Horton  <timothy_horton@apple.com>
2815
2816         Try to fix the build.
2817
2818         * platform/graphics/cocoa/FontCacheCoreText.cpp:
2819         (WebCore::FontCache::createFontPlatformData):
2820
2821 2015-08-24  Tim Horton  <timothy_horton@apple.com>
2822
2823         Fix the build.
2824
2825         * platform/graphics/mac/FontCacheMac.mm:
2826         (WebCore::toNSFontWeight):
2827         (WebCore::toNSFontTraits):
2828         (WebCore::platformFontWithFamilySpecialCase):
2829
2830 2015-08-24  Myles C. Maxfield  <mmaxfield@apple.com>
2831
2832         Use Optionals in RenderBox height computations
2833         https://bugs.webkit.org/show_bug.cgi?id=147253
2834
2835         Reviewed by David Hyatt.
2836
2837         No new tests because there is no behavior change.
2838
2839         * rendering/RenderBox.cpp:
2840         (WebCore::RenderBox::constrainLogicalHeightByMinMax):
2841         (WebCore::RenderBox::constrainContentBoxLogicalHeightByMinMax):
2842         (WebCore::RenderBox::overrideContainingBlockContentLogicalWidth):
2843         (WebCore::RenderBox::overrideContainingBlockContentLogicalHeight):
2844         (WebCore::RenderBox::setOverrideContainingBlockContentLogicalWidth):
2845         (WebCore::RenderBox::setOverrideContainingBlockContentLogicalHeight):
2846         (WebCore::RenderBox::adjustContentBoxLogicalHeightForBoxSizing):
2847         (WebCore::RenderBox::containingBlockLogicalWidthForContent):
2848         (WebCore::RenderBox::containingBlockLogicalHeightForContent):
2849         (WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
2850         (WebCore::RenderBox::computeLogicalHeight):
2851         (WebCore::RenderBox::computeLogicalHeightUsing):
2852         (WebCore::RenderBox::computeContentLogicalHeight):
2853         (WebCore::RenderBox::computeIntrinsicLogicalContentHeightUsing):
2854         (WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing):
2855         (WebCore::RenderBox::computePercentageLogicalHeight):
2856         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
2857         (WebCore::RenderBox::availableLogicalHeight):
2858         (WebCore::RenderBox::availableLogicalHeightUsing):
2859         (WebCore::RenderBox::computePositionedLogicalHeightUsing):
2860         (WebCore::logicalWidthIsResolvable):
2861         (WebCore::RenderBox::percentageLogicalHeightIsResolvableFromBlock):
2862         (WebCore::RenderBox::hasDefiniteLogicalHeight):
2863         * rendering/RenderBox.h:
2864         * rendering/RenderFlexibleBox.cpp:
2865         (WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
2866         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
2867         (WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
2868         * rendering/RenderFlexibleBox.h:
2869         * rendering/RenderFlowThread.cpp:
2870         (WebCore::RenderFlowThread::addForcedRegionBreak):
2871         * rendering/RenderGrid.cpp:
2872         (WebCore::RenderGrid::computeUsedBreadthOfSpecifiedLength):
2873         (WebCore::RenderGrid::logicalContentHeightForChild):
2874         (WebCore::RenderGrid::minContentForChild):
2875         (WebCore::RenderGrid::maxContentForChild):
2876         (WebCore::RenderGrid::layoutGridItems):
2877         (WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):
2878         * rendering/RenderMultiColumnSet.cpp:
2879         (WebCore::RenderMultiColumnSet::calculateMaxColumnHeight):
2880         * rendering/RenderTable.cpp:
2881         (WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
2882
2883 2015-08-24  Anders Carlsson  <andersca@apple.com>
2884
2885         Fix failing tests.
2886         
2887         It's OK to call runStateMachine with an idle state. Just bail early when that happens.
2888
2889         * Modules/webdatabase/SQLTransactionStateMachine.h:
2890         (WebCore::SQLTransactionStateMachine<T>::runStateMachine):
2891
2892 2015-08-24  Myles C. Maxfield  <mmaxfield@apple.com>
2893
2894         [Cocoa] Unify FontCache
2895         https://bugs.webkit.org/show_bug.cgi?id=148358
2896
2897         Reviewed by Antti Koivisto.
2898
2899         Move all the duplicate code to FontCacheCoreText.
2900
2901         No new tests because there is no behavior change.
2902
2903         * platform/graphics/FontCache.h:
2904         * platform/graphics/cocoa/FontCacheCoreText.cpp:
2905         (WebCore::fontWeightFromCoreText):
2906         (WebCore::toTraitsMask):
2907         (WebCore::isFontWeightBold):
2908         (WebCore::toCoreTextFontWeight):
2909         (WebCore::invalidateFontCache):
2910         (WebCore::fontCacheRegisteredFontsChangedNotificationCallback):
2911         (WebCore::FontCache::platformInit):
2912         (WebCore::FontCache::systemFontFamilies):
2913         (WebCore::computeTraits):
2914         (WebCore::computeNecessarySynthesis):
2915         (WebCore::fontWhitelist):
2916         (WebCore::FontCache::setFontWhitelist):
2917         (WebCore::platformFontLookupWithFamily):
2918         (WebCore::fontWithFamily):
2919         (WebCore::shouldAutoActivateFontIfNeeded):
2920         (WebCore::FontCache::createFontPlatformData):
2921         (WebCore::fallbackDedupSet):
2922         (WebCore::FontCache::platformPurgeInactiveFontData):
2923         (WebCore::FontCache::systemFallbackForCharacters):
2924         * platform/graphics/ios/FontCacheIOS.mm:
2925         (WebCore::platformInvalidateFontCache):
2926         (WebCore::getSystemFontFallbackForCharacters):
2927         (WebCore::platformLookupFallbackFont):
2928         (WebCore::FontCache::lastResortFallbackFont):
2929         (WebCore::FontCache::weightOfCTFont):
2930         (WebCore::platformFontWithFamilySpecialCase):
2931         (WebCore::FontCache::platformInit): Deleted.
2932         (WebCore::isFontWeightBold): Deleted.
2933         (WebCore::FontCache::getSystemFontFallbackForCharacters): Deleted.
2934         (WebCore::FontCache::systemFallbackForCharacters): Deleted.
2935         (WebCore::FontCache::systemFontFamilies): Deleted.
2936         (WebCore::createCTFontWithTextStyle): Deleted.
2937         (WebCore::createCTFontWithFamilyNameAndWeight): Deleted.
2938         (WebCore::toCTFontWeight): Deleted.
2939         (WebCore::FontCache::createFontPlatformData): Deleted.
2940         * platform/graphics/mac/FontCacheMac.mm:
2941         (WebCore::appkitWeightToFontWeight):
2942         (WebCore::toNSFontTraits):
2943         (WebCore::platformFontWithFamilySpecialCase):
2944         (WebCore::platformFontWithFamily):
2945         (WebCore::platformInvalidateFontCache):
2946         (WebCore::platformLookupFallbackFont):
2947         (WebCore::FontCache::lastResortFallbackFont):
2948         (WebCore::toCoreTextFontWeight): Deleted.
2949         (WebCore::fontWhitelist): Deleted.
2950         (WebCore::FontCache::setFontWhitelist): Deleted.
2951         (WebCore::fontWithFamilySpecialCase): Deleted.
2952         (WebCore::fontWithFamily): Deleted.
2953         (WebCore::invalidateFontCache): Deleted.
2954         (WebCore::fontCacheRegisteredFontsChangedNotificationCallback): Deleted.
2955         (WebCore::FontCache::platformInit): Deleted.
2956         (WebCore::isAppKitFontWeightBold): Deleted.
2957         (WebCore::shouldAutoActivateFontIfNeeded): Deleted.
2958         (WebCore::fallbackDedupSet): Deleted.
2959         (WebCore::FontCache::platformPurgeInactiveFontData): Deleted.
2960         (WebCore::lookupCTFont): Deleted.
2961         (WebCore::FontCache::systemFallbackForCharacters): Deleted.
2962         (WebCore::FontCache::systemFontFamilies): Deleted.
2963         (WebCore::FontCache::createFontPlatformData): Deleted.
2964         * rendering/RenderThemeIOS.mm:
2965         (WebCore::RenderThemeIOS::updateCachedSystemFontDescription):
2966         (WebCore::fromCTFontWeight): Deleted.
2967
2968 2015-08-24  Wenson Hsieh  <wenson_hsieh@apple.com>
2969
2970         Unreviewed, attempt to fix iOS build after r188860
2971
2972         * page/WheelEventDeltaFilter.cpp:
2973         (WebCore::WheelEventDeltaFilter::isFilteringDeltas): Moved implementation out of header.
2974         (WebCore::WheelEventDeltaFilter::filteredDelta): Moved implementation out of header.
2975         * page/WheelEventDeltaFilter.h:
2976         (WebCore::WheelEventDeltaFilter::isFilteringDeltas): Deleted.
2977         (WebCore::WheelEventDeltaFilter::filteredDelta): Deleted.
2978
2979 2015-08-21  Anders Carlsson  <andersca@apple.com>
2980
2981         Remove unused return values from SQLTransaction state functions
2982         https://bugs.webkit.org/show_bug.cgi?id=148344
2983
2984         Reviewed by Tim Horton.
2985
2986         * Modules/webdatabase/SQLTransaction.cpp:
2987         (WebCore::SQLTransaction::deliverTransactionCallback):
2988         (WebCore::SQLTransaction::deliverTransactionErrorCallback):
2989         (WebCore::SQLTransaction::deliverStatementCallback):
2990         (WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
2991         (WebCore::SQLTransaction::deliverSuccessCallback):
2992         (WebCore::SQLTransaction::unreachableState):
2993         * Modules/webdatabase/SQLTransaction.h:
2994         * Modules/webdatabase/SQLTransactionBackend.cpp:
2995         (WebCore::SQLTransactionBackend::acquireLock):
2996         (WebCore::SQLTransactionBackend::openTransactionAndPreflight):
2997         (WebCore::SQLTransactionBackend::runStatements):
2998         (WebCore::SQLTransactionBackend::cleanupAndTerminate):
2999         (WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
3000         (WebCore::SQLTransactionBackend::unreachableState):
3001         * Modules/webdatabase/SQLTransactionBackend.h:
3002         * Modules/webdatabase/SQLTransactionStateMachine.h:
3003         (WebCore::SQLTransactionStateMachine<T>::runStateMachine):
3004
3005 2015-08-24  Wenson Hsieh  <wenson_hsieh@apple.com>
3006
3007         Unreviewed, fix build after r188860
3008
3009         * page/mac/WheelEventDeltaFilterMac.mm:
3010         (WebCore::WheelEventDeltaFilterMac::updateFromDelta): Convert argument explicitly to an NSPoint.
3011
3012 2015-08-24  Wenson Hsieh  <wenson_hsieh@apple.com>
3013
3014         Use _NSScrollingPredominantAxisFilter for wheel event filtering on Mac
3015         https://bugs.webkit.org/show_bug.cgi?id=147320
3016
3017         Reviewed by Simon Fraser.
3018
3019         Refactored to use a predominant axis filter instead of a predominant axis tracker. This allows us to
3020         employ AppKit's _NSScrollingPredominantAxisFilter when possible, and use the wheel event delta tracker
3021         as a fallback. Here, we refactor EventHandler to use the new filters for overflow scrolling and replace
3022         the MainFrame's WheelEventDeltaTracker with an appropriate type of WheelEventDeltaFilter.
3023
3024         In the case where an _NSScrollingPredominantAxisFilter is unavailable, the platform-invariant wheel
3025         event delta filter simply uses the existing wheel event delta tracker to compute the current predominant
3026         axis. It uses the predominant axis to determine which axis (if any) should have its delta zeroed out.
3027
3028         This patch also introduces NSScrollingInputFilterSPI.h, which either imports the internal input filter
3029         header from AppKit or declares relevant interfaces and functions.
3030
3031         No new tests, since this change does not add new functionality.
3032
3033         * CMakeLists.txt: Add page/WheelEventDeltaFilter.cpp.
3034         * WebCore.vcxproj/WebCore.vcxproj: Add WheelEventDeltaFilter.cpp and WheelEventDeltaFilter.h.
3035         * WebCore.vcxproj/WebCore.vcxproj.filters: Add WheelEventDeltaFilter.cpp and WheelEventDeltaFilter.h.
3036         * WebCore.xcodeproj/project.pbxproj: Add WheelEventDeltaFilter.cpp, WheelEventDeltaFilter.h, and their Mac counterparts.
3037         * page/EventHandler.cpp:
3038         (WebCore::didScrollInScrollableArea): Refactored to no longer handle axes separately.
3039         (WebCore::handleWheelEventInAppropriateEnclosingBox): Ditto.
3040         (WebCore::EventHandler::platformRecordWheelEvent): Refactored to update the wheel delta filter.
3041         (WebCore::EventHandler::clearLatchedState): Ditto.
3042         (WebCore::EventHandler::defaultWheelEventHandler): Refactored to use wheel delta filters. No longer splits wheel events
3043                 and handles them on separate axes.
3044         (WebCore::didScrollInScrollableAreaForSingleAxis): Deleted.
3045         (WebCore::handleWheelEventInAppropriateEnclosingBoxForSingleAxis): Deleted.
3046         * page/EventHandler.h:
3047         * page/MainFrame.cpp:
3048         (WebCore::MainFrame::MainFrame): Initializes the appropriate type of WheelEventDeltaFilter.
3049         * page/MainFrame.h:
3050         * page/WheelEventDeltaFilter.cpp: Added.
3051         (WebCore::WheelEventDeltaFilter::WheelEventDeltaFilter):
3052         (WebCore::WheelEventDeltaFilter::~WheelEventDeltaFilter):
3053         (WebCore::WheelEventDeltaFilter::create):
3054         (WebCore::BasicWheelEventDeltaFilter::BasicWheelEventDeltaFilter):
3055         (WebCore::BasicWheelEventDeltaFilter::updateFromDelta):
3056         (WebCore::BasicWheelEventDeltaFilter::beginFilteringDeltas):
3057         (WebCore::BasicWheelEventDeltaFilter::endFilteringDeltas):
3058         (WebCore::deltaIsPredominantlyVertical):
3059         (WebCore::BasicWheelEventDeltaFilter::dominantScrollGestureDirection):
3060         * page/WheelEventDeltaFilter.h: Refactored WheelEventDeltaTracker logic to work as a filter instead.
3061         * page/mac/EventHandlerMac.mm:
3062         (WebCore::EventHandler::platformPrepareForWheelEvents): Refactored to use wheel delta filters.
3063         (WebCore::EventHandler::platformRecordWheelEvent): Ditto.
3064         * page/mac/WheelEventDeltaFilterMac.h: Wraps the new _NSScrollingPredominantAxisFilter.
3065         * page/mac/WheelEventDeltaFilterMac.mm: Added.
3066         (WebCore::WheelEventDeltaFilterMac::WheelEventDeltaFilterMac):
3067         (WebCore::WheelEventDeltaFilterMac::beginFilteringDeltas):
3068         (WebCore::WheelEventDeltaFilterMac::updateFromDelta):
3069         (WebCore::WheelEventDeltaFilterMac::endFilteringDeltas):
3070         * platform/PlatformWheelEvent.h:
3071         (WebCore::PlatformWheelEvent::copyWithDeltas): Used to create a copy of the platform wheel event with filtered deltas.
3072         (WebCore::PlatformWheelEvent::copyIgnoringHorizontalDelta): Deleted. No longer necessary, since we won't be handling wheel
3073                 events on separate axes.
3074         (WebCore::PlatformWheelEvent::copyIgnoringVerticalDelta): Ditto.
3075         * platform/spi/mac/NSScrollingInputFilterSPI.h: Added.
3076
3077 2015-08-24  Michael Catanzaro  <mcatanzaro@igalia.com>
3078
3079         Unreviewed, fix typo in a comment ("unsused" -> "unused")
3080
3081         * bindings/scripts/CodeGeneratorGObject.pm:
3082         (GenerateFunction):
3083
3084 2015-08-24  Carlos Garcia Campos  <cgarcia@igalia.com>
3085
3086         Unreviewed. Fix cairo performance regression introduced in r188379.
3087
3088         A missing break in a switch was making us to use High image
3089         interpolation quality by default.
3090
3091         * platform/graphics/cairo/PlatformContextCairo.cpp:
3092         (WebCore::PlatformContextCairo::drawSurfaceToContext): Add the
3093         missing break.
3094
3095 2015-08-24  Carlos Garcia Campos  <cgarcia@igalia.com>
3096
3097         Unreviewed. Fix GObject DOM bindings API break test after r188809.
3098
3099         element.getElementsByTagName and element.getElementsByClassName
3100         were also changed in r188809 to return an HTMLCollection. The
3101         build didn't fail because we don't use those in our tests, but the
3102         API breaks need to be fixed too.
3103
3104         * bindings/gobject/WebKitDOMDeprecated.cpp:
3105         (webkit_dom_element_get_elements_by_tag_name):
3106         (webkit_dom_element_get_elements_by_tag_name_ns):
3107         (webkit_dom_element_get_elements_by_class_name):
3108         * bindings/gobject/WebKitDOMDeprecated.h:
3109         * bindings/gobject/WebKitDOMDeprecated.symbols:
3110         * bindings/gobject/webkitdom.symbols:
3111         * bindings/scripts/CodeGeneratorGObject.pm:
3112         (GetEffectiveFunctionName):
3113
3114 2015-08-24  Carlos Garcia Campos  <cgarcia@igalia.com>
3115
3116         Unreviewed. Fix GObject DOM bindings API break test after r188735.
3117
3118         document.getElementsByClassName returns an HTMLCollection since
3119         r188735. So, rename it as
3120         webkit_dom_document_get_elements_by_class_name_as_html_collection,
3121         and deprecate the old method returning a NodeList.
3122
3123         * bindings/gobject/WebKitDOMDeprecated.cpp:
3124         (webkit_dom_document_get_elements_by_class_name): Use the
3125         implementation returning a NodeList.
3126         * bindings/gobject/WebKitDOMDeprecated.h:
3127         * bindings/gobject/WebKitDOMDeprecated.symbols: Add new symbols.
3128         * bindings/gobject/webkitdom.symbols: Ditto.
3129         * bindings/scripts/CodeGeneratorGObject.pm:
3130         (GetEffectiveFunctionName): Also check getElementsByClassName.
3131
3132 2015-08-24  Carlos Garcia Campos  <cgarcia@igalia.com>
3133
3134         Unreviewed. Fix GTK+ build after r188711.
3135
3136         Since r188711 document.createNodeIterator and
3137         document.createTreeWalker, don't raise exceptions anymore. Keep
3138         the GError parameter even if it's ignored to not break the API
3139         compatibility.
3140
3141         * bindings/scripts/CodeGeneratorGObject.pm:
3142         (FunctionUsedToRaiseException):
3143         (GenerateFunction):
3144
3145 2015-08-24  Carlos Garcia Campos  <cgarcia@igalia.com>
3146
3147         Unreviewed. Fix GTK+ build after r188809.
3148
3149         document.getElementsByTagName returns an HTMLCollection since
3150         r188809. So, rename it as
3151         webkit_dom_document_get_elements_by_tag_name_as_html_collection,
3152         and deprecate the old methods returning a NodeList.
3153
3154         * bindings/gobject/WebKitDOMDeprecated.cpp:
3155         (webkit_dom_document_get_elements_by_tag_name): Use the
3156         implementation returning a NodeList.
3157         (webkit_dom_document_get_elements_by_tag_name_ns): Ditto.
3158         * bindings/gobject/WebKitDOMDeprecated.h:
3159         * bindings/gobject/WebKitDOMDeprecated.symbols: Add new symbols.
3160         * bindings/gobject/webkitdom.symbols: Ditto.
3161         * bindings/scripts/CodeGeneratorGObject.pm:
3162         (GetEffectiveFunctionName): Bring back this method, now that we
3163         have deprecated API again and add the checks for
3164         getElementsByTagName methods.
3165         (GenerateFunction): Use GetEffectiveFunctionName().
3166
3167 2015-08-24  Myles C. Maxfield  <mmaxfield@apple.com>
3168
3169         @font-face related cleanup
3170         https://bugs.webkit.org/show_bug.cgi?id=148355
3171
3172         Reviewed by Darin Adler.
3173
3174         This patch cleans up much of our code related to web fonts. In general, it
3175         migrates to using C++ for-each style loops, uses Ref instead of RefPtr when
3176         things can't be nullptr, migrates to C++ Rvalue-references instead of
3177         PassRefPtr, and refactors CSSFontSelector::addFontFaceRule() to use helper
3178         functions.
3179
3180         No new tests because there is no behavior change.
3181
3182         * css/CSSFontFace.cpp:
3183         (WebCore::CSSFontFace::fontLoaded): Use a C++ for-each loop.
3184         * css/CSSFontFace.h:
3185         (WebCore::CSSFontFace::create): Use C++ Rvalue-references instead of
3186         PassRefPtr.
3187         (WebCore::CSSFontFace::CSSFontFace): Ditto.
3188         * css/CSSFontSelector.cpp:
3189         (WebCore::computeTraitsMask): Migrated a chunk of
3190         CSSFontSelector::addFontFaceRule() into this helper function.
3191         (WebCore::createFontFace): Ditto.
3192         (WebCore::familyNameFromPrimitive): Ditto.
3193         (WebCore::CSSFontSelector::addFontFaceRule): Call the newly-created helper
3194         functions. In addition, migrate to Refs instead of RefPtrs.
3195         (WebCore::compareFontFaces): Migrate to references instead of pointers.
3196         (WebCore::CSSFontSelector::getFontFace): Migrate to Refs instead of
3197         RefPtrs. Also use C++ for-each loops.
3198         * css/CSSFontSelector.h:
3199         * css/CSSSegmentedFontFace.cpp:
3200         (WebCore::CSSSegmentedFontFace::~CSSSegmentedFontFace): Use C++ for-each
3201         loops.
3202         (WebCore::CSSSegmentedFontFace::isValid): Ditto.
3203         (WebCore::CSSSegmentedFontFace::appendFontFace): Migrate to Rvalue-
3204         references instead of PassRefPtr.
3205         * css/CSSSegmentedFontFace.h:
3206         * platform/graphics/FontCache.h:
3207         * platform/graphics/cocoa/FontCacheCoreText.cpp:
3208         (WebCore::FontCache::getTraitsInFamily): Return the result instead of being
3209         passed an out parameter.
3210         * platform/graphics/freetype/FontCacheFreeType.cpp:
3211         (WebCore::FontCache::getTraitsInFamily): Ditto.
3212         * platform/graphics/win/FontCacheWin.cpp:
3213         (WebCore::traitsInFamilyEnumProc): Ditto.
3214         (WebCore::FontCache::getTraitsInFamily): Ditto.
3215
3216 2015-08-23  Andy Estes  <aestes@apple.com>
3217
3218         [Content Filtering] REGRESSION (r182356): Provisional URL is incorrect in didReceiveServerRedirectForProvisionalLoadForFrame when Content Filtering is enabled
3219         https://bugs.webkit.org/show_bug.cgi?id=147872
3220         rdar://problem/22044000
3221
3222         Reviewed by Dan Bernstein.
3223
3224         Passed the ResourceLoader request URL to dispatchDidReceiveServerRedirectForProvisionalLoad().
3225
3226         New API test: ContentFiltering.ServerRedirect
3227
3228         * WebCore.xcodeproj/project.pbxproj:
3229         * loader/EmptyClients.h:
3230         * loader/FrameLoaderClient.h: Added a URL argument to dispatchDidReceiveServerRedirectForProvisionalLoad().
3231         * loader/ResourceLoader.cpp:
3232         (WebCore::ResourceLoader::willSendRequestInternal): Passed the request URL to dispatchDidReceiveServerRedirectForProvisionalLoad().
3233         * testing/Internals.cpp:
3234         (WebCore::Internals::Internals): Stopped calling MockContentFilter::ensureInstalled().
3235         * testing/MockContentFilterSettings.cpp:
3236         (WebCore::MockContentFilterSettings::setEnabled): Called MockContentFilter::ensureInstalled() to ensure the
3237         mock is installed whenever the filter is enabled.
3238         * testing/MockContentFilterSettings.h: Exported member functions used by TestWebKitAPI.
3239
3240 2015-08-23  Geoffrey Garen  <ggaren@apple.com>
3241
3242         Unreviewed, rolling back in r188803.
3243
3244         "Debugger's VM should never be null"
3245         https://bugs.webkit.org/show_bug.cgi?id=148341
3246         http://trac.webkit.org/changeset/188803
3247
3248         * bindings/js/WorkerScriptDebugServer.cpp:
3249         (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
3250         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
3251         (WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
3252         * inspector/PageScriptDebugServer.cpp:
3253         (WebCore::PageScriptDebugServer::PageScriptDebugServer):
3254         (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
3255         (WebCore::PageScriptDebugServer::didPause):
3256         (WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
3257
3258 2015-08-23  Antti Koivisto  <antti@apple.com>
3259
3260         Remove SVGFrameLoaderClient and dataProtocolFrameLoader
3261         https://bugs.webkit.org/show_bug.cgi?id=148370
3262
3263         Reviewed by Darin Adler.
3264
3265         With data protocol handled internally in WebKit these are no longer needed.
3266
3267         This mostly reverts code changes from http://trac.webkit.org/179626 keeping the tests.
3268
3269         * loader/FrameLoaderClient.h:
3270         * loader/ResourceLoader.cpp:
3271         (WebCore::ResourceLoader::loadDataURL):
3272         (WebCore::ResourceLoader::setDataBufferingPolicy):
3273         (WebCore::ResourceLoader::dataProtocolFrameLoader): Deleted.
3274         * loader/ResourceLoader.h:
3275         (WebCore::ResourceLoader::documentLoader):
3276         (WebCore::ResourceLoader::originalRequest):
3277         * loader/cache/CachedImage.cpp:
3278         (WebCore::CachedImage::finishLoading):
3279         * svg/graphics/SVGImage.cpp:
3280         (WebCore::SVGImage::dataChanged):
3281         * svg/graphics/SVGImage.h:
3282         * svg/graphics/SVGImageClients.h:
3283
3284 2015-08-22  Chris Dumez  <cdumez@apple.com>
3285
3286         NodeList should not have a named getter
3287         https://bugs.webkit.org/show_bug.cgi?id=148117
3288
3289         Reviewed by Darin Adler.
3290
3291         Drop the named property getter on NodeList to match the specification:
3292         https://dom.spec.whatwg.org/#interface-nodelist
3293
3294         This change could be a bit risky but:
3295         1. Firefox and IE never had this named property getter on NodeList.
3296         2. Chrome successfuly dropped this named property getter in early 2014:
3297            https://src.chromium.org/viewvc/blink?revision=166356&view=revision
3298         3. Our named property getter on NodeList is only partly functional:
3299            It only matches by 'id' attribute, not by 'name' attribute.
3300         4. Our APIs that were wrongly returning a NodeList instead of an
3301            HTMLCollection (getElementsByTagName() / getElementsByClassName())
3302            have been fixed in r188735 and r188809. HTMLCollection does have
3303            a named property getter.
3304         5. This named getter adds code complexity.
3305
3306         * bindings/js/JSNodeListCustom.cpp:
3307         (WebCore::createWrapper): Deleted.
3308         * dom/ChildNodeList.cpp:
3309         (WebCore::ChildNodeList::invalidateCache): Deleted.
3310         * dom/ChildNodeList.h:
3311         * dom/LiveNodeList.cpp:
3312         * dom/LiveNodeList.h:
3313         * dom/NodeList.h:
3314         * dom/NodeList.idl:
3315         * dom/StaticNodeList.cpp:
3316         (WebCore::StaticElementList::length): Deleted.
3317         (WebCore::StaticElementList::item): Deleted.
3318         * dom/StaticNodeList.h:
3319         * html/HTMLCollection.h:
3320
3321 2015-08-22  Andreas Kling  <akling@apple.com>
3322
3323         [JSC] Static hash tables should be 100% compile-time constant.
3324         <https://webkit.org/b/148359>
3325
3326         Reviewed by Michael Saboff.
3327
3328         Adjust WebCore bindings generator for new JSC::HashTable layout
3329         and rebaseline the bindings tests for that change.
3330
3331         * bindings/scripts/CodeGeneratorJS.pm:
3332         (GenerateHashTable):
3333         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
3334         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
3335         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
3336         * bindings/scripts/test/JS/JSTestException.cpp:
3337         * bindings/scripts/test/JS/JSTestInterface.cpp:
3338         * bindings/scripts/test/JS/JSTestObj.cpp:
3339         * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
3340         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
3341
3342 2015-08-22  Michael Catanzaro  <mcatanzaro@igalia.com>
3343
3344         Unreviewed, fix build without ENABLE_CSS_GRID_LAYOUT after r188582
3345
3346         * rendering/RenderBox.cpp:
3347         (WebCore::RenderBox::computeLogicalWidthInRegion):
3348
3349 2015-08-22  Zalan Bujtas  <zalan@apple.com>
3350
3351         Page::renderTreeSize() does not include anonymous renderers.
3352         https://bugs.webkit.org/show_bug.cgi?id=148352
3353
3354         Reviewed by Andreas Kling.
3355
3356         Anonymous renderes take the document as their node. Instead
3357         of checking whether the node is the document, we could just check
3358         if the RenderView is available.
3359
3360         * rendering/RenderObject.cpp:
3361         (WebCore::RenderObject::RenderObject):
3362         (WebCore::RenderObject::~RenderObject):
3363         * rendering/RenderView.cpp:
3364         (WebCore::RenderView::RenderView): Deleted.
3365         * rendering/RenderView.h: Include the RenderView in render tree size as well.
3366
3367 2015-08-22  Antti Koivisto  <antti@apple.com>
3368
3369         Decode data URLs in web process
3370         https://bugs.webkit.org/show_bug.cgi?id=148128
3371
3372         Reviewed by Darin Adler.
3373
3374         We currenly send data URLs to networking layer for decoding. This involves a long and slow roundtrip through IPC and API layers.
3375
3376         * WebCore.xcodeproj/project.pbxproj:
3377         * loader/ResourceLoadScheduler.cpp:
3378         (WebCore::ResourceLoadScheduler::maybeLoadQuickLookResource): Deleted.
3379
3380             Remove this awkward interface for WebKit2.
3381
3382         * loader/ResourceLoadScheduler.h:
3383         * loader/ResourceLoader.cpp:
3384         (WebCore::ResourceLoader::start):
3385         (WebCore::ResourceLoader::loadDataURL):
3386
3387             Load using DataURLDecoder.
3388
3389         * loader/ResourceLoader.h:
3390
3391             Make start() public and export it so it can be called directly from WebKit2.
3392
3393         * platform/network/DataURLDecoder.cpp: Added.
3394         (WebCore::DataURLDecoder::decodeQueue):
3395         (WebCore::DataURLDecoder::DecodeTask::DecodeTask):
3396         (WebCore::DataURLDecoder::createDecodeTask):
3397
3398             Parse data URL metadata and initialize the decode task.
3399
3400         (WebCore::DataURLDecoder::decodeBase64):
3401         (WebCore::DataURLDecoder::decodeEscaped):
3402         (WebCore::DataURLDecoder::decode):
3403
3404             Asynchronously decode in a concurrent distpatch queue.
3405
3406         * platform/network/DataURLDecoder.h: Added.
3407         * platform/network/ios/QuickLook.h:
3408         * platform/text/DecodeEscapeSequences.h:
3409         (WebCore::URLEscapeSequence::findEndOfRun):
3410         (WebCore::URLEscapeSequence::decodeRun):
3411
3412             Factor buffer generation to a function.
3413
3414         (WebCore::decodeEscapeSequences):
3415         (WebCore::decodeURLEscapeSequencesAsData):
3416
3417             Add decode function that produces bytes instead of a String.
3418
3419 2015-08-21  Commit Queue  <commit-queue@webkit.org>
3420
3421         Unreviewed, rolling out r188792 and r188803.
3422         https://bugs.webkit.org/show_bug.cgi?id=148347
3423
3424         broke lots of tests, ggaren is going to investigate and reland
3425         (Requested by thorton on #webkit).
3426
3427         Reverted changesets:
3428