1 2015-08-26 Andy Estes <aestes@apple.com>
3 [Content Filtering] Determine navigation and content policy before continuing to filter a load
4 https://bugs.webkit.org/show_bug.cgi?id=148506
6 Reviewed by Brady Eidson.
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.
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.
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.
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
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
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.
92 2015-08-31 Chris Dumez <cdumez@apple.com>
94 Unreviewed, rebaseline bindings tests after r189184.
96 2015-08-31 Chris Dumez <cdumez@apple.com>
98 NodeFilter.SHOW_ALL has wrong value on 32-bit
99 https://bugs.webkit.org/show_bug.cgi?id=148602
101 Reviewed by Geoffrey Garen.
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
108 No new tests, already covered by fast/dom/node-filter-interface.html
109 which is now unskipped on Windows / 32bit.
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.
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
122 2015-08-31 Chris Dumez <cdumez@apple.com>
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
127 Reviewed by Ryosuke Niwa.
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
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
139 - https://src.chromium.org/viewvc/blink?revision=173010&view=revision
140 - https://src.chromium.org/viewvc/blink?revision=172768&view=revision
142 Tests: fast/dom/Range/range-detach-noop.html
143 fast/dom/node-iterator-detach-noop.html
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:
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):
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.
233 (WebCore::Range::startContainer):
234 (WebCore::Range::endContainer):
235 (WebCore::Range::collapsed):
236 (WebCore::Range::commonAncestorContainer):
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):
338 2015-08-31 Myles C. Maxfield <mmaxfield@apple.com>
340 [Cocoa] Unify showGlyphsWithAdvances
341 https://bugs.webkit.org/show_bug.cgi?id=148565
343 Reviewed by Dean Jackson.
345 None of the fonts created for WebKit have the renderingMode of
346 NSFontAntialiasedIntegerAdvancementsRenderingMode and are already printer fonts.
348 No new tests because there is no behavior change.
350 * platform/graphics/cocoa/FontCascadeCocoa.mm:
351 (WebCore::setCGFontRenderingMode):
352 (WebCore::FontCascade::drawGlyphs):
354 2015-08-31 Tim Horton <timothy_horton@apple.com>
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>
360 Reviewed by Beth Dakin.
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.
373 2015-08-31 Michael Catanzaro <mcatanzaro@igalia.com>
375 [Freetype] FontCache::strengthOfFirstAlias leaks an FcPattern
376 https://bugs.webkit.org/show_bug.cgi?id=148624
378 Reviewed by Martin Robinson.
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.
386 * platform/graphics/freetype/FontCacheFreeType.cpp:
387 (WebCore::strengthOfFirstAlias):
389 2015-08-31 Javier Fernandez <jfernandez@igalia.com>
391 [CSS Grid Layout] auto-margins alignment does not work for heights
392 https://bugs.webkit.org/show_bug.cgi?id=148071
394 Reviewed by Sergio Villar Senin.
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
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).
407 No new tests, we just need to adapt some cases of the ones we already have.
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:
421 2015-08-31 Alexey Proskuryakov <ap@apple.com>
425 * page/EventHandler.h:
426 (WebCore::EventHandler::immediateActionStage): Don't export an inline function,
427 to avoid "weak external symbol" errors.
429 2015-08-31 Enrica Casucci <enrica@apple.com>
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
435 Reviewed by Ryosuke Niwa.
437 Updating text break iterator rules to correctly handle those two emoji with variations.
439 * platform/text/TextBreakIterator.cpp:
440 (WebCore::cursorMovementIterator):
442 2015-07-31 Sergio Villar Senin <svillar@igalia.com>
444 [css-grid] Grid containers reporting wrong preferred widths
445 https://bugs.webkit.org/show_bug.cgi?id=147486
447 Reviewed by Darin Adler.
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.
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
460 * rendering/RenderGrid.cpp:
461 * rendering/RenderGrid.h:
463 2015-08-31 Sungmann Cho <sungmann.cho@navercorp.com>
465 Fix the WinCairo build after landing of webkit.org/b/148561.
466 https://bugs.webkit.org/show_bug.cgi?id=148627
468 Reviewed by Myles C. Maxfield.
470 No new tests, no behavior change.
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:
478 2015-08-31 Antti Koivisto <antti@apple.com>
480 REGRESSION (r188820): fast/dom/HTMLObjectElement/object-as-frame.html is flaky
481 https://bugs.webkit.org/show_bug.cgi?id=148533
483 Reviewed by Chris Dumez.
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.
488 * loader/SubframeLoader.cpp:
489 (WebCore::SubframeLoader::loadSubframe):
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.
494 Fix by preventing load events during subframe initialization. They will be fired if needed by the
495 subsequent explicit call to FrameLoader::checkCompleted.
497 2015-08-30 Ryuan Choi <ryuan.choi@navercorp.com>
499 [CoordinatedGraphics] Remove unnecessary two virtual methods from TiledBackingStoreClient
500 https://bugs.webkit.org/show_bug.cgi?id=147137
502 Reviewed by Gyuyoung Kim.
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.
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.
533 2015-08-29 Jessie Berlin <berlin@apple.com>
535 El Capitan build fix.
537 * platform/graphics/cocoa/FontCascadeCocoa.mm:
538 (WebCore::FontCascade::drawGlyphs):
540 2015-08-29 Chris Fleizach <cfleizach@apple.com>
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
545 Reviewed by Daniel Bates.
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
552 This change was adapted from Blink r183926:
553 https://src.chromium.org/viewvc/blink?view=rev&revision=183926
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
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:]):
576 2015-08-28 Myles C. Maxfield <mmaxfield@apple.com>
578 Migrate GraphicsContexts from pointers to references
579 https://bugs.webkit.org/show_bug.cgi?id=148561
581 Reviewed by Tim Horton.
583 We were using GraphicsContext*s throughout our rendering code. However,
584 these contexts can't be nullptr. This patch migrates users to
587 This is a purely mechanical change.
589 No new tests because there is no behavior change.
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):
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):
659 (WebCore::Theme::paint):
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):
1296 2015-08-28 Alexey Proskuryakov <ap@apple.com>
1298 Update bindings test results after
1299 https://bugs.webkit.org/show_bug.cgi?id=148591
1301 JSCallbackData::invokeCallback() should return the Exception to the caller
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):
1318 2015-08-28 Chris Dumez <cdumez@apple.com>
1320 JSCallbackData::invokeCallback() should return the Exception to the caller
1321 https://bugs.webkit.org/show_bug.cgi?id=148591
1323 Reviewed by Mark Lam.
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].
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).
1334 There is no actual behavior change in this patch. This slight
1335 refactoring is in preparation for Bug 148415.
1337 [1] https://dom.spec.whatwg.org/#traversal
1339 Some more context at:
1340 https://www.w3.org/Bugs/Public/show_bug.cgi?id=17713#c16
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):
1350 2015-08-28 Bem Jones-Bey <bjonesbe@adobe.com>
1352 [CSS Shapes] Remove unused CSSBasicShape::m_referenceBox
1353 https://bugs.webkit.org/show_bug.cgi?id=148588
1355 Reviewed by Zoltan Horvath.
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.
1361 This is based on a Blink patch by Timothy Loh.
1363 No new tests, removing unused code.
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.
1381 2015-08-28 Eric Carlson <eric.carlson@apple.com>
1383 [Mac] Restructure WebMediaSessionManager for testing
1384 https://bugs.webkit.org/show_bug.cgi?id=148593
1386 Reviewed by Jer Noble.
1388 No new tests, no functional change.
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:
1398 * platform/graphics/avfoundation/WebMediaSessionManagerMac.cpp:
1399 (WebCore::WebMediaSessionManager::platformManager): Renamed from singleton.
1400 (WebCore::WebMediaSessionManagerMac::singleton): Deleted.
1401 * platform/graphics/avfoundation/WebMediaSessionManagerMac.h:
1403 2015-08-28 Jer Noble <jer.noble@apple.com>
1405 [iOS] Add WebKit/WebKit2 settings to control automatic data loading
1406 https://bugs.webkit.org/show_bug.cgi?id=148579
1408 Reviewed by Anders Carlsson.
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.
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.
1427 2015-08-28 Yusuke Suzuki <utatane.tea@gmail.com>
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
1432 Reviewed by Filip Pizlo.
1436 Change JSFunction::create to JSNativeStdFunction::create to explicitly create the JSNativeStdFunction with the C++ lambda.
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):
1446 2015-08-28 Sukolsak Sakshuwong <sukolsak@gmail.com>
1448 Create WebAssembly functions
1449 https://bugs.webkit.org/show_bug.cgi?id=148373
1451 Reviewed by Filip Pizlo.
1453 No new tests, because it is a function rename.
1455 * testing/Internals.cpp:
1456 (WebCore::Internals::parserMetaData):
1458 2015-08-28 Jer Noble <jer.noble@apple.com>
1460 [iOS] Make the AllowsInlineMediaPlayback preference work in WebKit / WebKit2.
1461 https://bugs.webkit.org/show_bug.cgi?id=147512
1463 Reviewed by Anders Carlsson.
1465 Updated existing tests to use the Setting rather than the Behavior Restriction.
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.
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.
1489 2015-08-28 Eric Carlson <eric.carlson@apple.com>
1491 Media Session: MediaSession.releaseSession() renamed to deactivate()
1492 https://bugs.webkit.org/show_bug.cgi?id=148578
1494 Reviewed by Jer Noble.
1496 No new tests, media/session/releasing-sessions.html was updated for the change.
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:
1504 * html/HTMLMediaElement.cpp:
1505 (WebCore::HTMLMediaElement::setSession): releaseSession -> deactivate.
1507 2015-08-28 Joseph Pecoraro <pecoraro@apple.com>
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
1512 Reviewed by Timothy Hatcher.
1514 Tests: inspector/css/createStyleSheet.html
1515 inspector/css/manager-preferredInspectorStyleSheetForFrame.html
1517 * inspector/InspectorCSSAgent.h:
1518 Allow for multiple inspector style sheets per document.
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.
1526 (WebCore::InspectorCSSAgent::addRule):
1527 Lookup stylesheet to add a rule to via the provided stylesheet id.
1529 (WebCore::InspectorCSSAgent::bindStyleSheet):
1530 (WebCore::InspectorCSSAgent::detectOrigin):
1531 Update to account for a list of stylesheets per document instead of one.
1533 * inspector/InspectorStyleSheet.cpp:
1534 (WebCore::InspectorStyleSheet::addRule):
1535 (WebCore::InspectorStyleSheetForInlineStyle::setStyleText):
1537 2015-08-28 Timothy Horton <timothy_horton@apple.com>
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>
1543 Reviewed by Brady Eidson.
1545 * platform/ContextMenuItem.h:
1546 Properly mark this as Mac-only. It's only implemented in ContextMenuItemMac.
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.
1553 2015-08-28 Brady Eidson <beidson@apple.com>
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
1558 Reviewed by David Kilzer.
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
1564 2015-08-27 Myles C. Maxfield <mmaxfield@apple.com>
1566 [Cocoa] Draw fonts at their native sizes instead of scaling a 1pt font
1567 https://bugs.webkit.org/show_bug.cgi?id=146045
1569 Reviewed by Darin Adler.
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.
1576 [1] https://developer.apple.com/videos/wwdc/2015/?id=804
1578 * platform/graphics/cocoa/FontCascadeCocoa.mm:
1579 (WebCore::FontCascade::drawGlyphs):
1581 2015-08-27 Zalan Bujtas <zalan@apple.com>
1583 Tiny cleanup in RenderLayer::enclosingCompositingLayerForRepaint()
1584 https://bugs.webkit.org/show_bug.cgi?id=148541
1586 Reviewed by Tim Horton.
1588 No change in functionality.
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):
1601 2015-08-27 Commit Queue <commit-queue@webkit.org>
1603 Unreviewed, rolling out r189079.
1604 https://bugs.webkit.org/show_bug.cgi?id=148555
1606 broke the build (Requested by jessieberlin on #webkit).
1610 "Create WebAssembly functions"
1611 https://bugs.webkit.org/show_bug.cgi?id=148373
1612 http://trac.webkit.org/changeset/189079
1614 2015-08-27 Sukolsak Sakshuwong <sukolsak@gmail.com>
1616 Create WebAssembly functions
1617 https://bugs.webkit.org/show_bug.cgi?id=148373
1619 Reviewed by Geoffrey Garen.
1621 No new tests because it's a function rename.
1623 * testing/Internals.cpp:
1624 (WebCore::Internals::parserMetaData):
1626 2015-08-27 Chris Dumez <cdumez@apple.com>
1628 A WebIDL callback interface is allowed to have constants
1629 https://bugs.webkit.org/show_bug.cgi?id=148449
1631 Reviewed by Geoffrey Garen.
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].
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.
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
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:
1671 2015-08-27 Chris Dumez <cdumez@apple.com>
1673 Range.compareBoundaryPoints() should throw a NotSupportedError for invalid compareHow values
1674 https://bugs.webkit.org/show_bug.cgi?id=148483
1676 Reviewed by Geoffrey Garen.
1678 Range.compareBoundaryPoints() should throw a NotSupportedError for
1679 invalid compareHow values:
1680 https://dom.spec.whatwg.org/#dom-range-compareboundarypoints (step 1)
1682 Firefox and Chrome conform to the specification already.
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.
1689 http://w3c-test.org/dom/ranges/Range-compareBoundaryPoints.html
1691 Test: fast/dom/Range/compareBoundaryPoints-compareHow-exception.html
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.
1701 (WebCore::Range::compareBoundaryPointsForBindings):
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.
1709 2015-08-27 Joseph Pecoraro <pecoraro@apple.com>
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
1714 Reviewed by Antti Koivisto.
1716 Test: fast/css/link-media-attr.html
1718 * html/HTMLLinkElement.cpp:
1719 (WebCore::HTMLLinkElement::parseAttribute):
1720 When the media attribute changes, recalculate styles if the link is not disabled.
1722 2015-08-27 Zalan Bujtas <zalan@apple.com>
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
1728 Reviewed by Antti Koivisto.
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.
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.
1738 Test: fast/text/whitespace/simple-line-layout-tab-position.html
1740 * rendering/SimpleLineLayoutFunctions.cpp:
1741 (WebCore::SimpleLineLayout::paintFlow):
1743 2015-08-27 Alex Christensen <achristensen@webkit.org>
1745 Isolate Source directories in CMake build
1746 https://bugs.webkit.org/show_bug.cgi?id=148389
1748 Reviewed by Brent Fulgham.
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.
1759 2015-08-27 Alex Christensen <achristensen@webkit.org>
1761 [Win CMake] Fix incremental build after r188673
1762 https://bugs.webkit.org/show_bug.cgi?id=148539
1764 Reviewed by Brent Fulgham.
1767 * PlatformWin.cmake:
1768 Use xcopy as a build step instead of file(COPY ...) to copy updated headers.
1770 2015-08-27 Timothy Horton <timothy_horton@apple.com>
1772 Factor out Lookup invocation
1773 https://bugs.webkit.org/show_bug.cgi?id=148509
1775 Reviewed by Anders Carlsson.
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).
1781 * editing/DictionaryPopupInfo.h:
1782 Move DictionaryPopupInfo into WebCore. This was duplicated
1783 in both legacy and modern WebKit.
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.
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.
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.
1808 * page/mac/EventHandlerMac.mm:
1809 (WebCore::EventHandler::selectClosestWordFromHitTestResultBasedOnLookup):
1810 * testing/Internals.cpp:
1811 (WebCore::Internals::rangeForDictionaryLookupAtLocation):
1812 Adjust to the new naming.
1814 2015-08-27 Jon Davis <jond@apple.com>
1816 Add IndexedDB to the feature status page.
1817 https://bugs.webkit.org/show_bug.cgi?id=148094
1819 Reviewed by Timothy Hatcher.
1823 2015-08-27 Anders Carlsson <andersca@apple.com>
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>
1829 Reviewed by Andy Estes.
1831 Don't return early if iterations is 0.
1833 * platform/graphics/filters/FEConvolveMatrix.cpp:
1834 (WebCore::FEConvolveMatrix::platformApplySoftware):
1836 2015-08-27 Antti Koivisto <antti@apple.com>
1838 Decode redirected data URLs in web process
1839 https://bugs.webkit.org/show_bug.cgi?id=148386
1841 Reviewed by Zalan Bujtas.
1843 Redirected data URLs still end up to networking layer for decoding. Handle them locally as well.
1845 Covered by existing tests.
1847 * loader/ResourceLoader.cpp:
1848 (WebCore::ResourceLoader::~ResourceLoader):
1849 (WebCore::ResourceLoader::finishNetworkLoad):
1851 Factor to a function.
1853 (WebCore::ResourceLoader::releaseResources):
1854 (WebCore::ResourceLoader::willSendRequestInternal):
1856 When receiving redirect to a data URL end the network load and decode it locally.
1858 (WebCore::ResourceLoader::willSendRequest):
1859 * loader/ResourceLoader.h:
1861 2015-08-27 Myles C. Maxfield <mmaxfield@apple.com>
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>
1867 Reviewed by Antti Koivisto.
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.
1875 Tests: fast/text/international/generic-font-family-language-simplified.html
1876 fast/text/international/generic-font-family-language-traditional.html
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):
1890 2015-08-27 Myles C. Maxfield <mmaxfield@apple.com>
1892 Update Grid Layout to use fewer magic -1s
1893 https://bugs.webkit.org/show_bug.cgi?id=148505
1895 Reviewed by Javier Fernandez.
1897 After r188873, there were still some -1s left in Grid Layout code. This patch cleans them
1898 up after consulting with Javier Fernandez.
1900 No new tests because there is no behavior change.
1902 * rendering/RenderBox.cpp:
1903 (WebCore::RenderBox::containingBlockLogicalWidthForContent):
1904 (WebCore::RenderBox::containingBlockLogicalHeightForContent):
1905 (WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
1906 * rendering/RenderGrid.cpp:
1907 (WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):
1909 2015-08-27 Brian Burg <bburg@apple.com>
1911 Web Inspector: FrontendChannel should know its own connection type
1912 https://bugs.webkit.org/show_bug.cgi?id=148482
1914 Reviewed by Joseph Pecoraro.
1916 To prepare for multiple attached frontends, the frontend connection should
1917 be able to report its type rather than explicitly setting connection type
1920 No behavior change, no new tests.
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().
1937 2015-08-27 Eric Carlson <eric.carlson@apple.com>
1939 Media Session: MediaSession constructor 'kind' argument optional
1940 https://bugs.webkit.org/show_bug.cgi?id=148527
1942 Reviewed by Jer Noble.
1944 No new tests, updated media/session/session-creation.html.
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:
1952 * WebCore.xcodeproj/project.pbxproj: Add JSMediaSessionCustom.cpp.
1954 * bindings/js/JSMediaSessionCustom.cpp: Added.
1955 (WebCore::constructJSMediaSession):
1958 (WebCore::Document::defaultMediaSession): Call MediaSession::create.
1960 * html/HTMLMediaElement.cpp:
1961 (WebCore::HTMLMediaElement::session): Compare session with document.defaultMediaSession, not
1963 (WebCore::HTMLMediaElement::setSession): Update comments.
1965 2015-08-27 Zalan Bujtas <zalan@apple.com>
1967 Simple line layout: Use float types wherever possible to match line tree.
1968 https://bugs.webkit.org/show_bug.cgi?id=148444
1970 Reviewed by Antti Koivisto.
1972 To match inline tree output, we should try to match the data types as far as precision goes.
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.
1978 1. baseline position does not include logical left anymore.
1979 2. Run::rect().x() does not round the logical left coordinate anymore.
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):
1999 2015-08-27 Zalan Bujtas <zalan@apple.com>
2001 Subpixel positioned iframe's repaint area calculation problem.
2002 https://bugs.webkit.org/show_bug.cgi?id=148422
2004 When the repaint rect position is floored for iframes, we need
2005 to expand the size so that it still covers the content.
2007 Reviewed by Simon Fraser.
2009 Test: fast/repaint/content-inside-subpixel-positioned-iframe.html
2011 * rendering/RenderBox.cpp:
2012 (WebCore::RenderBox::computeRectForRepaint):
2014 2015-08-27 Enrica Casucci <enrica@apple.com>
2016 Add some new emoji with modifiers and new sequence.
2017 https://bugs.webkit.org/show_bug.cgi?id=148202
2018 rdar://problem/21849857
2020 Reviewed by Sam Weinig.
2022 Adding support for some new emoji with modifiers and
2023 one new emoji sequence.
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):
2033 2015-08-27 Dean Jackson <dino@apple.com>
2035 Initial infrastructure of media controls testing
2036 https://bugs.webkit.org/show_bug.cgi?id=148426
2037 <rdar://problem/22417286>
2039 Reviewed by Eric Carlson.
2041 Expose a JS API from Internals that allows a layout test
2042 to ask the controls instance what it thinks it is
2045 Test: media/controls/basic.html
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:
2060 2015-08-27 Gyuyoung Kim <gyuyoung.kim@webkit.org>
2062 [EFL] Move RenderThemeEfl.cpp|h from WebCore/platform/efl to WebCore/rendering
2063 https://bugs.webkit.org/show_bug.cgi?id=148511
2065 Reviewed by Csaba Osztrogonác.
2067 To be aligned with other ports, move RenderThemeEfl.cpp|h to WebCore/rendering.
2069 Additionally this patch fixes style errors in RenderThemeEfl.cpp
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.
2151 2015-08-26 Mark Lam <mark.lam@apple.com>
2153 watchdog m_didFire state erroneously retained.
2154 https://bugs.webkit.org/show_bug.cgi?id=131082
2156 Reviewed by Geoffrey Garen.
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
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
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:
2174 2015-08-26 Myles C. Maxfield <mmaxfield@apple.com>
2176 [Cocoa] PerformanceTest Layout/RegionsShapes.html is failing
2177 https://bugs.webkit.org/show_bug.cgi?id=148464
2179 Reviewed by Andy Estes.
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
2187 No new tests because there is no behavior change.
2189 * platform/graphics/cocoa/FontCacheCoreText.cpp:
2190 (WebCore::autoActivateFont):
2191 (WebCore::FontCache::createFontPlatformData):
2193 2015-08-26 Joseph Pecoraro <pecoraro@apple.com>
2195 Web Inspector: Implement tracking of active stylesheets in the frontend
2196 https://bugs.webkit.org/show_bug.cgi?id=105828
2198 Reviewed by Timothy Hatcher.
2200 Tests: inspector/css/stylesheet-events-basic.html
2201 inspector/css/stylesheet-events-imports.html
2202 inspector/css/stylesheet-events-inspector-stylesheet.html
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.
2213 (WebCore::Document::prepareForDestruction):
2214 Inform the inspector so the CSSAgent can remove document related data.
2216 * dom/DocumentStyleSheetCollection.h:
2217 * dom/DocumentStyleSheetCollection.cpp:
2218 (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
2219 Inform the inspector so the CSSAgent can push stylesheet related events.
2221 (WebCore::DocumentStyleSheetCollection::activeStyleSheetsForInspector): Added.
2222 CSSStyleSheets for the inspector include non-disabled author stylesheets
2223 even if they are empty.
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.
2231 (WebCore::InspectorCSSAgent::enable):
2232 When the CSS domain is enabled, tell the frontend about known stylesheets.
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.
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.
2245 (WebCore::InspectorCSSAgent::getAllStyleSheets):
2246 Use the new methods, this command should go away as it will no longer be useful.
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.
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.
2260 2015-08-26 Myles C. Maxfield <mmaxfield@apple.com>
2262 Add comment to LocaleToScriptMappingDefault.cpp
2263 <rdar://problem/22407296>
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.
2271 * platform/text/LocaleToScriptMappingDefault.cpp:
2273 2015-08-26 Chris Dumez <cdumez@apple.com>
2275 Distinguish Web IDL callback interfaces from Web IDL callback functions
2276 https://bugs.webkit.org/show_bug.cgi?id=148434
2278 Reviewed by Geoffrey Garen.
2280 Distinguish Web IDL callback interfaces [1] from Web IDL callback
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
2287 https://heycam.github.io/webidl/#es-user-objects
2289 When using a callback function, the user needs to pass a function /
2291 https://heycam.github.io/webidl/#es-callback-function
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.
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.
2305 This patch adds Callback=FunctionOnly] IDL extended attribute to all
2306 our pre-existing callback interfaces so that there is no behavior
2309 [1] https://heycam.github.io/webidl/#dfn-callback-interface
2310 [2] https://heycam.github.io/webidl/#idl-callback-functions
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:
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.
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:]):
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:
2418 2015-08-26 Beth Dakin <bdakin@apple.com>
2420 REGRESSION: Safari navigates after a cancelled force click
2421 https://bugs.webkit.org/show_bug.cgi?id=148491
2423 rdar://problem/22394323
2425 Reviewed by Tim Horton.
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.
2432 Don’t perform default behaviors when the stage is ActionCancelledAfterUpdate.
2433 * page/EventHandler.cpp:
2434 (WebCore::EventHandler::handleMouseReleaseEvent):
2436 New possible stages, and new getter for the current stage.
2437 * page/EventHandler.h:
2438 (WebCore::EventHandler::immediateActionStage):
2440 2015-08-26 Anders Carlsson <andersca@apple.com>
2444 Add fallback code for the case when iterations is 0.
2446 * platform/graphics/filters/FEConvolveMatrix.cpp:
2447 (WebCore::FEConvolveMatrix::platformApplySoftware):
2449 2015-08-26 Anders Carlsson <andersca@apple.com>
2451 Use WorkQueue::concurrentApply in FEConvolveMatrix
2452 https://bugs.webkit.org/show_bug.cgi?id=148490
2454 Reviewed by Tim Horton.
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).
2461 * platform/graphics/filters/FEConvolveMatrix.cpp:
2462 (WebCore::FEConvolveMatrix::platformApplySoftware):
2463 (WebCore::FEConvolveMatrix::setInteriorPixelsWorker): Deleted.
2464 * platform/graphics/filters/FEConvolveMatrix.h:
2466 2015-08-26 Eric Carlson <eric.carlson@apple.com>
2468 Media Session: make MediaSessionMetadata a class
2469 https://bugs.webkit.org/show_bug.cgi?id=148486
2471 Reviewed by Jer Noble.
2473 No new tests, no observable changes.
2475 * Modules/mediasession/MediaSessionMetadata.h: Make it a class.
2476 * page/ChromeClient.h: struct MediaSessionMetadata -> class MediaSessionMetadata.
2478 2015-08-26 Per Arne Vollan <peavo@outlook.com>
2480 [Curl] Deadlock when downloading.
2481 https://bugs.webkit.org/show_bug.cgi?id=148438
2483 Reviewed by Alex Christensen.
2485 A thread should not try locking when it already has got the lock,
2486 this will create a deadlock.
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):
2500 2015-08-26 Jinyoung Hur <hur.ims@navercorp.com>
2502 [Cairo] Accelerated canvas should fall back to non-accelerated canvas on creation failure
2503 https://bugs.webkit.org/show_bug.cgi?id=148476
2505 Reviewed by Brent Fulgham.
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.
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.
2515 Test: fast/canvas/canvas-large-dimensions.html
2517 * platform/graphics/cairo/ImageBufferCairo.cpp:
2518 (WebCore::ImageBuffer::ImageBuffer):
2520 2015-08-26 Commit Queue <commit-queue@webkit.org>
2522 Unreviewed, rolling out r188960.
2523 https://bugs.webkit.org/show_bug.cgi?id=148479
2525 Broke all the tests (Requested by ap on #webkit).
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
2533 2015-08-25 Philippe Normand <pnormand@igalia.com>
2535 [GStreamer] "method" property for the webkitwebsrc element
2536 https://bugs.webkit.org/show_bug.cgi?id=148433
2538 Reviewed by Carlos Garcia Campos.
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.
2544 * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
2545 (webKitWebSrcSetProperty):
2546 (webKitWebSrcGetProperty):
2547 (webKitWebSrcStart):
2549 2015-08-26 Enrica Casucci <enrica@apple.com>
2551 Add some new emoji with modifiers and new sequence.
2552 https://bugs.webkit.org/show_bug.cgi?id=148202
2553 rdar://problem/21849857
2555 Reviewed by Sam Weinig.
2557 Adding support for some new emoji with modifiers and
2558 one new emoji sequence.
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):
2568 2015-08-25 Nan Wang <n_wang@apple.com>
2570 AX: Enable accessibility/aria-controls.html test for mac
2571 https://bugs.webkit.org/show_bug.cgi?id=148458
2573 Reviewed by Chris Fleizach.
2575 Re-enabled accessibility/aria-controls.html test for mac.
2577 * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2578 (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2580 2015-08-25 Zalan Bujtas <zalan@apple.com>
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
2586 Reviewed by Daniel Bates.
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.
2592 Test: fast/filter-image/background-filter-image.html
2594 * css/CSSFilterImageValue.cpp:
2595 (WebCore::CSSFilterImageValue::image):
2597 2015-08-25 Carlos Garcia Campos <cgarcia@igalia.com>
2599 IconDatabase: syncThreadMainLoop() is unlocking m_syncLock twice when thread termination is requested
2600 https://bugs.webkit.org/show_bug.cgi?id=148429
2602 Reviewed by Filip Pizlo.
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.
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
2617 2015-08-25 Nan Wang <n_wang@apple.com>
2619 [Mac] accessibility/document-attributes.html fails
2620 https://bugs.webkit.org/show_bug.cgi?id=116636
2622 Reviewed by Chris Fleizach.
2624 Re-enabled accessibility/document-attributes.html test.
2626 * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2627 (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2629 2015-08-25 Csaba Osztrogonác <ossy@webkit.org>
2631 Fix the !ENABLE(VIDEO) build after r188693
2632 https://bugs.webkit.org/show_bug.cgi?id=148424
2634 Reviewed by Tim Horton.
2636 * page/ChromeClient.h:
2638 2015-08-25 Eric Carlson <eric.carlson@apple.com>
2640 [iOS] Don't clear AVPlayerItem when pausing if AirPlay is active
2641 https://bugs.webkit.org/show_bug.cgi?id=148319
2643 Reviewed by Jer Noble.
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.
2649 * platform/audio/ios/MediaSessionManagerIOS.mm:
2650 (WebCore::MediaSessionManageriOS::sessionCanLoadMedia): Call base class.
2652 2015-08-25 Csaba Osztrogonác <ossy@webkit.org>
2654 Fix the !ENABLE(CSS_REGIONS) build after r188663
2655 https://bugs.webkit.org/show_bug.cgi?id=148425
2657 Reviewed by Chris Dumez.
2659 * bindings/js/JSDOMNamedFlowCollectionCustom.cpp:
2661 2015-08-24 Brent Fulgham <bfulgham@apple.com>
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>
2667 Reviewed by David Hyatt.
2669 Tested by tiled-drawing/scrolling/latched-to-deleted-node.html
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.
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.
2684 2015-08-25 Wenson Hsieh <wenson_hsieh@apple.com>
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>
2690 Reviewed by Brent Fulgham.
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.
2696 Test: fast/forms/search/search-results-hidden-crash.html
2698 * html/shadow/TextControlInnerElements.cpp:
2699 (WebCore::SearchFieldResultsButtonElement::defaultEventHandler): Add a null check for the search field's renderer.
2701 2015-08-25 Chris Dumez <cdumez@apple.com>
2703 compareDocumentPosition() should report PRECEDING or FOLLOWING information even if nodes are disconnected
2704 https://bugs.webkit.org/show_bug.cgi?id=119316
2706 Reviewed by Darin Adler.
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
2712 This behavior is consistent with both IE10, Firefox and Chrome.
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
2720 Test: fast/dom/compare-document-position-disconnected-nodes.html
2721 W3C Test suite: http://w3c-test.org/dom/nodes/Node-compareDocumentPosition.html
2724 (WebCore::hashPointer):
2725 (WebCore::compareDetachedElementsPosition):
2726 (WebCore::Node::compareDocumentPosition):
2728 2015-08-25 Chris Dumez <cdumez@apple.com>
2730 Add support for callback interfaces using other callback names than "handleEvent"
2731 https://bugs.webkit.org/show_bug.cgi?id=148418
2733 Reviewed by Ryosuke Niwa.
2735 Add support for callback interfaces using other callback names than
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
2742 [1] https://heycam.github.io/webidl/#es-user-objects
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):
2759 2015-08-25 Chris Dumez <cdumez@apple.com>
2761 Get rid of custom bindings for RequestAnimationFrameCallback.handleEvent()
2762 https://bugs.webkit.org/show_bug.cgi?id=148417
2764 Reviewed by Sam Weinig.
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.
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:
2784 2015-08-24 Jinyoung Hur <hur.ims@navercorp.com>
2786 Clear cairo-gl surface for initialization
2787 https://bugs.webkit.org/show_bug.cgi?id=148307
2789 Reviewed by Martin Robinson.
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.
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.
2799 * platform/graphics/cairo/ImageBufferCairo.cpp:
2800 (WebCore::clearSurface):
2801 (WebCore::createCairoGLSurface):
2803 2015-08-24 Myles C. Maxfield <mmaxfield@apple.com>
2805 Fix the build fixes in r188875 and r188874
2809 * platform/graphics/cocoa/FontCacheCoreText.cpp:
2810 (WebCore::FontCache::createFontPlatformData):
2811 * platform/graphics/mac/FontCacheMac.mm:
2812 (WebCore::toNSFontTraits):
2814 2015-08-24 Tim Horton <timothy_horton@apple.com>
2816 Try to fix the build.
2818 * platform/graphics/cocoa/FontCacheCoreText.cpp:
2819 (WebCore::FontCache::createFontPlatformData):
2821 2015-08-24 Tim Horton <timothy_horton@apple.com>
2825 * platform/graphics/mac/FontCacheMac.mm:
2826 (WebCore::toNSFontWeight):
2827 (WebCore::toNSFontTraits):
2828 (WebCore::platformFontWithFamilySpecialCase):
2830 2015-08-24 Myles C. Maxfield <mmaxfield@apple.com>
2832 Use Optionals in RenderBox height computations
2833 https://bugs.webkit.org/show_bug.cgi?id=147253
2835 Reviewed by David Hyatt.
2837 No new tests because there is no behavior change.
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):
2883 2015-08-24 Anders Carlsson <andersca@apple.com>
2887 It's OK to call runStateMachine with an idle state. Just bail early when that happens.
2889 * Modules/webdatabase/SQLTransactionStateMachine.h:
2890 (WebCore::SQLTransactionStateMachine<T>::runStateMachine):
2892 2015-08-24 Myles C. Maxfield <mmaxfield@apple.com>
2894 [Cocoa] Unify FontCache
2895 https://bugs.webkit.org/show_bug.cgi?id=148358
2897 Reviewed by Antti Koivisto.
2899 Move all the duplicate code to FontCacheCoreText.
2901 No new tests because there is no behavior change.
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.
2968 2015-08-24 Wenson Hsieh <wenson_hsieh@apple.com>
2970 Unreviewed, attempt to fix iOS build after r188860
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.
2979 2015-08-21 Anders Carlsson <andersca@apple.com>
2981 Remove unused return values from SQLTransaction state functions
2982 https://bugs.webkit.org/show_bug.cgi?id=148344
2984 Reviewed by Tim Horton.
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):
3005 2015-08-24 Wenson Hsieh <wenson_hsieh@apple.com>
3007 Unreviewed, fix build after r188860
3009 * page/mac/WheelEventDeltaFilterMac.mm:
3010 (WebCore::WheelEventDeltaFilterMac::updateFromDelta): Convert argument explicitly to an NSPoint.
3012 2015-08-24 Wenson Hsieh <wenson_hsieh@apple.com>
3014 Use _NSScrollingPredominantAxisFilter for wheel event filtering on Mac
3015 https://bugs.webkit.org/show_bug.cgi?id=147320
3017 Reviewed by Simon Fraser.
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.
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.
3028 This patch also introduces NSScrollingInputFilterSPI.h, which either imports the internal input filter
3029 header from AppKit or declares relevant interfaces and functions.
3031 No new tests, since this change does not add new functionality.
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.
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.
3077 2015-08-24 Michael Catanzaro <mcatanzaro@igalia.com>
3079 Unreviewed, fix typo in a comment ("unsused" -> "unused")
3081 * bindings/scripts/CodeGeneratorGObject.pm:
3084 2015-08-24 Carlos Garcia Campos <cgarcia@igalia.com>
3086 Unreviewed. Fix cairo performance regression introduced in r188379.
3088 A missing break in a switch was making us to use High image
3089 interpolation quality by default.
3091 * platform/graphics/cairo/PlatformContextCairo.cpp:
3092 (WebCore::PlatformContextCairo::drawSurfaceToContext): Add the
3095 2015-08-24 Carlos Garcia Campos <cgarcia@igalia.com>
3097 Unreviewed. Fix GObject DOM bindings API break test after r188809.
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.
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):
3114 2015-08-24 Carlos Garcia Campos <cgarcia@igalia.com>
3116 Unreviewed. Fix GObject DOM bindings API break test after r188735.
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.
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.
3132 2015-08-24 Carlos Garcia Campos <cgarcia@igalia.com>
3134 Unreviewed. Fix GTK+ build after r188711.
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
3141 * bindings/scripts/CodeGeneratorGObject.pm:
3142 (FunctionUsedToRaiseException):
3145 2015-08-24 Carlos Garcia Campos <cgarcia@igalia.com>
3147 Unreviewed. Fix GTK+ build after r188809.
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.
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().
3167 2015-08-24 Myles C. Maxfield <mmaxfield@apple.com>
3169 @font-face related cleanup
3170 https://bugs.webkit.org/show_bug.cgi?id=148355
3172 Reviewed by Darin Adler.
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
3180 No new tests because there is no behavior change.
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
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
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.
3216 2015-08-23 Andy Estes <aestes@apple.com>
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
3222 Reviewed by Dan Bernstein.
3224 Passed the ResourceLoader request URL to dispatchDidReceiveServerRedirectForProvisionalLoad().
3226 New API test: ContentFiltering.ServerRedirect
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.
3240 2015-08-23 Geoffrey Garen <ggaren@apple.com>
3242 Unreviewed, rolling back in r188803.
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
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):
3258 2015-08-23 Antti Koivisto <antti@apple.com>
3260 Remove SVGFrameLoaderClient and dataProtocolFrameLoader
3261 https://bugs.webkit.org/show_bug.cgi?id=148370
3263 Reviewed by Darin Adler.
3265 With data protocol handled internally in WebKit these are no longer needed.
3267 This mostly reverts code changes from http://trac.webkit.org/179626 keeping the tests.
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:
3284 2015-08-22 Chris Dumez <cdumez@apple.com>
3286 NodeList should not have a named getter
3287 https://bugs.webkit.org/show_bug.cgi?id=148117
3289 Reviewed by Darin Adler.
3291 Drop the named property getter on NodeList to match the specification:
3292 https://dom.spec.whatwg.org/#interface-nodelist
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.
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:
3315 * dom/StaticNodeList.cpp:
3316 (WebCore::StaticElementList::length): Deleted.
3317 (WebCore::StaticElementList::item): Deleted.
3318 * dom/StaticNodeList.h:
3319 * html/HTMLCollection.h:
3321 2015-08-22 Andreas Kling <akling@apple.com>
3323 [JSC] Static hash tables should be 100% compile-time constant.
3324 <https://webkit.org/b/148359>
3326 Reviewed by Michael Saboff.
3328 Adjust WebCore bindings generator for new JSC::HashTable layout
3329 and rebaseline the bindings tests for that change.
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:
3342 2015-08-22 Michael Catanzaro <mcatanzaro@igalia.com>
3344 Unreviewed, fix build without ENABLE_CSS_GRID_LAYOUT after r188582
3346 * rendering/RenderBox.cpp:
3347 (WebCore::RenderBox::computeLogicalWidthInRegion):
3349 2015-08-22 Zalan Bujtas <zalan@apple.com>
3351 Page::renderTreeSize() does not include anonymous renderers.
3352 https://bugs.webkit.org/show_bug.cgi?id=148352
3354 Reviewed by Andreas Kling.
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.
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.
3367 2015-08-22 Antti Koivisto <antti@apple.com>
3369 Decode data URLs in web process
3370 https://bugs.webkit.org/show_bug.cgi?id=148128
3372 Reviewed by Darin Adler.
3374 We currenly send data URLs to networking layer for decoding. This involves a long and slow roundtrip through IPC and API layers.
3376 * WebCore.xcodeproj/project.pbxproj:
3377 * loader/ResourceLoadScheduler.cpp:
3378 (WebCore::ResourceLoadScheduler::maybeLoadQuickLookResource): Deleted.
3380 Remove this awkward interface for WebKit2.
3382 * loader/ResourceLoadScheduler.h:
3383 * loader/ResourceLoader.cpp:
3384 (WebCore::ResourceLoader::start):
3385 (WebCore::ResourceLoader::loadDataURL):
3387 Load using DataURLDecoder.
3389 * loader/ResourceLoader.h:
3391 Make start() public and export it so it can be called directly from WebKit2.
3393 * platform/network/DataURLDecoder.cpp: Added.
3394 (WebCore::DataURLDecoder::decodeQueue):
3395 (WebCore::DataURLDecoder::DecodeTask::DecodeTask):
3396 (WebCore::DataURLDecoder::createDecodeTask):
3398 Parse data URL metadata and initialize the decode task.
3400 (WebCore::DataURLDecoder::decodeBase64):
3401 (WebCore::DataURLDecoder::decodeEscaped):
3402 (WebCore::DataURLDecoder::decode):
3404 Asynchronously decode in a concurrent distpatch queue.
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):
3412 Factor buffer generation to a function.
3414 (WebCore::decodeEscapeSequences):
3415 (WebCore::decodeURLEscapeSequencesAsData):
3417 Add decode function that produces bytes instead of a String.
3419 2015-08-21 Commit Queue <commit-queue@webkit.org>
3421 Unreviewed, rolling out r188792 and r188803.
3422 https://bugs.webkit.org/show_bug.cgi?id=148347
3424 broke lots of tests, ggaren is going to investigate and reland
3425 (Requested by thorton on #webkit).
3427 Reverted changesets: