1 2014-05-20 Eric Carlson <eric.carlson@apple.com>
3 [Mac] do not deactivate an audio session that has running I/O
4 https://bugs.webkit.org/show_bug.cgi?id=133127
9 (WebCore::Settings::setShouldManageAudioSessionCategory): Renamed from setShouldManageAudioSession.
10 (WebCore::Settings::shouldManageAudioSessionCategory): Renamed from shouldManageAudioSession.
11 (WebCore::Settings::setShouldManageAudioSession): Deleted.
12 (WebCore::Settings::shouldManageAudioSession): Deleted.
14 * platform/audio/mac/MediaSessionManagerMac.cpp:
15 (MediaSessionManager::updateSessionState): Don't deactivate the session if there are any
16 Video or Audio sessions.
18 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
19 (WebCore::MediaPlayerPrivateAVFoundationObjC::assetStatus): Drive-by change to log errors
20 returned by -statusOfValueForKey:error: in debug builds.
22 2014-05-20 Beth Dakin <bdakin@apple.com>
24 REGRESSION: All non-mainframe scrollbars don't paint after r169065
25 https://bugs.webkit.org/show_bug.cgi?id=133132
27 <rdar://problem/16968850>
29 Reviewed by Geoff Garen.
31 We should not universally return true here. This feature will only work for
32 scrollbars with layers.
33 * platform/ScrollableArea.h:
34 * platform/Scrollbar.cpp:
35 (WebCore::Scrollbar::supportsUpdateOnSecondaryThread):
37 2014-05-20 Daniel Bates <dabates@apple.com>
39 Element within flattened frame may update its scroll state during the layout phase of the wrong RenderView
40 https://bugs.webkit.org/show_bug.cgi?id=133013
41 <rdar://problem/16760154>
43 Reviewed by David Hyatt.
45 Fixes an issue where the scroll state of an element may be updated during the layout of the wrong
46 RenderView. In particular, the scroll state of an element inside a CSS flex box in a flattened
47 frame f is updated during the layout of the RenderView associated with the parent frame of f instead
48 of during the layout of the RenderView associated with f.
50 The layout machinery assumes that the scroll state of each scrollable element is updated before the
51 completion of layout for its associated RenderView. Currently we have logic to defer updating the scroll
52 state of a scrollable element until completion of recursive layout. For a page with a flattened frame, we
53 defer such updates until completion of layout for all RenderViews along the ancestor frame hierarchy of
54 each flattened frame regardless of the RenderView associated with the element that originated the
55 deferred scroll state request. Instead, only the RenderView associated with the element that deferred its
56 scroll state update should dispatch the scroll state update.
58 Tests: fast/frames/flattening/scrollable-flexbox-inside-iframe-with-zero-height-and-needs-full-repaint-crash.html
59 fast/frames/flattening/scrollable-flexbox-inside-iframe-with-zero-height-assertion-failure.html
61 * rendering/RenderBlock.cpp: Removed WTF::-prefix in typedef definition for ContinuationOutlineTableMap.
62 (WebCore::UpdateScrollInfoAfterLayoutTransaction::UpdateScrollInfoAfterLayoutTransaction): Added; a struct
63 that represents a RenderView v, nested transaction count, and a list of RenderBlocks in v that will need
64 to have their scroll state updated.
65 (WebCore::updateScrollInfoAfterLayoutTransactionStack): Added; returns the global stack of transactions.
66 (WebCore::RenderBlock::willBeDestroyed): Call removeFromUpdateScrollInfoAfterLayoutTransaction(), which
67 was formerly named as removeFromDelayedUpdateScrollInfoSet.
68 (WebCore::currentUpdateScrollInfoAfterLayoutTransaction): Added; returns the top-most transaction in the
70 (WebCore::RenderBlock::beginUpdateScrollInfoAfterLayoutTransaction): Modified as appropriate to make use
71 of the global stack of transactions; formerly named startDelayUpdateScrollInfo.
72 (WebCore::RenderBlock::endAndCommitUpdateScrollInfoAfterLayoutTransaction): Modified as appropriate to
73 make use of the global stack of transactions; formerly named finishDelayUpdateScrollInfo.
74 (WebCore::RenderBlock::removeFromUpdateScrollInfoAfterLayoutTransaction): Modified as appropriate to make
75 use of the global stack of transactions; formerly named removeFromDelayedUpdateScrollInfoSet.
76 (WebCore::RenderBlock::updateScrollInfoAfterLayout): Modified as appropriate to make use of the global
77 stack of transactions.
78 (WebCore::RenderBlock::layout): Ditto.
79 (WebCore::RenderBlock::startDelayUpdateScrollInfo): Deleted.
80 (WebCore::RenderBlock::finishDelayUpdateScrollInfo): Deleted.
81 (WebCore::RenderBlock::removeFromDelayedUpdateScrollInfoSet): Deleted.
82 * rendering/RenderBlock.h:
83 * rendering/RenderBlockFlow.cpp:
84 (WebCore::RenderBlockFlow::willBeDestroyed): Call removeFromUpdateScrollInfoAfterLayoutTransaction(), which
85 was formerly named removeFromDelayedUpdateScrollInfoSet.
86 * rendering/RenderDeprecatedFlexibleBox.cpp:
87 (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox): Call {begin, end}UpdateScrollInfoAfterLayoutTransaction(),
88 which was formerly named {start, end}DelayUpdateScrollInfo.
89 (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox): Ditto.
90 * rendering/RenderFlexibleBox.cpp:
91 (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
93 2014-05-20 Beth Dakin <bdakin@apple.com>
95 REGRESSION (r169065): Mountain Lion run-api-tests failures: ASSERTION FAILED:
96 Uncaught exception - -[NSRegularLegacyScrollerImp setPresentationValue:]:
97 unrecognized selector sent to instance 0x7ff51aa38000
98 https://bugs.webkit.org/show_bug.cgi?id=133121
100 Reviewed by Tim Horton.
102 * platform/mac/ScrollbarThemeMac.mm:
103 (WebCore::ScrollbarThemeMac::setPaintCharacteristicsForScrollbar):
105 2014-05-19 Simon Fraser <simon.fraser@apple.com>
107 REGRESSION (r169063) Fixed and sticky nodes misplaced on scrolling sometimes
108 https://bugs.webkit.org/show_bug.cgi?id=133106
109 <rdar://problem/16967648>
111 Reviewed by Sam Weinig.
113 Fix regression from r169063. That commit removed scrolledContentsLayers from
114 frame scrolling nodes, but they do actually use them.
116 So put them back; not in the base class, because they have a somewhat different
117 meaning for overflow scrolling and frame scrolling.
120 * page/scrolling/AsyncScrollingCoordinator.cpp:
121 (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
122 (WebCore::AsyncScrollingCoordinator::updateFrameScrollingNode):
123 * page/scrolling/AsyncScrollingCoordinator.h:
124 * page/scrolling/ScrollingCoordinator.h:
125 (WebCore::ScrollingCoordinator::updateFrameScrollingNode):
126 * page/scrolling/ScrollingStateFrameScrollingNode.cpp:
127 (WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
128 (WebCore::ScrollingStateFrameScrollingNode::setScrolledContentsLayer):
129 * page/scrolling/ScrollingStateFrameScrollingNode.h:
130 * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
131 (WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
132 * rendering/RenderLayerCompositor.cpp:
133 (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
135 2014-05-20 Radu Stavila <stavila@adobe.com>
137 REGRESSION: [CSS Regions] Content flowed directly into the flow thread that ends up in the second region is not properly repainted
138 https://bugs.webkit.org/show_bug.cgi?id=133111
140 Reviewed by David Hyatt.
142 When computing the repaint rect of an element flowed into a flow thread, if the element is flowed directly into
143 the flow thread (meaning its containing block is the flow thread itself), the region's position within the flow
144 must no longer be taken into consideration, because its already included in the element's |topLeft|.
146 Test: fast/regions/hover-element-flowed-second-region.html
148 * rendering/RenderBox.cpp:
149 (WebCore::RenderBox::computeRectForRepaint):
151 2014-05-20 Alex Christensen <achristensen@webkit.org>
153 Fix web timing assertion failure.
154 https://bugs.webkit.org/show_bug.cgi?id=133094
155 <rdar://problem/16966032>
157 Reviewed by Alexey Proskuryakov.
159 * platform/network/mac/ResourceHandleMac.mm:
160 (WebCore::ResourceHandle::getConnectionTimingData):
161 Set requestStart and responseStart to 0 instead of -1 to match the
162 ResourceLoadTiming constructor and prevent the assertion failure in
163 PerformanceTiming::responseStart.
165 2014-05-20 Prashant Hiremath <hiremathprashants@gmail.com>
167 Only set title on SVG documents
168 https://bugs.webkit.org/show_bug.cgi?id=133068
170 Reviewed by Dirk Schulze.
172 Test: svg/custom/html_document_set_title.html
174 * svg/SVGTitleElement.cpp:
175 (WebCore::SVGTitleElement::insertedInto):
176 (WebCore::SVGTitleElement::removedFrom):
177 (WebCore::SVGTitleElement::childrenChanged):
179 2014-05-20 peavo@outlook.com <peavo@outlook.com>
181 [Curl] Invalid content in cache file, causes broken rendering.
182 https://bugs.webkit.org/show_bug.cgi?id=133069
184 Reviewed by Brent Fulgham.
186 When data for a url is received as multiple parts, the cache file for the url is truncated when opened for writing,
187 and will only contain the last part of data received.
188 This is fixed by only opening the file once, and close it after all data has been received.
190 * platform/network/curl/CurlCacheEntry.cpp:
191 (WebCore::CurlCacheEntry::CurlCacheEntry): Initialize cache file handle member.
192 (WebCore::CurlCacheEntry::~CurlCacheEntry): Close cache file.
193 (WebCore::CurlCacheEntry::saveCachedData): Only open cache file once to avoid truncating.
194 (WebCore::CurlCacheEntry::didFail): Close cache file.
195 (WebCore::CurlCacheEntry::didFinishLoading): Ditto.
196 (WebCore::CurlCacheEntry::openContentFile): Added method to open cache file.
197 (WebCore::CurlCacheEntry::closeContentFile): Added method to close cache file.
198 * platform/network/curl/CurlCacheEntry.h: Added file handle member, and methods to open and close cache file.
200 2014-05-20 Radu Stavila <stavila@adobe.com>
202 [CSS Regions] Block incorrectly sized when containing an unsplittable box
203 https://bugs.webkit.org/show_bug.cgi?id=132601
205 Reviewed by Antti Koivisto.
207 When laying out elements in a region, when an inline element is encountered
208 the size of its parent must not be increased beyond the bottom of the current region,
209 unless if its the last region. This will ensure that the next sibling of the
210 inline element is correctly laid out at the top of the next region, instead
211 of leaving an empty space equal to the height of the overflow, as it did until now.
213 Tests: fast/regions/inline-block-inside-anonymous-overflow.html
214 fast/regions/inline-block-overflow.html
216 * rendering/RenderBlockFlow.cpp:
217 (WebCore::RenderBlockFlow::adjustLinePositionForPagination):
218 (WebCore::RenderBlockFlow::hasNextPage):
219 * rendering/RenderBlockFlow.h:
220 * rendering/RenderBlockLineLayout.cpp:
221 (WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
222 (WebCore::RenderBlockFlow::linkToEndLineIfNeeded):
223 (WebCore::RenderBlockFlow::determineStartPosition):
224 (WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine):
226 2014-05-20 Mihnea Ovidenie <mihnea@adobe.com>
228 [CSS Regions] Crash while painting block selection gaps in regions
229 https://bugs.webkit.org/show_bug.cgi?id=132720
231 Reviewed by David Hyatt.
233 The fix for WebKit bug https://bugs.webkit.org/show_bug.cgi?id=131511
234 allowed selection highlight to match the DOM selection when the start
235 and end point of the selection were in different flow threads. In order
236 to enable that, the selection was performed separately on view and
237 render flow threads, considered selection subtrees.
239 However, the start and end points for each selection subtree were computed
240 by means of Range class but it is not always possible to construct a valid
241 Range from two pairs of RenderObjects and offsets.
243 This patch keeps the substrees approach but instead of storing the endpoints
244 for each subtree in a Range and continuously extending the Range, it stores them
245 using the already available SelectionSubtreeRoot class. After the end points are
246 computed for each subtree and before processing the subtree selection, the end points
247 are adjusted in a similar fashion as the one used in FrameSelection::updateAppearance(),
248 to make sure we are passing the same expected information to the method implementing
249 the visible selection processing.
251 Test: fast/regions/selection-gaps-paint-crash.html
253 * rendering/RenderView.cpp:
254 (WebCore::RenderView::splitSelectionBetweenSubtrees):
255 * rendering/SelectionSubtreeRoot.cpp:
256 (WebCore::SelectionSubtreeRoot::adjustForVisibleSelection):
257 * rendering/SelectionSubtreeRoot.h:
258 (WebCore::SelectionSubtreeRoot::selectionClear):
260 2014-05-19 Simon Fraser <simon.fraser@apple.com>
262 Scrolling pages with large TiledBacking content layers creates way too many tiles
263 https://bugs.webkit.org/show_bug.cgi?id=133101
265 Reviewed by Tim Horton.
267 Fix the GraphicsLayerCA::adjustTiledLayerVisibleRect() logic to avoid making giant rects if the old
268 and new visible rects don't overlap.
270 * platform/graphics/TiledBacking.h:
271 * platform/graphics/ca/GraphicsLayerCA.cpp:
272 (WebCore::GraphicsLayerCA::adjustTiledLayerVisibleRect):
273 * platform/graphics/ca/mac/TileController.h:
275 2014-05-19 Simon Fraser <simon.fraser@apple.com>
277 Correctly maintain the "isInWindow" state for all TiledBackings
278 https://bugs.webkit.org/show_bug.cgi?id=133095
280 Reviewed by Tim Horton.
282 We never updated the "isInWindow" state for TiledBacking that wasn't the RenderView's
283 backing. Fix it by having RenderLayerCompositor::setIsInWindow() recurse through all
284 layers (if necessary), updating their state. Also set the state on newly created
287 * rendering/RenderLayerCompositor.cpp:
288 (WebCore::RenderLayerCompositor::layerTiledBackingUsageChanged):
289 (WebCore::RenderLayerCompositor::setIsInWindowForLayerIncludingDescendants):
290 (WebCore::RenderLayerCompositor::setIsInWindow):
291 (WebCore::RenderLayerCompositor::pageTiledBacking): Deleted.
292 * rendering/RenderLayerCompositor.h:
294 2014-05-19 Dean Jackson <dino@apple.com>
296 [iOS] Use status display for live streams
297 https://bugs.webkit.org/show_bug.cgi?id=133097
299 Reviewed by Sam Weinig.
301 Follow-on from https://bugs.webkit.org/show_bug.cgi?id=131390
302 Allow the iOS controls to use the status display field.
304 * Modules/mediacontrols/mediaControlsiOS.js:
305 (ControllerIOS.prototype.configureInlineControls): Live streams should
306 not have a timeline or rewind button.
308 2014-05-19 Myles C. Maxfield <litherum@gmail.com>
310 Text decorations do not contribute to visual overflow
311 https://bugs.webkit.org/show_bug.cgi?id=132773
313 Reviewed by Antti Koivisto.
315 This patch creates a function, visualOverflowForDecorations, which computes
316 how much visual overflow to add around a text box due to text decorations. Most of the time,
317 text decorations are fully contained within the text box, so the result is usually 0.
319 This function exists within style/InlineTextBoxStyle.cpp, which is an added file. This is
320 so that it can be called from setLogicalWidthForTextRun() inside RenderBlockLineLayout.cpp
321 and from RenderStyle::changeAffectsVisualOverflow(). The former case passes in the full
322 InlineTextBox and the latter case just passes in a RenderStyle (because the InlineTextBox
325 This patch also modifies RenderTableSection::spannedColumns() to fix an off-by-one error
326 that was causing table borders to not be drawn when they existed right on the edge of
329 Tests: fast/css3-text/css3-text-decoration/repaint/underline-outside-of-layout-rect.html
330 Tests: fast/repaint/border-collapse-table-off-by-one-expected.html
332 * WebCore.vcxproj/WebCore.vcxproj: Adding reference to new InlineTextBoxStyle.cpp file
333 * WebCore.vcxproj/WebCore.vcxproj.filters: Adding reference to new InlineTextBoxStyle files
334 * WebCore.xcodeproj/project.pbxproj: Adding reference to new InlineTextBoxStyle files
335 * rendering/InlineTextBox.cpp:
336 (WebCore::computeUnderlineOffset): Moved to InlineTextBox.cpp
337 (WebCore::getWavyStrokeParameters): Moved to InlineTextBox.cpp
338 (WebCore::InlineTextBox::paintDecoration): Update to use newly refactored functions
339 * rendering/RenderBlockLineLayout.cpp:
340 (WebCore::setLogicalWidthForTextRun): Call visualOverflowForDecorations()
341 * rendering/RenderTableSection.cpp:
342 * rendering/RenderTableSelection.cpp: Fix off-by-one error when the boundary of a repaint
343 rect lies exactly on top of a table column position
344 * rendering/style/RenderStyle.cpp:
345 (WebCore::RenderStyle::changeAffectsVisualOverflow): Inspects shadows and text decorations
346 (WebCore::RenderStyle::changeRequiresLayout): Calls changeAffectsVisualOverflow()
347 (WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline): Moved code from here
348 to changeAffectsVisualOverflow().
349 * rendering/style/RenderStyle.h: Function signature
350 * style/InlineTextBoxStyle.cpp: Added.
351 (WebCore::computeUnderlineOffset): Moved from InlineTextBox.cpp
352 (WebCore::getWavyStrokeParameters): Moved from InlineTextBox.cpp
353 (WebCore::extendIntToFloat): Convenience function for dealing with the fact that
354 underline bounding boxes use floats and GlyphOverflow uses ints
355 (WebCore::visualOverflowForDecorations): Given
356 vertical overflow bounds, possibly extend those to include location of
358 * style/InlineTextBoxStyle.h: Added. Function signatures.
359 (WebCore::textDecorationStrokeThickness): Refactored from InlineTextBox.cpp
360 (WebCore::wavyOffsetFromDecoration): Refactored from InlineTextBox.cpp
361 * platform/graphics/Font.h:
362 (WebCore::GlyphOverflow::isEmpty): Convenience function
363 (WebCore::GlyphOverflow::extendTo): Convenience function
365 2014-05-19 Alex Christensen <achristensen@webkit.org>
367 Unreviewed build fix after r169082
369 * platform/network/ResourceHandle.h:
370 Added NSDictionary declaration.
372 2014-05-19 Beth Dakin <bdakin@apple.com>
374 REGRESSION: Standalone images need to take topContentInset into account
375 https://bugs.webkit.org/show_bug.cgi?id=133092
377 <rdar://problem/16945791>
379 Reviewed by Darin Adler.
381 The FrameView’s size is accurate in terms of the NSWindow size, but that is not
382 really what the ImageDocument code is looking for here. The ImageDocument wants to
383 know the size of the unobscured viewport area. We should use visibleSize() for
385 * html/ImageDocument.cpp:
386 (WebCore::ImageDocument::scale):
387 (WebCore::ImageDocument::imageFitsInWindow):
388 (WebCore::ImageDocument::imageClicked):
390 2014-05-19 Alex Christensen <achristensen@webkit.org>
392 Collect web timing data on iOS.
393 https://bugs.webkit.org/show_bug.cgi?id=133075
395 Reviewed by Sam Weinig.
397 * platform/network/ResourceHandle.h:
398 Added setCollectsTimingData wrapper and getConnectionTimingData declarations.
399 getConnectionTimingData with a dictionary parameter is a private helper function.
400 * platform/network/cf/ResourceHandleCFNet.cpp:
401 (WebCore::ResourceHandle::start):
402 Call setCollectsTimingData wrapper when creating a connection to ensure that timing data is collected.
403 * platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
404 (WebCore::ResourceHandleCFURLConnectionDelegate::didReceiveResponseCallback):
405 * platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
406 * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
407 (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
408 * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
409 * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
410 (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
411 * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
412 Pass the CFURLConnectionRef to didReceiveResponse to get timing data from.
413 * platform/network/mac/ResourceHandleMac.mm:
414 (WebCore::ResourceHandle::getConnectionTimingData):
415 Moved from getTimingData to compile regardless of using CFNetwork and added wrapper with CFDictionaryRef.
416 (WebCore::ResourceHandle::setCollectsTimingData):
417 Added wrapper to call objc function from c++.
418 (WebCore::ResourceHandle::getTimingData):
419 Renamed to getConnectionTimingData.
420 * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
421 (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
422 * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
423 (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
424 Updated function name from getTimingData to getConnectionTimingData.
426 2014-05-19 Chris Fleizach <cfleizach@apple.com>
428 AX: VoiceOver sees the WebArea out of order when topContentInset is used
429 https://bugs.webkit.org/show_bug.cgi?id=133091
431 Reviewed by Simon Fraser.
433 Modify the scroll view's frame so that it recognizes the content inset.
434 This is needed so that when VoiceOver sorts elements to create an ordering,
435 the web area is not ordered at the top of the screen.
437 Test: platform/mac-wk2/accessibility/content-inset-scrollview-frame.html
439 * accessibility/AccessibilityScrollView.cpp:
440 (WebCore::AccessibilityScrollView::elementRect):
442 2014-05-19 Beth Dakin <bdakin@apple.com>
444 Scrollbars display incorrectly after switching between fast and slow scrolling
445 mode, affects Find and real sites
446 https://bugs.webkit.org/show_bug.cgi?id=133077
448 <rdar://problem/16888608>
450 Reviewed by Tim Horton.
452 We should always return true here when updating on the secondary thread is
453 supported. It does not need to be gated on whether we are actively taking
454 advantage of that support at this moment.
455 * platform/Scrollbar.cpp:
456 (WebCore::Scrollbar::supportsUpdateOnSecondaryThread):
458 Always update the presentationValue whenever we update the doubleValue just to
460 * platform/mac/ScrollbarThemeMac.mm:
461 (WebCore::ScrollbarThemeMac::setPaintCharacteristicsForScrollbar):
463 2014-05-19 Simon Fraser <simon.fraser@apple.com>
465 Split scrolling tree ScrollingNodes into FrameScrollingNodes and OverflowScrollingNodes
466 https://bugs.webkit.org/show_bug.cgi?id=133022
468 Reviewed by Sam Weinig.
470 In both the scrolling state tree and the scrolling tree, split the "scrolling nodes"
471 into FrameScrolling and OverflowScrolling nodes.
473 Move what was the "viewportSize" property onto the base class for the scrolling
474 nodes, calling it "scrollableAreaSize".
476 Make minimum/maximumScrollPosition() virtual so we can share more code (and there
477 is more code sharing to be done in future).
479 * Configurations/WebCore.xcconfig: Remove ScrollingStateScrollingNodeMac.mm and ScrollingTreeScrollingNodeMac.mm
480 from the list, using #ifdefs in the file instead.
481 * WebCore.exp.in: Lots of exports.
482 * WebCore.xcodeproj/project.pbxproj: New files.
483 * page/scrolling/AsyncScrollingCoordinator.cpp:
484 (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
485 (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
486 (WebCore::AsyncScrollingCoordinator::updateFrameScrollingNode):
487 (WebCore::AsyncScrollingCoordinator::updateOverflowScrollingNode):
488 (WebCore::AsyncScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
489 (WebCore::AsyncScrollingCoordinator::updateScrollingNode): Deleted.
490 (WebCore::AsyncScrollingCoordinator::setScrollbarPaintersFromScrollbarsForNode): Deleted.
491 This tiny function didn't need to exist.
492 * page/scrolling/AsyncScrollingCoordinator.h:
493 * page/scrolling/ScrollingCoordinator.h:
494 (WebCore::ScrollingCoordinator::updateFrameScrollingNode):
495 (WebCore::ScrollingCoordinator::updateOverflowScrollingNode):
496 (WebCore::ScrollingCoordinator::updateScrollingNode): Deleted.
497 * page/scrolling/ScrollingStateFrameScrollingNode.cpp: Copied from Source/WebCore/page/scrolling/ScrollingStateScrollingNode.cpp.
498 (WebCore::ScrollingStateFrameScrollingNode::create):
499 (WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
500 (WebCore::ScrollingStateFrameScrollingNode::~ScrollingStateFrameScrollingNode):
501 (WebCore::ScrollingStateFrameScrollingNode::clone):
502 (WebCore::ScrollingStateFrameScrollingNode::setFrameScaleFactor):
503 (WebCore::ScrollingStateFrameScrollingNode::setNonFastScrollableRegion):
504 (WebCore::ScrollingStateFrameScrollingNode::setWheelEventHandlerCount):
505 (WebCore::ScrollingStateFrameScrollingNode::setSynchronousScrollingReasons):
506 (WebCore::ScrollingStateFrameScrollingNode::setScrollBehaviorForFixedElements):
507 (WebCore::ScrollingStateFrameScrollingNode::setHeaderHeight):
508 (WebCore::ScrollingStateFrameScrollingNode::setFooterHeight):
509 (WebCore::ScrollingStateFrameScrollingNode::setTopContentInset):
510 (WebCore::ScrollingStateFrameScrollingNode::setCounterScrollingLayer):
511 (WebCore::ScrollingStateFrameScrollingNode::setInsetClipLayer):
512 (WebCore::ScrollingStateFrameScrollingNode::setContentShadowLayer):
513 (WebCore::ScrollingStateFrameScrollingNode::setHeaderLayer):
514 (WebCore::ScrollingStateFrameScrollingNode::setFooterLayer):
515 (WebCore::ScrollingStateFrameScrollingNode::setScrollbarPaintersFromScrollbars):
516 (WebCore::ScrollingStateFrameScrollingNode::dumpProperties):
517 * page/scrolling/ScrollingStateFrameScrollingNode.h: Copied from Source/WebCore/page/scrolling/ScrollingStateScrollingNode.h.
518 * page/scrolling/ScrollingStateNode.h:
519 (WebCore::LayerRepresentation::layerID):
520 (WebCore::ScrollingStateNode::isFrameScrollingNode):
521 (WebCore::ScrollingStateNode::isOverflowScrollingNode):
522 * page/scrolling/ScrollingStateOverflowScrollingNode.cpp: Added.
523 (WebCore::ScrollingStateOverflowScrollingNode::create):
524 (WebCore::ScrollingStateOverflowScrollingNode::ScrollingStateOverflowScrollingNode):
525 (WebCore::ScrollingStateOverflowScrollingNode::~ScrollingStateOverflowScrollingNode):
526 (WebCore::ScrollingStateOverflowScrollingNode::clone):
527 (WebCore::ScrollingStateOverflowScrollingNode::setScrolledContentsLayer):
528 (WebCore::ScrollingStateOverflowScrollingNode::dumpProperties):
529 * page/scrolling/ScrollingStateOverflowScrollingNode.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingStateScrollingNodeMac.mm.
530 (WebCore::ScrollingStateOverflowScrollingNode::scrolledContentsLayer):
531 * page/scrolling/ScrollingStateScrollingNode.cpp:
532 (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
533 (WebCore::ScrollingStateScrollingNode::setScrollableAreaSize):
534 (WebCore::ScrollingStateScrollingNode::setTotalContentsSize):
535 (WebCore::ScrollingStateScrollingNode::dumpProperties):
536 (WebCore::ScrollingStateScrollingNode::create): Deleted.
537 (WebCore::ScrollingStateScrollingNode::clone): Deleted.
538 (WebCore::ScrollingStateScrollingNode::setViewportSize): Deleted.
539 (WebCore::ScrollingStateScrollingNode::setFrameScaleFactor): Deleted.
540 (WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion): Deleted.
541 (WebCore::ScrollingStateScrollingNode::setWheelEventHandlerCount): Deleted.
542 (WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons): Deleted.
543 (WebCore::ScrollingStateScrollingNode::setScrollBehaviorForFixedElements): Deleted.
544 (WebCore::ScrollingStateScrollingNode::setHeaderHeight): Deleted.
545 (WebCore::ScrollingStateScrollingNode::setFooterHeight): Deleted.
546 (WebCore::ScrollingStateScrollingNode::setTopContentInset): Deleted.
547 (WebCore::ScrollingStateScrollingNode::setScrolledContentsLayer): Deleted.
548 (WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer): Deleted.
549 (WebCore::ScrollingStateScrollingNode::setInsetClipLayer): Deleted.
550 (WebCore::ScrollingStateScrollingNode::setContentShadowLayer): Deleted.
551 (WebCore::ScrollingStateScrollingNode::setHeaderLayer): Deleted.
552 (WebCore::ScrollingStateScrollingNode::setFooterLayer): Deleted.
553 (WebCore::ScrollingStateScrollingNode::setScrollbarPaintersFromScrollbars): Deleted.
554 * page/scrolling/ScrollingStateScrollingNode.h:
555 (WebCore::ScrollingStateScrollingNode::scrollableAreaSize):
556 (WebCore::ScrollingStateScrollingNode::totalContentsSize):
557 * page/scrolling/ScrollingStateTree.cpp:
558 (WebCore::ScrollingStateTree::attachNode):
559 (WebCore::ScrollingStateTree::commit):
560 * page/scrolling/ScrollingStateTree.h:
561 (WebCore::ScrollingStateTree::rootStateNode):
562 (WebCore::ScrollingStateTree::setRootStateNode):
563 * page/scrolling/ScrollingTree.cpp:
564 (WebCore::ScrollingTree::commitNewTreeState):
565 * page/scrolling/ScrollingTreeFrameScrollingNode.cpp: Added.
566 (WebCore::ScrollingTreeFrameScrollingNode::ScrollingTreeFrameScrollingNode):
567 (WebCore::ScrollingTreeFrameScrollingNode::~ScrollingTreeFrameScrollingNode):
568 (WebCore::ScrollingTreeFrameScrollingNode::updateBeforeChildren):
569 * page/scrolling/ScrollingTreeFrameScrollingNode.h: Copied from Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h.
570 (WebCore::ScrollingTreeFrameScrollingNode::updateLayersAfterDelegatedScroll):
571 (WebCore::ScrollingTreeFrameScrollingNode::synchronousScrollingReasons):
572 (WebCore::ScrollingTreeFrameScrollingNode::shouldUpdateScrollLayerPositionSynchronously):
573 (WebCore::ScrollingTreeFrameScrollingNode::frameScaleFactor):
574 (WebCore::ScrollingTreeFrameScrollingNode::headerHeight):
575 (WebCore::ScrollingTreeFrameScrollingNode::footerHeight):
576 (WebCore::ScrollingTreeFrameScrollingNode::topContentInset):
577 (WebCore::ScrollingTreeFrameScrollingNode::scrollBehaviorForFixedElements):
578 * page/scrolling/ScrollingTreeNode.h:
579 (WebCore::ScrollingTreeNode::isFrameScrollingNode):
580 (WebCore::ScrollingTreeNode::isOverflowScrollingNode):
581 * page/scrolling/ScrollingTreeOverflowScrollingNode.cpp: Copied from Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h.
582 (WebCore::ScrollingTreeOverflowScrollingNode::ScrollingTreeOverflowScrollingNode):
583 (WebCore::ScrollingTreeOverflowScrollingNode::~ScrollingTreeOverflowScrollingNode):
584 * page/scrolling/ScrollingTreeOverflowScrollingNode.h: Copied from Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h.
585 * page/scrolling/ScrollingTreeScrollingNode.cpp:
586 (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
587 (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
588 (WebCore::ScrollingTreeScrollingNode::updateAfterChildren):
589 (WebCore::ScrollingTreeScrollingNode::setScrollPosition):
590 (WebCore::ScrollingTreeScrollingNode::setScrollPositionWithoutContentEdgeConstraints):
591 (WebCore::ScrollingTreeScrollingNode::minimumScrollPosition):
592 (WebCore::ScrollingTreeScrollingNode::maximumScrollPosition):
593 * page/scrolling/ScrollingTreeScrollingNode.h:
594 (WebCore::ScrollingTreeScrollingNode::scrollableAreaSize):
595 (WebCore::ScrollingTreeScrollingNode::totalContentsSize):
596 (WebCore::ScrollingTreeScrollingNode::totalContentsSizeForRubberBand):
597 (WebCore::ScrollingTreeScrollingNode::setTotalContentsSizeForRubberBand):
598 (WebCore::ScrollingTreeScrollingNode::synchronousScrollingReasons): Deleted.
599 (WebCore::ScrollingTreeScrollingNode::shouldUpdateScrollLayerPositionSynchronously): Deleted.
600 (WebCore::ScrollingTreeScrollingNode::viewportSize): Deleted.
601 (WebCore::ScrollingTreeScrollingNode::frameScaleFactor): Deleted.
602 (WebCore::ScrollingTreeScrollingNode::headerHeight): Deleted.
603 (WebCore::ScrollingTreeScrollingNode::footerHeight): Deleted.
604 (WebCore::ScrollingTreeScrollingNode::scrollBehaviorForFixedElements): Deleted.
605 (WebCore::ScrollingTreeScrollingNode::topContentInset): Deleted.
606 * page/scrolling/ios/ScrollingCoordinatorIOS.mm:
607 (WebCore::ScrollingCoordinatorIOS::createScrollingTreeNode):
608 * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h: Renamed from Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h.
609 (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollLayer):
610 * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm: Renamed from Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm.
611 (WebCore::ScrollingTreeFrameScrollingNodeIOS::create):
612 (WebCore::ScrollingTreeFrameScrollingNodeIOS::ScrollingTreeFrameScrollingNodeIOS):
613 (WebCore::ScrollingTreeFrameScrollingNodeIOS::~ScrollingTreeFrameScrollingNodeIOS):
614 (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateBeforeChildren):
615 (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateAfterChildren):
616 (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollPosition):
617 (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPosition):
618 (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints):
619 (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollLayerPosition):
620 (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterViewportChange):
621 (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterDelegatedScroll):
622 (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):
623 (WebCore::ScrollingTreeFrameScrollingNodeIOS::minimumScrollPosition):
624 (WebCore::ScrollingTreeFrameScrollingNodeIOS::maximumScrollPosition):
625 (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollBy):
626 (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollByWithoutContentEdgeConstraints):
627 * page/scrolling/mac/ScrollingCoordinatorMac.mm:
628 (WebCore::ScrollingCoordinatorMac::createScrollingTreeNode):
629 * page/scrolling/mac/ScrollingStateFrameScrollingNodeMac.mm: Renamed from Source/WebCore/page/scrolling/mac/ScrollingStateScrollingNodeMac.mm.
630 (WebCore::ScrollingStateFrameScrollingNode::setScrollbarPaintersFromScrollbars):
631 * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h: Renamed from Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.h.
632 * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm: Renamed from Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm.
633 (WebCore::ScrollingTreeFrameScrollingNodeMac::create):
634 (WebCore::ScrollingTreeFrameScrollingNodeMac::ScrollingTreeFrameScrollingNodeMac):
635 (WebCore::ScrollingTreeFrameScrollingNodeMac::~ScrollingTreeFrameScrollingNodeMac):
636 (WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
637 (WebCore::ScrollingTreeFrameScrollingNodeMac::updateAfterChildren):
638 (WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):
639 (WebCore::ScrollingTreeFrameScrollingNodeMac::allowsHorizontalStretching):
640 (WebCore::ScrollingTreeFrameScrollingNodeMac::allowsVerticalStretching):
641 (WebCore::ScrollingTreeFrameScrollingNodeMac::stretchAmount):
642 (WebCore::ScrollingTreeFrameScrollingNodeMac::pinnedInDirection):
643 (WebCore::ScrollingTreeFrameScrollingNodeMac::canScrollHorizontally):
644 (WebCore::ScrollingTreeFrameScrollingNodeMac::canScrollVertically):
645 (WebCore::ScrollingTreeFrameScrollingNodeMac::shouldRubberBandInDirection):
646 (WebCore::ScrollingTreeFrameScrollingNodeMac::absoluteScrollPosition):
647 (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollBy):
648 (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
649 (WebCore::ScrollingTreeFrameScrollingNodeMac::startSnapRubberbandTimer):
650 (WebCore::ScrollingTreeFrameScrollingNodeMac::stopSnapRubberbandTimer):
651 (WebCore::ScrollingTreeFrameScrollingNodeMac::adjustScrollPositionToBoundsIfNecessary):
652 (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollPosition):
653 (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
654 (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
655 (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):
656 (WebCore::ScrollingTreeFrameScrollingNodeMac::updateLayersAfterViewportChange):
657 (WebCore::ScrollingTreeFrameScrollingNodeMac::minimumScrollPosition):
658 (WebCore::ScrollingTreeFrameScrollingNodeMac::maximumScrollPosition):
659 (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollBy):
660 (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollByWithoutContentEdgeConstraints):
661 (WebCore::ScrollingTreeFrameScrollingNodeMac::updateMainFramePinState):
662 (WebCore::ScrollingTreeFrameScrollingNodeMac::logExposedUnfilledArea):
663 (WebCore::logThreadedScrollingMode):
664 (WebCore::logWheelEventHandlerCountChanged):
665 * rendering/RenderLayerCompositor.cpp:
666 (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
668 2014-05-19 Simon Fraser <simon.fraser@apple.com>
670 Images missing sometimes with composited clipping layers
671 https://bugs.webkit.org/show_bug.cgi?id=133065
672 <rdar://problem/15224559>
674 Reviewed by Beth Dakin.
676 When support for solid colors on layers was added, a layer was considered a candidate
677 for the solid color optimization without regard to whether it had descendent layers
678 with "paintsIntoCompositedAncestor" requirements.
680 Fix hasVisibleNonCompositingDescendantLayers(), renaming it to isPaintDestinationForDescendentLayers()
681 and having it take into account whether descendent layers need to paint into an
684 Also, this test has to happen after those descendent layers have had their
685 compositing state updated, so move the isSimpleContainerCompositingLayer() to
686 a new updateAfterDescendents() function which is called from the various
687 places we do compositing-udpate-tree-walks.
689 Test: compositing/backing/solid-color-with-paints-into-ancestor.html
691 * rendering/RenderLayerBacking.cpp:
692 (WebCore::RenderLayerBacking::updateGeometry):
693 (WebCore::RenderLayerBacking::updateAfterDescendents):
694 (WebCore::RenderLayerBacking::paintsChildren):
695 (WebCore::compositedWithOwnBackingStore):
696 (WebCore::descendentLayerPaintsIntoAncestor):
697 (WebCore::RenderLayerBacking::isPaintDestinationForDescendentLayers):
698 (WebCore::hasVisibleNonCompositingDescendant): Deleted.
699 (WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers): Deleted.
700 * rendering/RenderLayerBacking.h:
701 * rendering/RenderLayerCompositor.cpp:
702 (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
703 (WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
704 (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):
706 2014-05-19 Zalan Bujtas <zalan@apple.com>
708 REGRESSION (r133351, sub-pixel layout): Right-to-left block with text-overflow: ellipsis truncates prematurely (breaks facebook.com Hebrew UI)
709 https://bugs.webkit.org/show_bug.cgi?id=112227
711 Reviewed by Maciej Stachowiak.
713 This patch removes unnecessary integral snapping of inlines at layout time.
715 The general rule of thumb of using round/floor/ceil at layout time is to not use them.
717 When some computed values (x, y, width, height) get snapped during layout, while others don't,
718 intersecting/measuring mismatches could occur and they could end up producing visual artifacts such as truncations.
719 This patch also enables iframe content to be positioned on odd device pixel positions on retina displays.
721 Tests: fast/frames/hidpi-position-iframe-on-device-pixel.html
722 fast/inline/hidpi-rtl-text-does-not-fit-line-and-gets-cut-off.html
724 * rendering/RenderBlock.h:
725 (WebCore::RenderBlock::logicalLeftOffsetForLine):
726 (WebCore::RenderBlock::pixelSnappedLogicalLeftOffsetForLine): Deleted.
727 (WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine): Deleted.
728 * rendering/RenderBlockLineLayout.cpp:
729 (WebCore::updateLogicalInlinePositions):
730 (WebCore::RenderBlockFlow::deleteEllipsisLineBoxes):
731 (WebCore::RenderBlockFlow::checkLinesForTextOverflow):
733 2014-05-18 Chris Fleizach <cfleizach@apple.com>
735 AX: iOS: using AXAttributeCacheEnabler is too slow for every accessibilityElementAtIndex:
736 https://bugs.webkit.org/show_bug.cgi?id=133043
738 Reviewed by Mario Sanchez Prada.
740 iOS Accessibility code tries to improve performance by caching attributes when accessing
741 elements through the platform API. However, those API calls can be used very frequently when
742 iterating elements. Creating the AXAttributeCacheEnabler object and tearing it down is proving
743 to be the hottest code path in samples for accessibility access.
745 We need to move the logic for enabling/disabling the attribute cache to a level that can make
746 a more informed decision about when to enable/disable.
748 * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
749 (-[WebAccessibilityObjectWrapper enableAttributeCaching]):
750 (-[WebAccessibilityObjectWrapper disableAttributeCaching]):
751 (-[WebAccessibilityObjectWrapper accessibilityElementCount]):
752 (-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):
753 (-[WebAccessibilityObjectWrapper indexOfAccessibilityElement:]):
755 2014-05-18 Simon Fraser <simon.fraser@apple.com>
757 Use RenderStyle& in more places in RenderLayerBacking
758 https://bugs.webkit.org/show_bug.cgi?id=133061
760 Reviewed by Andreas Kling.
762 Convert several member functions to use references to RenderStyle rather
763 than pointers. Move canCreateTiledImage() higher in the file (no code
764 changes). Other minor cleanup.
766 * rendering/RenderLayerBacking.cpp:
767 (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
768 (WebCore::RenderLayerBacking::updateOpacity):
769 (WebCore::RenderLayerBacking::updateTransform):
770 (WebCore::RenderLayerBacking::updateFilters):
771 (WebCore::RenderLayerBacking::updateBlendMode):
772 (WebCore::RenderLayerBacking::updateGeometry):
773 (WebCore::hasBoxDecorations):
774 (WebCore::canCreateTiledImage):
775 (WebCore::hasBoxDecorationsOrBackgroundImage):
776 (WebCore::hasPerspectiveOrPreserves3D):
777 (WebCore::supportsDirectBoxDecorationsComposition):
778 (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
779 (WebCore::RenderLayerBacking::contentChanged):
780 (WebCore::RenderLayerBacking::startTransition):
781 * rendering/RenderLayerBacking.h:
783 2014-05-17 Simon Fraser <simon.fraser@apple.com>
785 Rename some RenderLayerBacking member functions
786 https://bugs.webkit.org/show_bug.cgi?id=133030
788 Reviewed by Sam Weinig.
790 Remove "GraphicsLayer" from some member function names on RenderLayerBacking.
794 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
795 (WebCore::AVFWrapper::createAVCFVideoLayer):
796 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
797 (WebCore::MediaPlayerPrivateQTKit::createQTMovieLayer):
798 * rendering/RenderLayer.cpp:
799 (WebCore::RenderLayer::calculateClipRects):
800 * rendering/RenderLayerBacking.cpp:
801 (WebCore::RenderLayerBacking::updateAfterLayout):
802 (WebCore::RenderLayerBacking::updateConfiguration):
803 (WebCore::RenderLayerBacking::updateGeometry):
804 (WebCore::RenderLayerBacking::contentChanged):
805 (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
806 (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Deleted.
807 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Deleted.
808 * rendering/RenderLayerBacking.h:
809 * rendering/RenderLayerCompositor.cpp:
810 (WebCore::RenderLayerCompositor::updateLayerCompositingState):
811 (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
812 (WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
813 (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):
814 (WebCore::RenderLayerCompositor::attachRootLayer):
816 2014-05-19 Antti Koivisto <antti@apple.com>
818 Fix assertion failure with simple line layout debug borders enabled.
820 Rubber-stamped by Andreas Kling.
822 * rendering/SimpleLineLayoutFunctions.cpp:
823 (WebCore::SimpleLineLayout::paintDebugBorders): We shoudn't try to paint empty rects.
825 2014-05-18 Andreas Kling <akling@apple.com>
827 Reduce constructor copypasta in RenderText and RenderElement.
828 <https://webkit.org/b/133056>
830 Use delegating constructors to remove duplicated initializer lists
831 from the constructors of RenderText and RenderElement.
833 Reviewed by Anders Carlsson.
835 * rendering/RenderElement.cpp:
836 (WebCore::RenderElement::RenderElement):
837 * rendering/RenderElement.h:
838 * rendering/RenderText.cpp:
839 (WebCore::RenderText::RenderText):
840 * rendering/RenderText.h:
842 2014-05-18 Brent Fulgham <bfulgham@apple.com>
844 Crash during scroll when latched
845 https://bugs.webkit.org/show_bug.cgi?id=133064
847 Reviewed by Simon Fraser.
849 * page/mac/EventHandlerMac.mm:
850 (WebCore::EventHandler::platformPrepareForWheelEvents): Prevent dereference of NULL
851 wheelEventTarget argument.
853 2014-05-18 Svetlana Redchenko <redchenko@yandex-team.ru>
855 Input ::selection pseudo class does not work leading to hidden selection
856 https://bugs.webkit.org/show_bug.cgi?id=38943
858 Reviewed by Darin Adler.
860 Test: fast/selectors/input-with-selection-pseudo-element.html
862 When text is selected inside input element, it should change the
863 color and background color according to the ::selection pseudo element.
865 * rendering/RenderObject.cpp:
866 (WebCore::RenderObject::selectionBackgroundColor):
867 (WebCore::RenderObject::selectionColor):
868 (WebCore::RenderObject::selectionPseudoStyle):
869 * rendering/RenderObject.h:
871 2014-05-18 Sam Weinig <sam@webkit.org>
873 [WebKit2] Implement ScriptMessageHandlers
874 https://bugs.webkit.org/show_bug.cgi?id=133053
876 Reviewed by Anders Carlsson.
878 * DerivedSources.make:
880 * WebCore.xcodeproj/project.pbxproj:
881 * bindings/js/JSDOMWindowBase.cpp:
882 (WebCore::JSDOMWindowBase::finishCreation):
883 * bindings/js/JSUserMessageHandlersNamespaceCustom.cpp: Added.
884 (WebCore::JSUserMessageHandlersNamespace::getOwnPropertySlotDelegate):
885 * page/DOMWindow.cpp:
886 (WebCore::DOMWindow::shouldHaveWebKitNamespaceForWorld):
887 (WebCore::DOMWindow::webkitNamespace):
889 * page/UserContentController.cpp:
890 (WebCore::UserContentController::addUserMessageHandlerDescriptor):
891 (WebCore::UserContentController::removeUserMessageHandlerDescriptor):
892 * page/UserContentController.h:
893 (WebCore::UserContentController::userMessageHandlerDescriptors):
894 * page/UserMessageHandler.cpp: Added.
895 (WebCore::UserMessageHandler::UserMessageHandler):
896 (WebCore::UserMessageHandler::~UserMessageHandler):
897 (WebCore::UserMessageHandler::postMessage):
898 (WebCore::UserMessageHandler::name):
899 (WebCore::UserMessageHandler::world):
900 * page/UserMessageHandler.h: Added.
901 (WebCore::UserMessageHandler::create):
902 * page/UserMessageHandler.idl: Added.
903 * page/UserMessageHandlerDescriptor.cpp: Added.
904 (WebCore::UserMessageHandlerDescriptor::UserMessageHandlerDescriptor):
905 (WebCore::UserMessageHandlerDescriptor::~UserMessageHandlerDescriptor):
906 (WebCore::UserMessageHandlerDescriptor::name):
907 (WebCore::UserMessageHandlerDescriptor::world):
908 * page/UserMessageHandlerDescriptor.h: Added.
909 (WebCore::UserMessageHandlerDescriptor::Client::~Client):
910 (WebCore::UserMessageHandlerDescriptor::create):
911 (WebCore::UserMessageHandlerDescriptor::client):
912 * page/UserMessageHandlerDescriptorTypes.h: Added.
913 * page/UserMessageHandlersNamespace.cpp: Added.
914 (WebCore::UserMessageHandlersNamespace::UserMessageHandlersNamespace):
915 (WebCore::UserMessageHandlersNamespace::~UserMessageHandlersNamespace):
916 (WebCore::UserMessageHandlersNamespace::handler):
917 * page/UserMessageHandlersNamespace.h: Added.
918 (WebCore::UserMessageHandlersNamespace::create):
919 * page/UserMessageHandlersNamespace.idl: Added.
920 * page/WebKitNamespace.cpp: Added.
921 (WebCore::WebKitNamespace::WebKitNamespace):
922 (WebCore::WebKitNamespace::~WebKitNamespace):
923 (WebCore::WebKitNamespace::messageHandlers):
924 * page/WebKitNamespace.h: Added.
925 (WebCore::WebKitNamespace::create):
926 * page/WebKitNamespace.idl: Added.
928 2014-05-18 Maciej Stachowiak <mjs@apple.com>
930 REGRESSION (r156546): Default media controls are laid out incorrectly when media element is styled with direction:rtl
931 https://bugs.webkit.org/show_bug.cgi?id=132531
932 <rdar://problem/16806267>
934 Reviewed by Mark Rowe.
936 This was already tested by the media/video-rtl.htm reftest, now unskipped.
938 * Modules/mediacontrols/mediaControlsApple.css:
939 (audio::-webkit-media-controls-panel): Add missing direction: ltr
941 2014-05-18 Rik Cabanier <cabanier@adobe.com>
943 support for navigator.hardwareConcurrency
944 https://bugs.webkit.org/show_bug.cgi?id=132588
946 Reviewed by Filip Pizlo.
948 Added a new API that returns the number of CPU cores up to 8.
950 Test: fast/dom/navigator-hardwareConcurrency.html
952 * Configurations/FeatureDefines.xcconfig:
953 * page/Navigator.cpp:
954 (WebCore::Navigator::hardwareConcurrency):
956 * page/Navigator.idl:
958 2014-05-18 Anders Carlsson <andersca@apple.com>
963 Move UserContentController symbols to the right place.
965 2014-05-18 Jon Lee <jonlee@apple.com>
967 Build fix for r169006.
971 * loader/ResourceLoader.h: Return didCreateQuickLookHandle() to public.
973 2014-05-18 Antti Koivisto <antti@apple.com>
975 REGRESSION (r160259): text-combine glyphs are not rendered
976 https://bugs.webkit.org/show_bug.cgi?id=127324
978 Reviewed by Andreas Kling.
980 The original text gets overwritten by a change that is supposed to affect rendered text only.
981 Fixed by giving the text update functions well-defined purposes.
983 Test: fast/text/text-combine-rendering.html
985 * rendering/RenderCombineText.cpp:
986 (WebCore::RenderCombineText::styleDidChange):
987 (WebCore::RenderCombineText::setRenderedText):
988 (WebCore::RenderCombineText::combineText):
989 (WebCore::RenderCombineText::setTextInternal): Deleted.
990 * rendering/RenderCombineText.h:
991 * rendering/RenderCounter.cpp:
992 (WebCore::RenderCounter::computePreferredLogicalWidths):
993 * rendering/RenderText.cpp:
994 (WebCore::RenderText::setRenderedText):
996 This function now updates the rendered text but does not change the original.
997 Get the original text by calling originalText().
999 (WebCore::RenderText::setText):
1001 This the only place original text now changes.
1003 (WebCore::RenderText::setTextInternal): Deleted.
1005 Renamed to setRenderedText.
1007 * rendering/RenderText.h:
1008 * rendering/svg/RenderSVGInlineText.cpp:
1009 (WebCore::RenderSVGInlineText::setRenderedText):
1010 (WebCore::RenderSVGInlineText::setTextInternal): Deleted.
1011 * rendering/svg/RenderSVGInlineText.h:
1013 2014-05-17 Maciej Stachowiak <mjs@apple.com>
1015 Don't attempt to update id or name for nodes that are already removed
1016 https://bugs.webkit.org/show_bug.cgi?id=133041
1018 Reviewed by Sam Weinig.
1020 Tests: fast/dom/remove-element-with-id-that-was-inserted-on-DOMNodeRemoved.html
1021 fast/dom/remove-element-with-name-that-was-inserted-on-DOMNodeRemoved.html
1024 (WebCore::Element::removedFrom): Skip updating ids and names for an element not
1025 in a treescope, as we already do for elements not in a document.
1027 2014-05-17 Alexey Proskuryakov <ap@apple.com>
1029 REGRESSION (NetworkProcess): Trying to use appcache fallback crashes in ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache
1030 https://bugs.webkit.org/show_bug.cgi?id=133007
1031 <rdar://problem/13702706>
1033 appcache tests often fail on the Mac WebKit2 bot
1034 https://bugs.webkit.org/show_bug.cgi?id=82061
1036 Reviewed by Maciej Stachowiak.
1038 Covered by existing tests, which this patch enables.
1040 * WebCore.exp.in: Export ResourceLoader::cancel(const ResourceError&). It used
1041 to be virtual, but marking subclasses final has resulted in the compiler calling
1042 it directly from WebKitLegacy framework. Seeing that no subclass overrides it,
1043 I then made it non-virtual.
1044 Also export ApplicationCacheHost functions that are now used from WebKit2.
1046 * loader/ResourceLoader.h: Made the class abstract (as I didn't realize at first
1047 that it's always either a SubresourceLoader or a NetscapePlugInStreamLoader).
1048 Made ResourceHandleClient functions private, as they should never be called other
1049 than via a ResourceHandleClient pointer.
1051 * loader/NetscapePlugInStreamLoader.h:
1052 * loader/SubresourceLoader.h:
1055 * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willSwitchToSubstituteResource):
1056 Added a function to be called when switching to a substitute resource. We still
1057 need a ResourceLoader at this point, as substitute resource will be delivered through
1058 it, but we don't want it to continue its current load.
1060 * loader/appcache/ApplicationCacheHost.cpp:
1061 (WebCore::ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache):
1062 Call the ResourceLoader function instead of using handle, which is null when
1063 using out of process networking.
1065 2014-05-17 Andreas Kling <akling@apple.com>
1067 We shouldn't make a ScrollingThread on iOS.
1068 <https://webkit.org/b/133038>
1069 <rdar://problem/16947589>
1071 Don't call ScrollingThred::dispatch() from the pressure relief
1072 code on iOS since that will end up instantiating a scrolling thread
1073 which we'd otherwise never have.
1075 Reviewed by Sam Weinig.
1077 * platform/MemoryPressureHandler.cpp:
1078 (WebCore::MemoryPressureHandler::releaseMemory):
1080 2014-05-17 Piotr Grad <p.grad@samsung.com>
1082 Setting playback rate on video with media controller is not ignored.
1083 https://bugs.webkit.org/show_bug.cgi?id=129048
1085 Reviewed by Jer Noble.
1087 Replaced queries for m_playbackRate with effectivePlaybackRate()
1088 which includes media controller playback rate.
1090 Test: media/video-controller-child-rate.html
1092 * html/HTMLMediaElement.cpp:
1093 (WebCore::HTMLMediaElement::parseAttribute):
1094 * html/HTMLMediaElement.h:
1096 2014-05-16 Anders Carlsson <andersca@apple.com>
1098 Expose WKUserScript as API
1099 https://bugs.webkit.org/show_bug.cgi?id=133017
1100 <rdar://problem/16948059>
1102 Reviewed by Sam Weinig.
1107 * WebCore.xcodeproj/project.pbxproj:
1108 Change UserContentController.h to be a private header.
1111 (WebCore::Page::Page):
1112 Set m_userContentController from the page configuration and add it if it's not null.
1115 Add UserContentController to PageClients.
1117 * page/PageGroup.cpp:
1118 (WebCore::PageGroup::addPage):
1119 Only try to add a user content controller if the page doesn't already have one.
1121 (WebCore::PageGroup::removePage):
1122 Only try to remove the user content controller if it's the group one.
1124 2014-05-17 Andreas Kling <akling@apple.com>
1126 REGRESSION (r166422): All RenderBox objects grew 104 bytes from adding repaint timers.
1127 <https://webkit.org/b/133027>
1128 <rdar://problem/16867410>
1130 Instead of storing a rarely-used repaint timer on every RenderBox, store one
1131 on the RenderView, and keep a hash set of renderers needing repaint.
1133 Renderers get a flag tracking whether they have a pending lazy repaint.
1134 This way we can avoid hash lookups in the common case.
1136 Also added a static assertion to catch RenderBox growing in the future.
1138 Reviewed by Antti Koivisto.
1140 * rendering/RenderBox.cpp:
1141 (WebCore::SameSizeAsRenderBox::~SameSizeAsRenderBox):
1142 (WebCore::RenderBox::RenderBox):
1143 (WebCore::RenderBox::~RenderBox):
1144 (WebCore::RenderBox::paintBoxDecorations):
1145 (WebCore::RenderBox::layoutOverflowRectForPropagation):
1146 * rendering/RenderBox.h:
1147 * rendering/RenderElement.cpp:
1148 (WebCore::RenderElement::RenderElement):
1149 * rendering/RenderElement.h:
1150 (WebCore::RenderElement::setRenderBoxNeedsLazyRepaint):
1151 (WebCore::RenderElement::renderBoxNeedsLazyRepaint):
1152 * rendering/RenderView.cpp:
1153 (WebCore::RenderView::RenderView):
1154 (WebCore::RenderView::scheduleLazyRepaint):
1155 (WebCore::RenderView::unscheduleLazyRepaint):
1156 (WebCore::RenderView::lazyRepaintTimerFired):
1157 * rendering/RenderView.h:
1159 2014-05-16 Jer Noble <jer.noble@apple.com>
1161 [Mac][MSE] setCurrentTime() goes down fastSeek path in MediaPlayerPrivateMediaSourceAVFObjC.
1162 https://bugs.webkit.org/show_bug.cgi?id=133023
1164 Reviewed by Eric Carlson.
1166 When seeking a MSE video, do not go down the fastSeekForMediaTime() path if the
1167 seek resulted from a setCurrentTime() call. The logic can lead to attempted seeks
1168 before buffered ranges.
1170 * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
1171 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
1172 * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
1173 * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
1174 (WebCore::MediaSourcePrivateAVFObjC::seekToTime):
1176 2014-05-16 Benjamin Poulain <bpoulain@apple.com>
1178 [iOS] ScrollView::visibleContentRectInternal is bypassing the iOS code for unobscuredContentRect
1179 https://bugs.webkit.org/show_bug.cgi?id=133008
1181 Reviewed by Simon Fraser.
1183 * platform/ScrollView.cpp:
1184 (WebCore::ScrollView::visibleContentRectInternal):
1185 ScrollView::visibleContentRectInternal() was calling the internal implementation of visibleContentRect().
1186 That was skipping the iOS implementation and getting the framerect directly. That size is invalid on iOS
1187 when the exposed rect and unobscured rect are not the same.
1189 2014-05-16 Jer Noble <jer.noble@apple.com>
1191 [Mac] naturalSize not updated when preload=metadata
1192 https://bugs.webkit.org/show_bug.cgi?id=132994
1194 Reviewed by Eric Carlson.
1196 Test: media/video-load-preload-metadata-naturalsize.html
1198 When preload=metadata, we never create an AVPlayerItem, and therefore never receive a
1199 presentationSize KVO. When an AVAsset informs us that its tracks have changed, and there
1200 is no AVPlayerItem, recalculate presentation size based on the first video track's natural
1203 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1204 (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged):
1205 * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
1206 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
1208 2014-05-16 Simon Fraser <simon.fraser@apple.com>
1210 Remove "region-based columns" prefs
1211 https://bugs.webkit.org/show_bug.cgi?id=133006
1212 <rdar://problem/16945824>
1214 Reviewed by Dave Hyatt.
1216 Remove "region-based columns" prefs and related code, since this is only
1217 way to render columns now.
1221 2014-05-16 Antti Koivisto <antti@apple.com>
1223 Link search area for touch events is too large in some cases
1224 https://bugs.webkit.org/show_bug.cgi?id=132988
1225 <rdar://problem/16917843>
1227 Reviewed by Simon Fraser.
1229 * page/ios/FrameIOS.mm:
1230 (WebCore::Frame::qualifyingNodeAtViewportLocation):
1232 - Adjust the search area to screen ppi.
1233 - Remove cut-off at scale 1. This made us pick physically far-away elements when zoomed in.
1235 * platform/PlatformScreen.h:
1236 * platform/ios/PlatformScreenIOS.mm:
1237 (WebCore::mobileGestaltFloatValue):
1238 (WebCore::screenPPIFactor):
1240 Figure out screens physical PPI relative to a base.
1242 2014-05-16 Jer Noble <jer.noble@apple.com>
1244 [MSE] Crash at WebCore::SourceBuffer::~SourceBuffer + 110
1245 https://bugs.webkit.org/show_bug.cgi?id=132973
1247 Reviewed by Eric Carlson.
1249 Change SourceBuffer::m_private into a Ref<>, and add an assertion to
1250 SourceBufferPrivateAVFObjC's destructor if its client has not been cleared.
1252 Eliminate unnecessary churn in MediaSourcePrivateAVFObjC by having the predicate
1253 functor take bare pointers, rather than a PassRefPtr.
1255 The underlying problem seems to be in WebAVStreamDataParserListener. RefPtrs were
1256 being created off the main thread to a non-thread safe ref counted class. In some
1257 situations, this would result in double decrementing the ref, which would cause an
1258 early destruction of the underlying object. Instead replace these RefPtr strong
1259 pointers with explicit weak ones. Ensure the parser and its delegate are not freed
1260 before the append operation completes by passing strong pointers into the async
1261 append operation lambda.
1263 There were a few places where we weren't null checking m_mediaSource before using it,
1264 and at least one place where we weren't clearing m_mediaSource.
1266 * Modules/mediasource/SourceBuffer.cpp:
1267 (WebCore::SourceBuffer::SourceBuffer): Use Ref instead of RefPtr.
1268 (WebCore::SourceBuffer::appendBufferTimerFired): Ditto.
1269 * Modules/mediasource/SourceBuffer.h:
1270 * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
1271 (WebCore::MediaSourcePrivateAVFObjCHasAudio): Take a bare pointer, instead of a PassRefPtr.
1272 (WebCore::MediaSourcePrivateAVFObjCHasVideo): Ditto.
1273 * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
1274 (WebCore::MediaSourcePrivateAVFObjC::removeSourceBuffer): Clear the back pointer when removing a buffer.
1275 * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
1276 * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
1277 (-[WebAVStreamDataParserListener initWithParser:parent:WebCore::]): Use WeakPtr instead of RefPtr.
1278 (-[WebAVStreamDataParserListener invalidate]): Ditto.
1279 (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]): Ditto.
1280 (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]): Ditto.
1281 (-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]): Ditto.
1282 (-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]): Ditto.
1283 (-[WebAVStreamDataParserListener streamDataParser:didReachEndOfTrackWithTrackID:mediaType:]): Ditto.
1284 (-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]): Ditto.
1285 (WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
1286 (WebCore::SourceBufferPrivateAVFObjC::append): Ditto.
1288 2014-05-16 Zalan Bujtas <zalan@apple.com>
1290 Subpixel rendering: Push named flows in region to device pixel when painting.
1291 https://bugs.webkit.org/show_bug.cgi?id=132986
1293 Reviewed by Simon Fraser.
1295 Remove integral rounding when named flow sets the painting offset on the graphics context.
1296 Use device pixel snapping instead to ensure that we can paint on odd device pixel positions on retina displays.
1298 Test: fast/regions/hidpi-region-with-auto-margin-on-subpixel-position.html
1300 * rendering/RenderLayer.cpp:
1301 (WebCore::RenderLayer::calculateClipRects):
1303 2014-05-16 Radu Stavila <stavila@adobe.com>
1305 [CSS Regions] Add ASSERT to make sure using the flowThread cache does not return incorrect results
1306 https://bugs.webkit.org/show_bug.cgi?id=132906
1308 Reviewed by Simon Fraser.
1310 If flowThreadContainingBlock() is called on an object which is in a different
1311 flow thread than the one currently being laid out, this method will return an incorrect
1312 result. I added an assertion for that to make sure we catch and treat any such scenarios.
1313 For the moment, this assertion is only validated for regions, as multicol still has some issues.
1315 No new tests required.
1317 * rendering/RenderObject.cpp:
1318 (WebCore::RenderObject::locateFlowThreadContainingBlockNoCache):
1319 (WebCore::RenderObject::locateFlowThreadContainingBlock):
1320 * rendering/RenderObject.h:
1322 2014-05-16 Martin Hock <mhock@apple.com>
1324 MemoryCache::addImageToCache should return the result of add().
1325 https://bugs.webkit.org/show_bug.cgi?id=132928
1326 <rdar://problem/16651547>
1328 Reviewed by Alexey Proskuryakov.
1330 API test: WebKit1.MemoryCacheADdImageToCache (MemoryCacheAddImageToCacheIOS.mm)
1332 * loader/cache/MemoryCache.cpp:
1333 (WebCore::MemoryCache::addImageToCache):
1335 2014-05-16 Andrei Bucur <abucur@adobe.com>
1337 [CSS Regions] Reduce the RenderRegion invasiveness in rendering code
1338 https://bugs.webkit.org/show_bug.cgi?id=132121
1340 Reviewed by Antti Koivisto.
1342 Remove the RenderRegion / RenderNamedFlowFragment parameters and fields from
1343 the painting / hit testing data structures and use a stateful approach to
1344 correctly handle regions.
1346 When painting or hit testing, the current flow thread is saved along the current
1347 region. They are accessed through the |currentRenderNamedFlowFragment| helper
1348 method on RenderObject or RenderLayer.
1350 The patch also changes a bunch of 0s to nullptrs.
1352 Tests: No new tests, no functional change.
1354 * html/shadow/MediaControlElements.cpp:
1355 (WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
1356 * rendering/HitTestLocation.cpp:
1357 (WebCore::HitTestLocation::HitTestLocation):
1358 (WebCore::HitTestLocation::operator=):
1359 * rendering/HitTestLocation.h:
1360 (WebCore::HitTestLocation::region): Deleted.
1361 * rendering/HitTestResult.h:
1362 * rendering/PaintInfo.h:
1363 (WebCore::PaintInfo::PaintInfo):
1364 * rendering/RenderBlock.cpp:
1365 (WebCore::RenderBlock::paint):
1366 (WebCore::RenderBlock::paintObject):
1367 (WebCore::RenderBlock::selectionGaps):
1368 (WebCore::RenderBlock::nodeAtPoint):
1369 * rendering/RenderBox.cpp:
1370 (WebCore::RenderBox::nodeAtPoint):
1371 (WebCore::RenderBox::paintBoxDecorations):
1372 (WebCore::RenderBox::pushContentsClip):
1373 * rendering/RenderBoxModelObject.cpp:
1374 (WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
1375 (WebCore::RenderBoxModelObject::paintFillLayerExtended):
1376 * rendering/RenderBoxModelObject.h:
1377 * rendering/RenderLayer.cpp:
1378 (WebCore::RenderLayer::paint):
1379 (WebCore::RenderLayer::paintLayer):
1380 (WebCore::RenderLayer::paintLayerContents):
1381 (WebCore::RenderLayer::paintLayerByApplyingTransform):
1382 (WebCore::RenderLayer::collectFragments):
1383 (WebCore::RenderLayer::updatePaintingInfoForFragments):
1384 (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
1385 (WebCore::RenderLayer::paintBackgroundForFragments):
1386 (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
1387 (WebCore::RenderLayer::paintOutlineForFragments):
1388 (WebCore::RenderLayer::paintMaskForFragments):
1389 (WebCore::RenderLayer::hitTest):
1390 (WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
1391 (WebCore::RenderLayer::hitTestLayer):
1392 (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
1393 (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
1394 (WebCore::RenderLayer::calculateClipRects):
1395 * rendering/RenderLayer.h:
1396 * rendering/RenderLayerBacking.cpp:
1397 (WebCore::RenderLayerBacking::updateCompositedBounds):
1398 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1399 * rendering/RenderLayerCompositor.cpp:
1400 (WebCore::RenderLayerCompositor::addToOverlapMap):
1401 (WebCore::RenderLayerCompositor::clippedByAncestor):
1402 * rendering/RenderObject.cpp:
1403 (WebCore::RenderObject::currentRenderNamedFlowFragment):
1404 * rendering/RenderObject.h:
1405 * rendering/RenderReplaced.cpp:
1406 (WebCore::RenderReplaced::shouldPaint):
1407 * rendering/RenderReplica.cpp:
1408 (WebCore::RenderReplica::paint):
1409 * rendering/RenderTable.cpp:
1410 (WebCore::RenderTable::nodeAtPoint):
1411 * rendering/RenderTableSection.cpp:
1412 (WebCore::RenderTableSection::nodeAtPoint):
1413 * rendering/RenderTreeAsText.cpp:
1414 (WebCore::writeLayers):
1415 * rendering/RootInlineBox.cpp:
1416 (WebCore::RootInlineBox::paint):
1417 * rendering/svg/RenderSVGRoot.cpp:
1418 (WebCore::RenderSVGRoot::paintReplaced):
1420 2014-05-16 Kiran <kiran.guduru@samsung.com>
1422 RTCDtmfSender default values need to be updated.
1423 https://bugs.webkit.org/show_bug.cgi?id=132952
1425 Reviewed by Eric Carlson.
1427 The default ToneDuration and ToneGap values are modified in the updated spec.
1428 So these values need to be updated.
1430 Test: fast/mediastream/RTCPeerConnection-dtmf.html.
1432 * Modules/mediastream/RTCDTMFSender.cpp:
1434 2014-05-15 Daniel Bates <dabates@apple.com>
1436 Attempt to fix the Apple Mavericks Release, Apple MountainLion Release,
1437 Apple MountainLion Release (32-bit Build), EFL, and GTK builds following
1438 <http://trac.webkit.org/changeset/168921> (https://bugs.webkit.org/show_bug.cgi?id=132669)
1440 * dom/ContainerNode.cpp: Include SVGElement.h for the definition of Node::hasTagName(const SVGQualifiedName&).
1442 2014-05-15 Daniel Bates <dabates@apple.com>
1444 ASSERT_NOT_REACHED() in DocumentOrderedMap::get() when removing SVG subtree
1445 https://bugs.webkit.org/show_bug.cgi?id=132669
1446 <rdar://problem/14931432>
1448 Reviewed by Brent Fulgham and Ryosuke Niwa.
1450 Fixes an assertion failure when removing an SVG element with a duplicate id.
1452 When removing an SVG element with id A we synchronously instruct each element that references A
1453 to find the first element with id A, call this N, from the document root and register itself to
1454 either receive subsequent notifications from N (say, there is another element with id A) or as
1455 waiting for an element with id A (say, N = nullptr; => we removed the last element with id A from
1456 the document). Because the elements that reference A perform this operation synchronously when
1457 removing an element they consult an transient state of the DocumentOrderedMap when querying for the
1460 Without loss of generality, let E, E_1, E_2, and E_3 be elements, where E_1, E_2, E_3 are children
1461 of E in that order and E_1.id = E_2.id = A and E_3.href = #A (that is, it references an element
1462 with id A). Suppose we remove E then we remove E_1, update DocumentOrderedMap to decrement its count
1463 for id A, and notify E_3 to look for an element with id A. This leads to an assertion failure since
1464 DocumentOrderedMap expects to find an element with id A, E_2, but cannot find such an element when
1465 traversing from the document root because E was unlinked from the document root (i.e. E_2 is in a
1468 Tests: svg/custom/change-id-of-use-during-removal.html
1469 svg/custom/remove-subtree-including-path-with-duplicate-id-referenced-by-later-textpath.html
1470 svg/custom/remove-subtree-including-text-with-duplicate-id-referenced-by-later-tref.html
1471 svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-earlier-use.html
1472 svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-animate.html
1473 svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-feimage.html
1474 svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-mpath.html
1475 svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-use.html
1476 svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-use2.html
1477 svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-use-in-different-subtree.html
1478 svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-use-with-duplicate-id-in-different-subtree.html
1479 svg/custom/remove-use-with-duplicate-id-referenced-by-later-use.html
1481 * dom/ContainerNode.cpp:
1482 (WebCore::ContainerNode::removeChild): Call SVGDocumentExtensions::rebuildElements() after we remove
1483 a DOM subtree so that applicable SVG elements can update their referenced element when the DocumentOrderedMap
1484 is in a stable-state.
1485 (WebCore::ContainerNode::removeChildren): Ditto.
1486 * svg/SVGDocumentExtensions.cpp:
1487 (WebCore::SVGDocumentExtensions::rebuildElements): Added; notifies SVG elements that their href attribute
1488 changed so that they query the DocumentOrderedMap for the element they reference by id in their href attribute.
1489 (WebCore::SVGDocumentExtensions::clearTargetDependencies): Added; Called from removing
1490 an SVG element S from the DOM. Appends all elements that reference the id of S to the end of a Vector of
1491 elements to be rebuilt (when SVGDocumentExtensions::rebuildElements() is called) and notifies these elements
1492 that have been marked to be rebuilt so that they can invalidate their state (e.g. stop animating).
1493 (WebCore::SVGDocumentExtensions::rebuildAllElementReferencesForTarget): Changed to take its argument by reference
1494 (since it's always non-null) and simplified logic to synchronously notify SVG updates that their referenced element
1495 may have changed. Calling SVGElement::svgAttributeChanged() on an element E should at most remove the dependencies
1497 * svg/SVGDocumentExtensions.h:
1498 * svg/SVGElement.cpp:
1499 (WebCore::SVGElement::~SVGElement): Substitute "*this" for "this" as SVGDocumentExtensions::rebuildAllElementReferencesForTarget()
1500 now takes a reference instead of a pointer.
1501 (WebCore::SVGElement::removedFrom): Modified to call SVGDocumentExtensions::clearTargetDependencies().
1502 (WebCore::SVGElement::attributeChanged): Substitute "*this" for "this" as SVGDocumentExtensions::rebuildAllElementReferencesForTarget()
1503 now takes a reference instead of a pointer.
1505 (WebCore::SVGElement::callClearTarget): Added; calls through to private virtual SVGElement::clearTarget().
1506 (WebCore::SVGElement::clearTarget): Added.
1507 * svg/SVGTRefElement.cpp:
1508 (WebCore::SVGTRefElement::clearTarget): Added.
1509 * svg/SVGTRefElement.h:
1510 * svg/animation/SVGSMILElement.cpp:
1511 (WebCore::SVGSMILElement::clearTarget): Added.
1512 * svg/animation/SVGSMILElement.h:
1514 2014-05-15 Simon Fraser <simon.fraser@apple.com>
1516 [iOS WK2] When zoomed, fixed elements jump at the start of a scroll, and jump back at the end.
1517 https://bugs.webkit.org/show_bug.cgi?id=132978
1518 <rdar://problem/16894428>
1520 Reviewed by Benjamin Poulain.
1522 This was the actual cause of the bug; r168560 changed the rect passed in here
1523 to be the customFixedPositionRect rather than the unobscured rect, but we
1524 used it to call FrameView::rectForViewportConstrainedObjects() which gave back
1525 another bogus rect. So just use the rect passed in.
1527 * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
1528 (WebCore::ScrollingTreeScrollingNodeIOS::updateLayersAfterViewportChange):
1530 2014-05-15 Daniel Bates <dabates@apple.com>
1532 SVG element may reference arbitrary DOM element before running its insertion logic
1533 https://bugs.webkit.org/show_bug.cgi?id=132757
1534 <rdar://problem/15703817>
1536 Reviewed by Ryosuke Niwa.
1538 Fixes an issue where an SVG element may reference an arbitrary DOM element e before e finished being
1539 inserted in the tree.
1541 Currently when an SVG element A is inserted into a document we use document.getElementById() to find the
1542 element B it references (if any). If A is inserted before B and B has the same id as a later element in
1543 the document then A can find B before B is notified that its been inserted into the document (i.e. before
1544 Element::insertedFrom() is called on B). Instead, A should call document.getElementById() only after
1545 cessation of the insertion operation that inserted it to ensure that all inserted nodes (including B)
1546 processed their insertion-specific logic.
1548 Tests: svg/custom/reparent-animate-element.html
1549 svg/custom/reparent-feimage-element.html
1550 svg/custom/reparent-mpath-element.html
1551 svg/custom/reparent-textpath-element.html
1552 svg/custom/reparent-tref-element.html
1553 svg/custom/reparent-use-element.html
1555 * svg/SVGFEImageElement.cpp:
1556 (WebCore::SVGFEImageElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
1557 we are called back to resolve our target element (i.e. call SVGFEImageElement::buildPendingResources())
1558 after the subtree we're in is inserted.
1559 (WebCore::SVGFEImageElement::didNotifySubtreeInsertions): Added; turns around and calls SVGFEImageElement::buildPendingResources().
1560 * svg/SVGFEImageElement.h:
1561 * svg/SVGMPathElement.cpp:
1562 (WebCore::SVGMPathElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
1563 we are called back to resolve our target element (i.e. call SVGMPathElement::buildPendingResources())
1564 after the subtree we're in is inserted.
1565 (WebCore::SVGMPathElement::didNotifySubtreeInsertions): Added; turns around and calls SVGMPathElement::buildPendingResources().
1566 * svg/SVGMPathElement.h:
1567 * svg/SVGTRefElement.cpp:
1568 (WebCore::SVGTRefElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
1569 we are called back to resolve our target element (i.e. call SVGTRefElement::buildPendingResources())
1570 after the subtree we're in is inserted.
1571 (WebCore::SVGTRefElement::didNotifySubtreeInsertions): Added; turns around and calls SVGTRefElement::buildPendingResources().
1572 * svg/SVGTRefElement.h:
1573 * svg/SVGTextPathElement.cpp:
1574 (WebCore::SVGTextPathElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
1575 we are called back to resolve our target element (i.e. call SVGTextPathElement::buildPendingResources())
1576 after the subtree we're in is inserted.
1577 (WebCore::SVGTextPathElement::didNotifySubtreeInsertions): Added; turns around and calls SVGTextPathElement::buildPendingResources().
1578 * svg/SVGTextPathElement.h:
1579 * svg/SVGUseElement.cpp:
1580 (WebCore::SVGUseElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
1581 we are called back to resolve our target element (i.e. call SVGUseElement::buildPendingResources()) after its subtree is
1583 (WebCore::SVGUseElement::didNotifySubtreeInsertions): Added; turns around and calls SVGUseElement::buildPendingResources().
1584 * svg/SVGUseElement.h:
1585 * svg/animation/SVGSMILElement.cpp:
1586 (WebCore::SVGSMILElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
1587 we are called back to resolve our target element (i.e. call SVGSMILElement::buildPendingResources())
1588 after the subtree we're in is inserted.
1589 (WebCore::SVGSMILElement::didNotifySubtreeInsertions): Added; turns around and calls SVGSMILElement::buildPendingResources().
1590 * svg/animation/SVGSMILElement.h:
1592 2014-05-15 Mark Hahnenberg <mhahnenberg@apple.com>
1594 JSDOMWindow should not claim HasImpureGetOwnPropertySlot
1595 https://bugs.webkit.org/show_bug.cgi?id=132918
1597 Reviewed by Geoffrey Garen.
1599 Tests: js/cached-window-properties.html
1600 js/cached-window-prototype-properties.html
1602 We now correctly handle the impurity of JSDOMWindow's custom getOwnPropertySlot without needing the
1603 blanket HasImpureGetOwnPropertySlot. We do this through the use of watchpoints and by explicitly forbidding
1604 any caching beyond a certain point using PropertySlot::disableCaching. Getting rid of this flag will allow
1605 us to cache many properties/methods on both the JSDOMWindow and its prototype, which are very commonly used
1608 * bindings/js/JSDOMWindowCustom.cpp:
1609 (WebCore::JSDOMWindow::getOwnPropertySlot):
1610 * bindings/scripts/CodeGeneratorJS.pm:
1611 (HasComplexGetOwnProperty):
1612 (InterfaceRequiresAttributesOnInstance):
1613 (InstanceOverridesGetOwnPropertySlot):
1616 2014-05-15 Alexey Proskuryakov <ap@apple.com>
1618 NetworkProcess crashes at ResourceHandle::continueDidReceiveResponse
1619 https://bugs.webkit.org/show_bug.cgi?id=132966
1620 <rdar://problem/16373694>
1622 Reviewed by Brady Eidson.
1624 Covered by many fast/files tests.
1626 * platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::continueDidReceiveResponse):
1627 * platform/network/BlobResourceHandle.h:
1628 * platform/network/ResourceHandle.h:
1629 Don't call delegate's continueDidReceiveResponse when loading a blob:// URL,
1630 the delegate is null. On the Mac, we used to lazily create it, which was also wrong,
1631 but at least not observable.
1633 2014-05-15 Commit Queue <commit-queue@webkit.org>
1635 Unreviewed, rolling out r168899.
1636 https://bugs.webkit.org/show_bug.cgi?id=132965
1638 Broke some compositing regions tests on Mavericks (Requested
1639 by mihnea___ on #webkit).
1643 "[CSS Regions] Reduce the RenderRegion invasiveness in
1645 https://bugs.webkit.org/show_bug.cgi?id=132121
1646 http://trac.webkit.org/changeset/168899
1648 2014-05-15 Alex Christensen <achristensen@webkit.org>
1650 Add pointer lock to features without enabling it.
1651 https://bugs.webkit.org/show_bug.cgi?id=132961
1653 Reviewed by Sam Weinig.
1655 * Configurations/FeatureDefines.xcconfig:
1656 Added ENABLE_POINTER_LOCK to list of features.
1658 Added linker symbols which differ with pointer lock enabled.
1659 * WebCore.xcodeproj/project.pbxproj:
1660 Added PointerLockController.cpp to build.
1662 2014-05-15 Mark Hahnenberg <mhahnenberg@apple.com>
1664 Move subframe name getter lookup later in JSDOMWindow::getOwnPropertySlot
1665 https://bugs.webkit.org/show_bug.cgi?id=132922
1667 Reviewed by Geoffrey Garen.
1671 In JSDOMWindow::getOwnPropertySlot, we currently look for the property on the JSDOMWindow,
1672 then we search the window's subframes for name getters, then we look in the window's prototype
1673 chain. Apparently we were doing the lookup in this order to be compatible with Mozilla, but
1674 Mozilla no longer implements this behavior. Instead, they do the lookup on the prototype before
1675 looking for subframe name getters. We should change this to match Mozilla. This has the convenient
1676 side effect of allowing us to cache lookups in the window's prototype chain.
1678 * bindings/js/JSDOMWindowCustom.cpp:
1679 (WebCore::JSDOMWindow::getOwnPropertySlot):
1681 2014-05-15 Simon Fraser <simon.fraser@apple.com>
1683 [UI-side compositing] Fix copying animations between layers, and pausing them
1684 https://bugs.webkit.org/show_bug.cgi?id=132943
1685 <rdar://problem/16906369&16906541>
1687 Reviewed by Tim Horton.
1689 Pass the animation key back to animationStarted(), though this isn't used
1690 when animations are running in-process.
1692 * platform/graphics/ca/PlatformCALayer.h:
1693 * platform/graphics/ca/mac/PlatformCALayerMac.h:
1694 * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1695 (-[WebAnimationDelegate animationDidStart:]):
1696 (PlatformCALayerMac::animationStarted):
1697 * platform/graphics/ca/win/PlatformCALayerWin.cpp:
1698 (PlatformCALayerWin::animationStarted):
1699 * platform/graphics/ca/win/PlatformCALayerWin.h:
1701 2014-05-15 Andrei Bucur <abucur@adobe.com>
1703 [CSS Regions] Reduce the RenderRegion invasiveness in rendering code
1704 https://bugs.webkit.org/show_bug.cgi?id=132121
1706 Reviewed by Antti Koivisto.
1708 Remove the RenderRegion / RenderNamedFlowFragment parameters and fields from
1709 the painting / hit testing data structures and use a stateful approach to
1710 correctly handle regions.
1712 When painting or hit testing, the current flow thread is saved along the current
1713 region. They are accessed through the |currentRenderNamedFlowFragment| helper
1714 method on RenderObject or RenderLayer.
1716 The patch also changes a bunch of 0s to nullptrs.
1718 Tests: No new tests, no functional change.
1720 * html/shadow/MediaControlElements.cpp:
1721 (WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
1722 * rendering/HitTestLocation.cpp:
1723 (WebCore::HitTestLocation::HitTestLocation):
1724 (WebCore::HitTestLocation::operator=):
1725 * rendering/HitTestLocation.h:
1726 (WebCore::HitTestLocation::region): Deleted.
1727 * rendering/HitTestResult.h:
1728 * rendering/PaintInfo.h:
1729 (WebCore::PaintInfo::PaintInfo):
1730 * rendering/RenderBlock.cpp:
1731 (WebCore::RenderBlock::paint):
1732 (WebCore::RenderBlock::paintObject):
1733 (WebCore::RenderBlock::selectionGaps):
1734 (WebCore::RenderBlock::nodeAtPoint):
1735 * rendering/RenderBox.cpp:
1736 (WebCore::RenderBox::nodeAtPoint):
1737 (WebCore::RenderBox::paintBoxDecorations):
1738 (WebCore::RenderBox::pushContentsClip):
1739 * rendering/RenderBoxModelObject.cpp:
1740 (WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
1741 (WebCore::RenderBoxModelObject::paintFillLayerExtended):
1742 * rendering/RenderBoxModelObject.h:
1743 * rendering/RenderLayer.cpp:
1744 (WebCore::RenderLayer::paint):
1745 (WebCore::RenderLayer::paintLayer):
1746 (WebCore::RenderLayer::paintLayerContents):
1747 (WebCore::RenderLayer::paintLayerByApplyingTransform):
1748 (WebCore::RenderLayer::collectFragments):
1749 (WebCore::RenderLayer::updatePaintingInfoForFragments):
1750 (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
1751 (WebCore::RenderLayer::paintBackgroundForFragments):
1752 (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
1753 (WebCore::RenderLayer::paintOutlineForFragments):
1754 (WebCore::RenderLayer::paintMaskForFragments):
1755 (WebCore::RenderLayer::hitTest):
1756 (WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
1757 (WebCore::RenderLayer::hitTestLayer):
1758 (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
1759 (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
1760 (WebCore::RenderLayer::calculateClipRects):
1761 * rendering/RenderLayer.h:
1762 * rendering/RenderLayerBacking.cpp:
1763 (WebCore::RenderLayerBacking::updateCompositedBounds):
1764 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1765 * rendering/RenderLayerCompositor.cpp:
1766 (WebCore::RenderLayerCompositor::addToOverlapMap):
1767 (WebCore::RenderLayerCompositor::clippedByAncestor):
1768 * rendering/RenderObject.cpp:
1769 (WebCore::RenderObject::currentRenderNamedFlowFragment):
1770 * rendering/RenderObject.h:
1771 * rendering/RenderReplaced.cpp:
1772 (WebCore::RenderReplaced::shouldPaint):
1773 * rendering/RenderReplica.cpp:
1774 (WebCore::RenderReplica::paint):
1775 * rendering/RenderTable.cpp:
1776 (WebCore::RenderTable::nodeAtPoint):
1777 * rendering/RenderTableSection.cpp:
1778 (WebCore::RenderTableSection::nodeAtPoint):
1779 * rendering/RenderTreeAsText.cpp:
1780 (WebCore::writeLayers):
1781 * rendering/RootInlineBox.cpp:
1782 (WebCore::RootInlineBox::paint):
1783 * rendering/svg/RenderSVGRoot.cpp:
1784 (WebCore::RenderSVGRoot::paintReplaced):
1786 2014-05-14 Simon Fraser <simon.fraser@apple.com>
1788 Clean up "has non-zero begin time" terminology in animations
1789 https://bugs.webkit.org/show_bug.cgi?id=132942
1791 Reviewed by Tim Horton.
1793 Change the "non-zero beginTime" terminology in the platform CA animations
1794 code to "explicit beginTime": this flag really means that we explicitly set
1795 the beginTime of the animation, rather than let CA set the beginTime when
1796 committing the animation. This flag is used for animations with negative
1797 delay, and when pausing.
1799 The WKNonZeroBeginTimeFlag key was spread across PlatformCALayerMac and PlatformCAAnimationMac,
1800 so hide it behind getter/setter functions.
1802 Remove lots of m_layer.get() in PlatformCAAnimationMac.
1804 * platform/graphics/ca/mac/PlatformCAAnimationMac.h:
1805 * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
1806 (WebCore::hasExplicitBeginTime):
1807 (WebCore::setHasExplicitBeginTime):
1808 (PlatformCAAnimationMac::copy):
1809 (PlatformCAAnimationMac::keyPath):
1810 (PlatformCAAnimationMac::beginTime):
1811 (PlatformCAAnimationMac::setBeginTime):
1812 (PlatformCAAnimationMac::duration):
1813 (PlatformCAAnimationMac::setDuration):
1814 (PlatformCAAnimationMac::speed):
1815 (PlatformCAAnimationMac::setSpeed):
1816 (PlatformCAAnimationMac::timeOffset):
1817 (PlatformCAAnimationMac::setTimeOffset):
1818 (PlatformCAAnimationMac::repeatCount):
1819 (PlatformCAAnimationMac::setRepeatCount):
1820 (PlatformCAAnimationMac::autoreverses):
1821 (PlatformCAAnimationMac::setAutoreverses):
1822 (PlatformCAAnimationMac::fillMode):
1823 (PlatformCAAnimationMac::setFillMode):
1824 (PlatformCAAnimationMac::setTimingFunction):
1825 (PlatformCAAnimationMac::copyTimingFunctionFrom):
1826 (PlatformCAAnimationMac::isRemovedOnCompletion):
1827 (PlatformCAAnimationMac::setRemovedOnCompletion):
1828 (PlatformCAAnimationMac::isAdditive):
1829 (PlatformCAAnimationMac::setAdditive):
1830 (PlatformCAAnimationMac::valueFunction):
1831 (PlatformCAAnimationMac::setValueFunction):
1832 (hasNonZeroBeginTimeFlag): Deleted.
1833 (setNonZeroBeginTimeFlag): Deleted.
1834 * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1835 (-[WebAnimationDelegate animationDidStart:]):
1837 2014-05-15 Carlos Garcia Campos <cgarcia@igalia.com>
1839 [GTK] Compile all installed resources as GResources
1840 https://bugs.webkit.org/show_bug.cgi?id=131099
1842 Reviewed by Philippe Normand.
1844 * PlatformGTK.cmake: Do not install the resources.
1845 * platform/audio/gtk/AudioBusGtk.cpp:
1846 (WebCore::AudioBus::loadPlatformResource): Load the audio resource
1847 from GResources and use createBusFromInMemoryAudioFile().
1848 * platform/graphics/Image.h: Remove unsued function loadPlatformThemeIcon.
1849 * platform/graphics/gtk/ImageGtk.cpp:
1850 (WebCore::loadImageFromGResource): Load the given icon name from GResources.
1851 (WebCore::loadResourceSharedBuffer): Use char* instead of CString.
1852 (WebCore::loadMissingImageIconFromTheme): Try to load the missing
1853 icon from the current GTK icon theme.
1854 (WebCore::Image::loadPlatformResource): Call
1855 loadMissingImageIconFromTheme for missing icon or
1856 loadImageFromGResource for any other icon name.
1857 (WebCore::getPathToImageResource): Deleted.
1858 (WebCore::getThemeIconFileName): Deleted.
1859 (WebCore::loadImageFromFile): Deleted.
1860 (WebCore::Image::loadPlatformThemeIcon): Deleted.
1862 2014-05-14 Beth Dakin <bdakin@apple.com>
1864 Tiled scrolling indicator needs to take topContentInset into account
1865 https://bugs.webkit.org/show_bug.cgi?id=132940
1867 Reviewed by Simon Fraser.
1869 The tiled scrolling indicator needs to move down by the value of the
1870 topContentInset. This patch makes that happen by caching the topContentInset in
1871 the TileController. This does feel a little silly since there is already a
1872 function called setTiledScrollingIndicatorPosition() on TiledBacking. However, it
1873 was often the case that calling that function had no effect because m_coverageMap
1874 had not yet been created, and then the information was lost. So instead, we cache
1877 Set TiledBacking’s copy of topContentInset whenever it changes for the FrameView.
1878 * page/FrameView.cpp:
1879 (WebCore::FrameView::topContentInsetDidChange):
1881 New function to set the inset. Use the inset to position the coverage map.
1882 * platform/graphics/TiledBacking.h:
1883 * platform/graphics/ca/mac/TileController.h:
1884 * platform/graphics/ca/mac/TileController.mm:
1885 (WebCore::TileController::TileController):
1886 (WebCore::TileController::setTopContentInset):
1888 When the coverage map is created, consult the value of the inset.
1889 * platform/graphics/ca/mac/TileCoverageMap.mm:
1890 (WebCore::TileCoverageMap::TileCoverageMap):
1892 Once the backing has been ensured, set the inset.
1893 * rendering/RenderLayerCompositor.cpp:
1894 (WebCore::RenderLayerCompositor::updateBacking):
1896 2014-05-14 Brent Fulgham <bfulgham@apple.com>
1898 Merge r1267628 from branch.
1899 <rdar://problem/15751219>
1901 Pratik Solanki <psolanki@apple.com>
1903 Reviewed by Simon Fraser.",
1905 TileController relied on the tiling mode in TileCache to determine if it should use low-res
1906 tiles when zooming. Unfortunately, sometimes the tiling mode gets set to Zooming even though
1907 it's actually a pan. Thus we can end up with blurry tiles. Fix this by adding a new flag on
1908 TileCache that controls this behavior and have UIKit set it only when we have an actual zoom
1911 * platform/ios/LegacyTileCache.h:
1912 (WebCore::LegacyTileCache::tileControllerShouldUseLowScaleTiles):
1913 (WebCore::LegacyTileCache::setTileControllerShouldUseLowScaleTiles):
1914 * platform/ios/LegacyTileCache.mm:
1915 (WebCore::LegacyTileCache::LegacyTileCache):
1916 * platform/ios/wak/WAKWindow.h:
1917 * platform/ios/wak/WAKWindow.mm:
1918 (-[WAKWindow setTileControllerShouldUseLowScaleTiles:]):
1919 * rendering/RenderLayerCompositor.cpp:
1920 (WebCore::RenderLayerCompositor::contentsScaleMultiplierForNewTiles):
1922 2014-05-14 Commit Queue <commit-queue@webkit.org>
1924 Unreviewed, rolling out r168750.
1925 https://bugs.webkit.org/show_bug.cgi?id=132935
1927 Caused repaint bugs (Requested by weinig on #webkit).
1931 "Text decorations do not contribute to visual overflow"
1932 https://bugs.webkit.org/show_bug.cgi?id=132773
1933 http://trac.webkit.org/changeset/168750
1935 2014-05-14 Simon Fraser <simon.fraser@apple.com>
1937 [New multicolumn] Spin in RenderMultiColumnSet::repaintFlowThreadContent()
1938 https://bugs.webkit.org/show_bug.cgi?id=132884
1940 Reviewed by Beth Dakin.
1942 On iOS, wikipedia pages can hang under RenderMultiColumnSet::repaintFlowThreadContent().
1943 It appears that computedColumnHeight is set to 0 in prepareForLayout, but layout never happens
1944 on the RenderMultiColumnSet in some cases, leaving the column height set to zero.
1945 This caused columnIndexAtOffset() to return bad values, which resulted in very long loops
1946 in repaintFlowThreadContent().
1948 This fix is a stop-gap.
1950 * rendering/RenderMultiColumnSet.cpp:
1951 (WebCore::RenderMultiColumnSet::columnIndexAtOffset):
1953 2014-05-14 Benjamin Poulain <bpoulain@apple.com>
1955 Remove FrameView::viewportConstrainedExtentRect, it is unused
1956 https://bugs.webkit.org/show_bug.cgi?id=132927
1958 Reviewed by Simon Fraser.
1960 * page/FrameView.cpp:
1961 (WebCore::FrameView::viewportConstrainedExtentRect): Deleted.
1963 Simon replaced this by viewportConstrainedVisibleContentRect, remove the old code.
1965 2014-05-14 Matthew Hanson <matthew_hanson@apple.com>
1967 Only define MAX_GRID_TRACK_REPETITIONS if CSS_GRID_LAYOUT is enabled.
1969 Reviewed by Dean Jackson.
1971 This was causing -Wunused-const-variable errors.
1973 * css/CSSParser.cpp: Add include guard.
1975 2014-05-14 Beth Dakin <bdakin@apple.com>
1977 Tile cache has way too many tiles when pinch-zoomed in
1978 https://bugs.webkit.org/show_bug.cgi?id=132929
1980 <rdar://problem/16527172>
1982 Reviewed by Benjamin Poulain.
1984 This patch makes the margin sizing functions return the set margin size scaled by
1985 the TileGrid's scale. We also need to get rid of the old notion we used to have
1986 that margin tiles might be allowed to have a different size than the other tiles.
1987 We don't want that. They should have the normal margin size, but they should
1988 affect the overall coverage area.
1990 Scale by the TileGrid's scale.
1991 * platform/graphics/ca/mac/TileController.mm:
1992 (WebCore::TileController::topMarginHeight):
1993 (WebCore::TileController::bottomMarginHeight):
1994 (WebCore::TileController::leftMarginWidth):
1995 (WebCore::TileController::rightMarginWidth):
1997 Get rid of adjustRectAtTileIndexForMargin() since we do not want to ever do this
1998 adjustment. Use tileSize instead of margin size for all sizing computations.
1999 * platform/graphics/ca/mac/TileGrid.h:
2000 * platform/graphics/ca/mac/TileGrid.mm:
2001 (WebCore::TileGrid::rectForTileIndex):
2002 (WebCore::TileGrid::getTileIndexRangeForRect):
2003 (WebCore::TileGrid::adjustRectAtTileIndexForMargin): Deleted.
2005 2014-05-14 Dean Jackson <dino@apple.com>
2007 [Mac] Search fields should not use centered look
2008 https://bugs.webkit.org/show_bug.cgi?id=132930
2009 <rdar://problem/16825842>
2011 Reviewed by Beth Dakin.
2013 We need to explicitly set the centeredLook property
2014 to NO on modern releases of Mac.
2016 * rendering/RenderThemeMac.mm: Declare a new private property and set it to NO.
2017 (WebCore::RenderThemeMac::search):
2019 2014-05-14 Zalan Bujtas <zalan@apple.com>
2021 Subpixel layout: Change Element.offset* client* scroll* return type to double.
2022 https://bugs.webkit.org/show_bug.cgi?id=132895
2024 Reviewed by Simon Fraser.
2026 This patch changes Element.offset*, Element.client* and Element.scroll* APIs return
2027 type from long to double to match the latest CSSOM View Module spec[1].
2028 Element.offset* and Element.client* do return subpixel values from now on.
2029 Element.scroll* still return integral values as the scrolling code hasn't adopted to subpixel rendering yet.
2031 subpixelCSSOMElementMetricsEnabled setting is added to be able to turn this feature on/off
2032 from WK2 preferences. It toggles the return value from subpixel to floored integral.
2033 It does not change layout/rendering behavior.
2035 Reference list of what other browsers do:
2036 IE: http://blogs.msdn.com/b/ie/archive/2012/02/17/sub-pixel-rendering-and-the-css-object-model.aspx
2037 Blink: http://www.chromestatus.com/features/5497402177880064
2038 Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=825607
2040 [1] http://www.w3.org/TR/2013/WD-cssom-view-20131217/
2042 Test: cssom/subpixel-offsetleft-top-width-height-values.html
2045 (WebCore::localZoomForRenderer):
2046 (WebCore::adjustForLocalZoom):
2047 (WebCore::convertToNonSubpixelValueIfNeeded):
2048 (WebCore::Element::offsetLeft):
2049 (WebCore::Element::offsetTop):
2050 (WebCore::Element::offsetWidth):
2051 (WebCore::Element::offsetHeight):
2052 (WebCore::Element::clientLeft):
2053 (WebCore::Element::clientTop):
2054 (WebCore::Element::clientWidth):
2055 (WebCore::Element::clientHeight):
2056 (WebCore::Element::scrollLeft):
2057 (WebCore::Element::scrollTop):
2058 (WebCore::Element::setScrollLeft):
2059 (WebCore::Element::setScrollTop):
2060 (WebCore::Element::scrollWidth):
2061 (WebCore::Element::scrollHeight):
2064 * html/HTMLBodyElement.cpp:
2065 (WebCore::adjustForZoom):
2066 (WebCore::HTMLBodyElement::scrollLeft):
2067 (WebCore::HTMLBodyElement::setScrollLeft):
2068 (WebCore::HTMLBodyElement::scrollTop):
2069 (WebCore::HTMLBodyElement::setScrollTop):
2070 (WebCore::HTMLBodyElement::scrollHeight):
2071 (WebCore::HTMLBodyElement::scrollWidth):
2072 * html/HTMLBodyElement.h:
2075 2014-05-14 Brady Eidson <beidson@apple.com>
2077 Implement NSSharingServiceDelegate method "transitionImageForShareItem"
2078 <rdar://problem/16878020> and https://bugs.webkit.org/show_bug.cgi?id=132911
2080 Reviewed by Tim Horton.
2083 * WebCore.xcodeproj/project.pbxproj:
2085 2014-05-14 Alex Christensen <achristensen@webkit.org>
2087 Another unreviewed build fix.
2089 * platform/network/mac/ResourceHandleMac.mm:
2090 (WebCore::ResourceHandle::getTimingData):
2091 Added necessary UNUSED_PARAMs.
2093 2014-05-14 Alex Christensen <achristensen@webkit.org>
2095 Unreviewed build fix after r168849.
2097 * platform/network/mac/ResourceHandleMac.mm:
2098 (WebCore::ResourceHandle::getTimingData):
2099 Protect use of timing data with ENABLE(WEB_TIMING).
2101 2014-05-14 Alex Christensen <achristensen@webkit.org>
2103 Refactor duplicate code in web timing.
2104 https://bugs.webkit.org/show_bug.cgi?id=132917
2106 Reviewed by Alexey Proskuryakov.
2108 * platform/network/ResourceHandle.h:
2109 Added getTimingData declaration.
2110 * platform/network/mac/ResourceHandleMac.mm:
2111 (WebCore::ResourceHandle::getTimingData):
2112 * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
2113 (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
2114 * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
2115 (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
2116 Moved duplicate code to ResourceHandle.
2118 2014-05-14 Alex Christensen <achristensen@webkit.org>
2120 Use references instead of pointers with ResourceLoadTiming.
2121 https://bugs.webkit.org/show_bug.cgi?id=132846
2123 Reviewed by Alexey Proskuryakov.
2126 Removed ResourceResponseBase::setResourceLoadTiming linker symbol.
2127 * inspector/InspectorResourceAgent.cpp:
2128 (WebCore::buildObjectForResourceResponse):
2129 * page/PerformanceResourceTiming.cpp:
2130 (WebCore::PerformanceResourceTiming::domainLookupStart):
2131 (WebCore::PerformanceResourceTiming::domainLookupEnd):
2132 (WebCore::PerformanceResourceTiming::connectStart):
2133 (WebCore::PerformanceResourceTiming::connectEnd):
2134 (WebCore::PerformanceResourceTiming::secureConnectionStart):
2135 (WebCore::PerformanceResourceTiming::requestStart):
2136 Use references instead of pointers.
2137 * page/PerformanceResourceTiming.h:
2138 Make an instance instead of a RefPtr.
2139 * page/PerformanceTiming.cpp:
2140 (WebCore::PerformanceTiming::domainLookupStart):
2141 (WebCore::PerformanceTiming::domainLookupEnd):
2142 (WebCore::PerformanceTiming::connectStart):
2143 (WebCore::PerformanceTiming::connectEnd):
2144 (WebCore::PerformanceTiming::secureConnectionStart):
2145 (WebCore::PerformanceTiming::requestStart):
2146 (WebCore::PerformanceTiming::responseStart):
2147 Check to see if the loader exists, then use ResourceLoadTiming reference.
2148 (WebCore::PerformanceTiming::resourceLoadTiming): Deleted.
2149 * page/PerformanceTiming.h:
2150 Removed resourceLoadTiming declaration.
2151 * platform/network/ResourceLoadTiming.h:
2152 (WebCore::ResourceLoadTiming::ResourceLoadTiming):
2153 (WebCore::ResourceLoadTiming::operator=):
2154 Replaced reference counting with copy constructors.
2155 (WebCore::ResourceLoadTiming::create): Deleted.
2156 (WebCore::ResourceLoadTiming::deepCopy): Deleted.
2157 * platform/network/ResourceResponseBase.cpp:
2158 (WebCore::ResourceResponseBase::adopt):
2159 (WebCore::ResourceResponseBase::copyData):
2160 (WebCore::ResourceResponseBase::resourceLoadTiming):
2161 (WebCore::ResourceResponseBase::setResourceLoadTiming):
2162 (WebCore::ResourceResponseBase::compare):
2163 * platform/network/ResourceResponseBase.h:
2164 * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
2165 (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
2166 * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
2167 (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
2168 * platform/network/soup/ResourceHandleSoup.cpp:
2169 (WebCore::ResourceHandle::didStartRequest):
2170 (WebCore::networkEventCallback):
2171 Use references instead of pointers.
2173 2014-05-14 Commit Queue <commit-queue@webkit.org>
2175 Unreviewed, rolling out r168837.
2176 https://bugs.webkit.org/show_bug.cgi?id=132913
2178 The patch added an assertion which fires on 6 tests (Requested
2183 "[CSS Regions] Add ASSERT to make sure using the flowThread
2184 cache does not return incorrect results"
2185 https://bugs.webkit.org/show_bug.cgi?id=132906
2186 http://trac.webkit.org/changeset/168837
2188 2014-05-13 Jon Honeycutt <jhoneycutt@apple.com>
2190 Revert "Don't dispatch 'beforeload' event inside FrameView::layout()",
2191 commit 84fe8cf6fbe8b5de9a06300ca3ef6d0ffc96948c, and associated
2194 "platform/mac/plugins/testplugin-onnew-onpaint.html failing after
2195 r168668", commit c17be3bf5127baf94310af4b4b9bf5a57d29aaf4
2196 "[Win] Unreviewed build fix after r168668.", commit
2197 4fa470ad12c38ee7d4c114541b6dd321181a8bc9
2199 The original merged patch appears to have caused a regression in
2200 fast/dom/HTMLObjectElement/object-as-frame.html.
2202 <https://bugs.webkit.org/show_bug.cgi?id=132886>
2204 Reviewed by Alexey Proskuryakov.
2208 (WebCore::Document::updateLayoutIgnorePendingStylesheets):
2210 * html/HTMLAppletElement.cpp:
2211 (WebCore::HTMLAppletElement::renderWidgetForJSBindings):
2212 * html/HTMLEmbedElement.cpp:
2213 (WebCore::HTMLEmbedElement::renderWidgetForJSBindings):
2214 * html/HTMLObjectElement.cpp:
2215 (WebCore::HTMLObjectElement::renderWidgetForJSBindings):
2216 * page/FrameView.cpp:
2217 (WebCore::FrameView::FrameView):
2218 (WebCore::FrameView::reset):
2219 (WebCore::FrameView::flushAnyPendingPostLayoutTasks):
2220 (WebCore::FrameView::performPostLayoutTasks):
2221 (WebCore::FrameView::updateEmbeddedObjectsTimerFired): Deleted.
2223 * testing/Internals.cpp:
2224 (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks): Deleted.
2225 * testing/Internals.h:
2226 * testing/Internals.idl:
2228 2014-05-14 Kiran <kiran.guduru@samsung.com>
2230 alidation for getUserMedia() errorCallback is missing.
2231 https://bugs.webkit.org/show_bug.cgi?id=132901
2233 Reviewed by Darin Adler.
2235 The patch adds the validation for getUserMedia errorCallBack
2236 and throws TypeMismatchError.
2238 Test: fast/mediastream/getusermedia.html
2240 * Modules/mediastream/NavigatorUserMedia.cpp:
2241 (WebCore::NavigatorUserMedia::webkitGetUserMedia):
2243 2014-05-14 Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com>
2245 Remove CSS_STICKY_POSITION guards
2246 https://bugs.webkit.org/show_bug.cgi?id=132676
2248 Reviewed by Simon Fraser.
2250 * Configurations/FeatureDefines.xcconfig:
2251 * css/CSSParser.cpp:
2252 (WebCore::isValidKeywordPropertyAndValue):
2253 * css/CSSPrimitiveValueMappings.h:
2254 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2255 (WebCore::CSSPrimitiveValue::operator EPosition):
2256 * css/CSSValueKeywords.in:
2257 * editing/EditingStyle.cpp:
2258 (WebCore::EditingStyle::convertPositionStyle):
2260 2014-05-14 Radu Stavila <stavila@adobe.com>
2262 [CSS Regions] Add ASSERT to make sure using the flowThread cache does not return incorrect results
2263 https://bugs.webkit.org/show_bug.cgi?id=132906
2265 Reviewed by Andrei Bucur.
2267 If flowThreadContainingBlock() is called on an object which is in a different
2268 flow thread than the one currently being laid out, this method will return an incorrect
2269 result. I added an assertion for that to make sure we catch and treat any such scenarios.
2271 No new tests required.
2273 * rendering/RenderObject.cpp:
2274 (WebCore::RenderObject::locateFlowThreadContainingBlockNoCache):
2275 (WebCore::RenderObject::locateFlowThreadContainingBlock):
2276 * rendering/RenderObject.h:
2278 2014-05-14 Andrei Bucur <abucur@adobe.com>
2280 [CSS Regions] Don't relayout when updating the region range unless necessary
2281 https://bugs.webkit.org/show_bug.cgi?id=132120
2283 Reviewed by Antti Koivisto.
2285 The patch reduces the cases when a relayout is made for boxes that change the region range.
2286 This lowers the amount of nested layouts in most cases and produces big layout speedups for trees
2287 without overhanging floats.
2289 Tests: Major performance improvement with speedups of 50-60% on:
2290 Layout/RegionsAuto.html, Layout/RegionsAutoMaxHeight.html and Layout/RegionsFixed.html
2292 * rendering/RenderBlock.cpp:
2293 (WebCore::RenderBlock::updateRegionRangeForBoxChild): Ask the child box if it needs a relayout
2294 in case its region range changes.
2295 * rendering/RenderBlockFlow.cpp:
2296 (WebCore::RenderBlockFlow::layoutBlockChild): It's not necessary to do two layouts here because
2297 there's no block direction position change between them for the child.
2298 (WebCore::RenderBlockFlow::needsLayoutAfterRegionRangeChange): If the block doesn't have floats
2299 or if it expands to enclose the floats it doesn't need to relayout after a region range chage.
2300 It's not possible for it to have a float inside overflow that must be repositioned using the new
2302 * rendering/RenderBlockFlow.h:
2303 * rendering/RenderBox.h:
2304 (WebCore::RenderBox::needsLayoutAfterRegionRangeChange): By default don't relayout after a region
2307 2014-05-14 Antti Koivisto <antti@apple.com>
2309 RuleData should ref the StyleRule
2310 https://bugs.webkit.org/show_bug.cgi?id=132865
2312 Reviewed by Andreas Kling.
2314 As a defensive move make RuleData ref the StyleRule.
2315 This adds some ref churn but the overall performance impact should be minimal.
2318 (WebCore::RuleData::rule):
2320 2014-05-14 Antti Koivisto <antti@apple.com>
2322 GIF animations don't restart after scrolling on iOS WebKit1
2323 https://bugs.webkit.org/show_bug.cgi?id=132900
2325 Reviewed by Andreas Kling.
2329 2014-05-13 Andrei Bucur <abucur@adobe.com>
2331 [CSS Regions] Assertion failure in some cases with inline blocks
2332 https://bugs.webkit.org/show_bug.cgi?id=132859
2334 Reviewed by Mihnea Ovidenie.
2336 The patch hardens the conditions when the region range caches are
2337 populated to avoid desynchronizations when objects move during layout.
2338 This is true especially in the case of the boxes found inside
2339 inline blocks, that get their range from the containing line.
2341 There is a new function |computedRegionRangeForBox| that will always
2342 return a region range for a box using a best effort algorithm. This should
2343 be used only when there's no need to cache region information.
2345 This change also allows better control over the lifecycle of the
2346 |RenderBoxRegionInfo| objects stored on the regions. We can now iterate
2347 over the full range of the box when cleaning up the region box info. The
2348 same applies for the width change detection function.
2350 Test: fast/regions/inline-block-shifted-region.html
2352 * rendering/RenderBlockLineLayout.cpp:
2353 (WebCore::RenderBlockFlow::updateRegionForLine): Don't set the containing
2354 region if the block doesn't have a range. The returned value would not
2355 be correctly clamped.
2356 * rendering/RenderBox.cpp:
2357 (WebCore::RenderBlock::hasRegionRangeInFlowThread):
2358 * rendering/RenderBox.h:
2359 * rendering/RenderFlowThread.cpp:
2360 (WebCore::RenderFlowThread::removeRenderBoxRegionInfo): Iterate only over
2361 the range of the box, not from the start of the region chain.
2362 (WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock): Same as
2364 (WebCore::RenderFlowThread::hasCachedRegionRangeForBox):
2365 (WebCore::RenderFlowThread::getRegionRangeForBoxFromCachedInfo):
2366 (WebCore::RenderFlowThread::getRegionRangeForBox):
2367 (WebCore::RenderFlowThread::computedRegionRangeForBox): Best effort function
2368 to determine the range of a box. It will always return something as long
2369 as the flow thread has regions.
2370 (WebCore::RenderFlowThread::objectShouldFragmentInFlowRegion): Use the new function
2371 to determine the range.
2372 * rendering/RenderFlowThread.h:
2373 * rendering/RenderNamedFlowThread.cpp:
2374 (WebCore::RenderNamedFlowThread::absoluteQuadsForBox): Use the new function to determine
2377 2014-05-13 Simon Fraser <simon.fraser@apple.com>
2379 Fix "ASSERTION FAILED: m_representation == PlatformLayerRepresentation" with UI-side compositing
2380 https://bugs.webkit.org/show_bug.cgi?id=132899
2382 Reviewed by Beth Dakin.
2388 2014-05-13 Hans Muller <hmuller@adobe.com>
2390 [CSS Shapes] line height grows around polygon and incorrectly causes text to wrap to next line
2391 https://bugs.webkit.org/show_bug.cgi?id=131622
2393 Reviewed by Bem Jones-Bey.
2395 Corrected an earlier PolygonShape fix https://bugs.webkit.org/show_bug.cgi?id=132132
2396 When the top or bottom of a layout line is coincident with a polygon edge vertex, we
2397 only consider it an intersection if the edge extends into the line.
2399 Test: fast/shapes/shape-outside-floats/shape-outside-edge-case.html
2401 * rendering/shapes/PolygonShape.cpp:
2402 (WebCore::OffsetPolygonEdge::clippedEdgeXRange):
2404 2014-05-13 Beth Dakin <bdakin@apple.com>
2406 m_layerForOverhangAreas is sometimes not positioned correctly when topContentInset
2408 https://bugs.webkit.org/show_bug.cgi?id=132898
2410 <rdar://problem/16644710>
2412 Reviewed by Anders Carlsson.
2414 This function is called whenever the topContentInset changes, so use it as an
2415 opportunity to ensure that m_layerForOverhangAreas has been positioned correctly.
2416 * rendering/RenderLayerCompositor.cpp:
2417 (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
2419 Everyone gets an anchor point!
2420 (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
2422 2014-05-13 Dean Jackson <dino@apple.com>
2424 Attempted build fix after https://bugs.webkit.org/show_bug.cgi?id=132891
2426 * page/PageDebuggable.cpp:
2428 2014-05-13 Timothy Hatcher <timothy@apple.com>
2430 Force developerExtrasEnabled when a remote Inspector client connects.
2432 https://bugs.webkit.org/show_bug.cgi?id=132891
2434 Reviewed by Joseph Pecoraro.
2436 * page/PageDebuggable.cpp:
2437 (WebCore::PageDebuggable::PageDebuggable): Initialize m_forcedDeveloperExtrasEnabled to false.
2438 (WebCore::PageDebuggable::connect): Set m_forcedDeveloperExtrasEnabled if the setting is changed.
2439 (WebCore::PageDebuggable::disconnect): Switch developerExtrasEnabled back to false
2440 if m_forcedDeveloperExtrasEnabled is true.
2441 * page/PageDebuggable.h: Added m_forcedDeveloperExtrasEnabled.
2443 2014-05-13 Beth Dakin <bdakin@apple.com>
2445 REGRESSION (topContentInset): Searching through Facebook Messenger's chat causes
2446 scrolling in News Feed
2447 https://bugs.webkit.org/show_bug.cgi?id=132889
2449 <rdar://problem/16715716>
2451 Reviewed by Simon Fraser.
2453 First of all, scrollOffsetRelativeToDocument() was very poorly named. This patch
2454 re-names it to the much more accurate documentScrollOffsetRelativeToViewOrigin().
2455 Re-naming it makes it clear that ONE call site was not getting the right offset.
2456 That call site does not want to know the document’s position relative to the view
2457 origin, but rather it wants to know the Document’s position relative to the
2463 Use newly re-named documentScrollPositionRelativeToViewOrigin().
2464 * page/FrameView.cpp:
2465 (WebCore::FrameView::convertToRenderer):
2466 * platform/ScrollView.cpp:
2467 (WebCore::ScrollView::documentScrollOffsetRelativeToViewOrigin):
2468 (WebCore::ScrollView::documentScrollPositionRelativeToViewOrigin):
2469 (WebCore::ScrollView::documentScrollOffsetRelativeToScrollableAreaOrigin):
2470 (WebCore::ScrollView::rootViewToContents):
2471 (WebCore::ScrollView::windowToContents):
2472 (WebCore::ScrollView::scrollOffsetRelativeToDocument): Deleted.
2473 (WebCore::ScrollView::scrollPositionRelativeToDocument): Deleted.
2474 * platform/ScrollView.h:
2476 THIS is the spot that needs the new function,
2477 documentScrollOffsetRelativeToScrollableAreaOrigin()()
2478 * rendering/RenderLayer.cpp:
2479 (WebCore::RenderLayer::scrollRectToVisible):
2481 2014-05-13 Dean Jackson <dino@apple.com>
2483 [iOS] Page scale update messages for media controls should only fire at the end of zooming
2484 https://bugs.webkit.org/show_bug.cgi?id=132857
2485 <rdar://problem/16631009>
2487 Reviewed by Simon Fraser.
2489 As the user was zooming, the media controls that responded
2490 to the page scale (and resized themselves) would do so
2491 slightly out of sync with the screen refreshes, and it looked
2492 terrible. They really only need to get told at the end
2493 of the zoom that they need to relayout.
2495 Allow setPageScaleFactor to accept another parameter
2496 that indicates if the change is stable. That way, changes
2497 during a user triggers zoom gesture can be ignored for
2500 * WebCore.exp.in: Page::setPageScaleFactor takes a new parameter.
2502 (WebCore::Document::pageScaleFactorChangedAndStable): Renamed from pageScaleFactorChanged.
2503 (WebCore::Document::pageScaleFactorChanged): Deleted.
2506 (WebCore::Page::setPageScaleFactor): Accepts a new inStableState parameter,
2507 and tells the main frame that the scale factor has changed if it's stable.
2510 2014-05-13 Eric Carlson <eric.carlson@apple.com>
2512 Unreviewed build fix after r168755.
2514 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2515 (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
2517 2014-05-13 Eric Carlson <eric.carlson@apple.com>
2519 [Mac] hasVideo should return true when video is ready to display
2520 https://bugs.webkit.org/show_bug.cgi?id=132885
2522 Reviewed by Jer Noble.
2524 * html/HTMLMediaElement.cpp:
2525 (WebCore::HTMLMediaElement::parseAttribute):
2527 * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
2528 (WebCore::AudioTrackPrivateAVFObjC::resetPropertiesFromTrack): Don't change the
2529 enabled state of the AVPlayerItemTrack during setup.
2531 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2532 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2533 (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize
2534 m_cachedIsReadyForDisplay.
2535 (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Remove "enabled" KVO observers.
2536 (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Observe "readyForDisplay"
2537 change notifications.
2538 (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): Remove for "readyForDisplay"
2540 (WebCore::MediaPlayerPrivateAVFoundationObjC::hasAvailableVideoFrame): Return cached readyForDisplay
2541 state instead of polling every time.
2542 (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Call setHasVideo(true) if the
2543 player layer is ready for display.
2544 (WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks): Update logging.
2545 (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks): Ditto.
2546 (WebCore::MediaPlayerPrivateAVFoundationObjC::firstFrameAvailableDidChange): Cache readyForDisplay
2547 state, call tracksChanged() if we haven't seen a video track yet.
2548 (WebCore::MediaPlayerPrivateAVFoundationObjC::trackEnabledDidChange): New.
2549 (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive): Correct logging.
2550 (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange): Remove old "enabled" listeners
2551 before release tracks, add new ones to new tracks.
2552 (WebCore::assetTrackMetadataKeyNames): Add "enabled" to the list of properties we require to
2553 be loaded before announcing that metadata has loaded.
2554 (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): Observe
2555 "readyForDisplay" and "enabled".
2557 * platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp:
2558 (WebCore::VideoTrackPrivateAVFObjC::resetPropertiesFromTrack): Don't change the
2559 enabled state of the AVPlayerItemTrack during setup.
2561 2014-05-13 Myles C. Maxfield <litherum@gmail.com>
2563 Text decorations do not contribute to visual overflow
2564 https://bugs.webkit.org/show_bug.cgi?id=132773
2566 Reviewed by Darin Adler.
2568 Tests: fast/css3-text/css3-text-decoration/repaint/underline-outside-of-layout-rect.html
2570 * rendering/InlineTextBox.cpp:
2571 (WebCore::textDecorationStrokeThickness): Refactor into a common function
2572 (WebCore::wavyOffsetFromDecoration): Ditto
2573 (WebCore::InlineTextBox::extendVerticalVisualOverflowForDecorations): Given
2574 vertical overflow bounds, possibly extend those to include location of
2576 (WebCore::InlineTextBox::paintDecoration): Use refactored functions.
2577 * rendering/InlineTextBox.h: Function signature
2578 * rendering/RenderBlockLineLayout.cpp:
2579 (WebCore::setLogicalWidthForTextRun): Call extendVerticalVisualOverflowForDecorations()
2580 * rendering/style/RenderStyle.cpp:
2581 (WebCore::RenderStyle::changeAffectsVisualOverflow): Inspects shadows and text decorations
2582 (WebCore::RenderStyle::changeRequiresLayout): Calls changeAffectsVisualOverflow()
2583 (WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline): Moved code from here
2584 to changeAffectsVisualOverflow().
2585 * rendering/style/RenderStyle.h: Function signature
2587 2014-05-13 Enrica Casucci <enrica@apple.com>
2589 REGRESSION (WebKit2): Zooming to text field leaves it partially hidden by the form assistant.
2590 https://bugs.webkit.org/show_bug.cgi?id=132879
2591 <rdar://problem/16318049>
2593 Reviewed by Benjamin Poulain.
2595 Adding some exports. The fix to setScrollPosition is to avoid clamping the scroll
2596 position when using delegate scrolling.
2599 * platform/ScrollView.cpp:
2600 (WebCore::ScrollView::setScrollPosition):
2602 2014-05-13 Brady Eidson <beidson@apple.com>
2604 Followup to: Update positioning/drawing of the image controls button.
2605 <rdar://problem/16885077> and https://bugs.webkit.org/show_bug.cgi?id=132883
2607 Reviewed by Tim Horton.
2609 Cleared up the actual intent behind review feedback on the original patch.
2611 * html/shadow/mac/ImageControlsButtonElementMac.cpp:
2612 (WebCore::ImageControlsButtonElementMac::maybeCreate):
2614 2014-05-13 Brady Eidson <beidson@apple.com>
2616 Update positioning/drawing of the image controls button.
2617 <rdar://problem/16885077> and https://bugs.webkit.org/show_bug.cgi?id=132883
2619 Reviewed by Tim Horton.
2621 * html/shadow/mac/ImageControlsButtonElementMac.cpp:
2622 (WebCore::ImageControlsButtonElementMac::maybeCreate): Add inline style for top/right
2623 positioning based on the metrics from the render theme.
2625 * html/shadow/mac/imageControlsMac.css:
2626 (.x-webkit-image-controls-button): Can’t hard code any positioning.
2628 * rendering/RenderTheme.h:
2629 (WebCore::RenderTheme::imageControlsButtonPositionOffset):
2630 * rendering/RenderThemeMac.h:
2631 * rendering/RenderThemeMac.mm:
2632 (WebCore::RenderThemeMac::servicesRolloverButtonCell):
2633 (WebCore::RenderThemeMac::imageControlsButtonPositionOffset):
2635 2014-05-13 Simon Fraser <simon.fraser@apple.com>
2637 [iOS WK2] background-attachment:fixed behaves very poorly
2638 https://bugs.webkit.org/show_bug.cgi?id=132881
2639 <rdar://problem/16789526>
2641 Reviewed by Beth Dakin.
2643 Remove the old ENABLE_FAST_MOBILE_SCROLLING code, and add a setting that
2644 controls whether fixed backgrounds paint relative to the document, which
2645 is enabled for iOS (WK1 and WK2). This setting is consulted when we repaint
2646 fixed backgrounds on scrolling, when we paint them, and when we decide to make
2647 a layer for fixed backgrounds.
2649 * page/Settings.cpp:
2651 * rendering/RenderBoxModelObject.cpp:
2652 (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
2653 * rendering/RenderElement.cpp:
2654 (WebCore::RenderElement::styleWillChange):
2655 (WebCore::RenderElement::willBeRemovedFromTree):
2656 (WebCore::shouldRepaintFixedBackgroundsOnScroll): Deleted.
2657 * rendering/RenderLayerCompositor.cpp:
2658 (WebCore::RenderLayerCompositor::needsFixedRootBackgroundLayer):
2660 2014-05-13 Zalan Bujtas <zalan@apple.com>
2662 REGRESSSION(r168528) Subpixel rendering: Selection rect is not positioned properly when SVG text is selected.
2663 https://bugs.webkit.org/show_bug.cgi?id=132868
2665 Reviewed by Dirk Schulze.
2667 Scale the selection rect. r168528 missed applying this final transform on the selection/painting rect.
2669 Test: svg/text/hidpi-text-selection-rect-position.html
2671 * rendering/svg/SVGInlineTextBox.cpp:
2672 (WebCore::SVGInlineTextBox::selectionRectForTextFragment):
2674 2014-05-13 Martin Hodovan <mhodovan.u-szeged@partner.samsung.com>
2676 ASSERTION FAILED: leftCategory != CalcOther && rightCategory != CalcOther
2677 in WebCore::CSSCalcBinaryOperation::createSimplified
2678 https://bugs.webkit.org/show_bug.cgi?id=132870
2680 According to the standard, calc() should be able to handle angle, time
2681 and frequency values as well: http://www.w3.org/TR/css3-values/#calc
2683 Reviewed by Darin Adler.
2685 Test: fast/css/calc-with-angle-time-frequency.html
2687 * css/CSSCalculationValue.cpp:
2688 (WebCore::unitCategory):
2689 (WebCore::CSSCalcPrimitiveValue::createCalcExpression):
2690 (WebCore::CSSCalcPrimitiveValue::computeLengthPx):
2691 (WebCore::CSSCalcPrimitiveValue::addSubtractResult):
2692 (WebCore::CSSCalcPrimitiveValue::determineCategory):
2693 (WebCore::CSSCalcBinaryOperation::primitiveType)
2694 * css/CSSCalculationValue.h: extending CalculationCategory
2695 * css/CSSParser.cpp:
2696 (WebCore::CSSParser::validCalculationUnit):
2697 * css/CSSPrimitiveValue.cpp:
2698 (WebCore::CSSPrimitiveValue::primitiveType):
2700 2014-05-13 Darin Adler <darin@apple.com>
2702 Try to fix the !ENABLE(ICONDATABASE) build
2704 * loader/icon/IconDatabase.h: Include WTFString.h.
2706 2014-05-13 Carlos Garcia Campos <cgarcia@igalia.com>
2708 REGRESSION(r167771): [GTK] Text fields and areas are rendered unthemed
2709 https://bugs.webkit.org/show_bug.cgi?id=132864
2711 Reviewed by Philippe Normand.
2713 This is because the virtual methods changed the API in the parent,
2714 and since we don't have the methods marked as override we didn't
2715 noticed it. After using override keyword for all virtual methods
2716 in the derived class another problem showed up, the ActiveListBox
2717 selection methods were incorrectly named.
2719 * platform/gtk/RenderThemeGtk.cpp:
2720 (WebCore::RenderThemeGtk::paintTextArea): Update to API changes in the
2722 * platform/gtk/RenderThemeGtk.h: Mark all virtual methods as
2723 override and the class as final.
2724 * platform/gtk/RenderThemeGtk2.cpp:
2725 (WebCore::RenderThemeGtk::paintTextField): Update to API changes
2726 in the parent class.
2727 (WebCore::RenderThemeGtk::platformActiveListBoxSelectionBackgroundColor):
2728 (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionBackgroundColor):
2729 (WebCore::RenderThemeGtk::platformActiveListBoxSelectionForegroundColor):
2730 (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionForegroundColor):
2731 (WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor): Deleted.
2732 (WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor): Deleted.
2733 (WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor): Deleted.
2734 (WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor): Deleted.
2735 * platform/gtk/RenderThemeGtk3.cpp:
2736 (WebCore::RenderThemeGtk::paintTextField): Update to API changes
2737 in the parent class.
2738 (WebCore::RenderThemeGtk::platformActiveListBoxSelectionBackgroundColor):
2739 (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionBackgroundColor):
2740 (WebCore::RenderThemeGtk::platformActiveListBoxSelectionForegroundColor):
2741 (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionForegroundColor):
2742 (WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor): Deleted.
2743 (WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor): Deleted.
2744 (WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor): Deleted.
2745 (WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor): Deleted.
2747 2014-05-13 Xabier Rodriguez Calvar <calvaris@igalia.com>
2749 [GStreamer] Move toGstClockTime to utilities
2750 https://bugs.webkit.org/show_bug.cgi?id=132702
2752 Reviewed by Philippe Normand.
2754 toGstClockTime should be in GStreamerUtilities and corrected typo
2757 No new tests needed.
2759 * platform/graphics/gstreamer/GStreamerUtilities.cpp:
2760 (WebCore::getGstPlayFlag): Renamed from getGstPlaysFlag.
2761 (WebCore::toGstClockTime): Moved from MediaPlayerPrivateGStreamer.
2762 (WebCore::getGstPlaysFlag): Deleted.
2763 * platform/graphics/gstreamer/GStreamerUtilities.h:
2764 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2765 (WebCore::MediaPlayerPrivateGStreamer::setDownloadBuffering):
2766 Corrected getGstPlayFlag typo.
2767 (WebCore::toGstClockTime): Deleted.
2769 2014-05-12 Darin Adler <darin@apple.com>
2771 Make a few icon database improvements
2772 https://bugs.webkit.org/show_bug.cgi?id=132812
2774 Reviewed by Brady Eidson.
2776 * WebCore.exp.in: Export more IconDatabase functions, since they are now called
2777 by WebKit2 through pointers to a class marked final.
2779 * loader/icon/IconDatabase.cpp: Removed unneeded includes. Use override for
2782 * loader/icon/IconDatabase.h: Removed unneeded includes. Marked the class final.
2783 Use override for virtual functions. Use a public constructor instead of a create
2786 * loader/icon/IconDatabaseBase.h: Removed unneeded includes.
2788 2014-05-13 Kiran <kiran.guduru@samsung.com>
2790 [MediaStream] MediaStream.addTrack Should not check for active state.
2791 https://bugs.webkit.org/show_bug.cgi?id=132558
2793 Reviewed by Eric Carlson.
2795 MediaStream.addTrack method is checking for active state of a
2796 MediaStream, but it should not check for active state while adding a Track.
2798 Test: fast/mediastream/MediaStream-add-tracks-to-inactive-stream.html
2800 * Modules/mediastream/MediaStream.cpp:
2801 (WebCore::MediaStream::addTrack):
2803 2014-05-12 Mark Lam <mark.lam@apple.com>
2805 WebKit2 on iOS needs to capture the main thread's floating point environment.
2806 <https://webkit.org/b/132755>
2808 Reviewed by Geoffrey Garen.
2810 For iOS, WorkerThread::workerThread() expects to be able to initialize the
2811 worker thread's floating point environment to be the same as the one in the
2812 main thread. The FP env of the main thread is expected to have been captured
2813 in the mainThreadFEnv global. On WebKit2 for iOS, we neglected to initialize
2816 We now introduce a FloatingPointEnvironment class that will encapsulate the main
2817 thread (aka "UIThread") fenv, and we'll call FloatingPointEnv::saveMainThreadEnvironment()
2818 from ChildProcess::platformInitialize() to ensure that the FloatingPointEnvironment
2819 singleton instance is initialized properly for WebKit2.
2821 In the ChildProcess::platformInitialize(), we also need to initialize the ARMv7
2822 FP env to support denormalized numbers. We'll do this before calling
2823 saveMainThreadEnvironment().
2825 Tests: fast/workers/worker-floating-point.html
2826 js/floating-point-denormalized.html
2829 * WebCore.xcodeproj/project.pbxproj:
2830 * platform/ios/wak/FloatingPointEnvironment.cpp: Added.
2831 (WebCore::FloatingPointEnvironment::env):
2832 (WebCore::FloatingPointEnvironment::FloatingPointEnvironment):
2833 (WebCore::FloatingPointEnvironment::enableDenormalSupport):
2834 (WebCore::FloatingPointEnvironment::saveMainThreadEnvironment):
2835 (WebCore::FloatingPointEnvironment::propagateMainThreadEnvironment):
2836 * platform/ios/wak/FloatingPointEnvironment.h: Added.
2837 * platform/ios/wak/WebCoreThread.h:
2838 * platform/ios/wak/WebCoreThread.mm:
2841 * workers/WorkerThread.cpp:
2842 (WebCore::WorkerThread::workerThread):
2844 2014-05-12 Dirk Schulze <krit@webkit.org>
2846 SVG root element accepts background color but fails to repaint it
2847 https://bugs.webkit.org/show_bug.cgi?id=63153
2849 Reviewed by Dean Jackson.
2851 This is back ported from Blink. Don't know the exact commit though.
2852 The patch checks if the SVGSVGElement is an outermost root element.
2853 If it is, mark the whole element for repaint.
2855 Test: svg/custom/svg-root-background.html
2857 * rendering/RenderBoxModelObject.cpp:
2858 (WebCore::RenderBoxModelObject::calculateHasBoxDecorations):
2859 (WebCore::RenderBoxModelObject::updateFromStyle):
2860 * rendering/RenderBoxModelObject.h:
2861 * rendering/svg/RenderSVGRoot.cpp:
2862 (WebCore::RenderSVGRoot::RenderSVGRoot):
2863 (WebCore::RenderSVGRoot::layout):
2864 (WebCore::RenderSVGRoot::paintReplaced):
2865 (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
2866 This is a simple optimization by taking the necessary parts
2867 from RenderReplaced and SVGRenderSupport.
2868 * rendering/svg/RenderSVGRoot.h:
2870 2014-05-12 Simon Fraser <simon.fraser@apple.com>
2872 [iOS] Fixed items are sometimes clipped after rubber-banding
2873 https://bugs.webkit.org/show_bug.cgi?id=132851
2874 <rdar://problem/16870790>
2876 Reviewed by Benjamin Poulain.
2878 On iOS fixed-position layers would get clipped to the document rect,
2879 but with rubber-banding, we can now have a custom fixed postion rect
2880 that extends outside the document rect.
2882 Another issue was that we would un-composite fixed elements sometimes
2883 when scrolling fast, again because they could fall outside of the document rect.
2885 A final issue was that pinching could reveal parts of fixed elements that should
2886 lie outside the viewport, rather than clipping the layers.
2888 Fix by converting both call points to use viewportConstrainedVisibleContentRect()
2889 rather than viewportConstrainedExtentRect(). On non-iOS platforms these are
2890 the same, but on iOS viewportConstrainedVisibleContentRect() uses the
2891 custom fixed position rect, which is the correct rect to intersect with.
2893 * rendering/RenderLayerBacking.cpp:
2894 (WebCore::RenderLayerBacking::updateCompositedBounds):
2895 * rendering/RenderLayerCompositor.cpp:
2896 (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
2898 2014-05-06 Jon Honeycutt <jhoneycutt@apple.com>
2900 Don't dispatch 'beforeload' event inside FrameView::layout()
2902 https://bugs.webkit.org/show_bug.cgi?id=132621
2903 <rdar://problem/15661470>
2905 This merges Blink revision 162073 with minor renaming and style
2906 changes. From that commit:
2908 Executing JavaScript code inside FrameView::layout() is problematic.
2909 e.g. an assertion failure tested in fast/events/beforeload-assertion.html.
2912 This CL makes 'beforeload' event dispatching for plugins and iframes asynchronous,
2913 except plugin access from JavaScript code (HTMLPlugInElement::
2914 renderWidgetForJSBindings).
2916 Reviewed by Brent Fulgham.
2918 Tests: fast/events/beforeload-assertion.html
2919 fast/events/beforeload-iframe-crash.html
2920 fast/events/beforeload-input-time-crash.html
2924 (WebCore::Document::updateLayoutIgnorePendingStylesheets):
2926 * html/HTMLAppletElement.cpp:
2927 (WebCore::HTMLAppletElement::renderWidgetForJSBindings):
2928 * html/HTMLEmbedElement.cpp:
2929 (WebCore::HTMLEmbedElement::renderWidgetForJSBindings):
2930 * html/HTMLObjectElement.cpp:
2931 (WebCore::HTMLObjectElement::renderWidgetForJSBindings):
2932 * page/FrameView.cpp:
2933 (WebCore::FrameView::FrameView):
2934 (WebCore::FrameView::reset):
2935 (WebCore::FrameView::updateEmbeddedObjectsTimerFired):
2936 (WebCore::FrameView::flushAnyPendingPostLayoutTasks):
2937 (WebCore::FrameView::performPostLayoutTasks):
2939 * testing/Internals.cpp:
2940 (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks):
2941 * testing/Internals.h:
2942 * testing/Internals.idl:
2944 2014-05-12 Roger Fong <roger_fong@apple.com>
2946 Limit number of active graphics contexts per web process.
2947 https://bugs.webkit.org/show_bug.cgi?id=132833.
2948 <rdar://problem/16888459>
2950 Reviewed by Dean Jackson.
2952 Test: webgl/many-contexts.html
2954 * platform/graphics/GraphicsContext3D.h:
2955 * platform/graphics/mac/GraphicsContext3DMac.mm: Limit number of active contexts to 16.
2956 (WebCore::GraphicsContext3D::create):
2957 (WebCore::GraphicsContext3D::~GraphicsContext3D):
2959 2014-05-12 Simon Fraser <simon.fraser@apple.com>
2963 * page/scrolling/ScrollingCoordinator.cpp:
2964 (WebCore::ScrollingCoordinator::contentShadowLayerForFrameView):
2966 2014-05-12 Brent Fulgham <bfulgham@apple.com>
2968 DataDetectorUI doesn't update with resize
2969 https://bugs.webkit.org/show_bug.cgi?id=132830
2970 <rdar://problem/16871179>
2972 Reviewed by Simon Fraser.
2974 * editing/Editor.cpp:
2975 (WebCore::Editor::scanSelectionForTelephoneNumbers): Add public, no-argument
2976 version that can be called after layout changes.
2977 (WebCore::Editor::didLayout): Reprocess telephone number data
2978 since Ranges will have changed.
2980 * editing/FrameSelection.cpp:
2981 (WebCore::FrameSelection::updateDataDetectorsForSelection): Added.
2982 * editing/FrameSelection.h:
2983 * page/FrameView.cpp:
2984 (WebCore::FrameView::performPostLayoutTasks): Ask the FrameSelection to update the
2985 Range information for selected phone numbers.
2987 2014-05-12 Simon Fraser <simon.fraser@apple.com>
2991 * page/scrolling/ScrollingCoordinator.cpp:
2992 (WebCore::ScrollingCoordinator::contentShadowLayerForFrameView):
2994 2014-05-12 Simon Fraser <simon.fraser@apple.com>
2996 [iOS WK2] Fuzzy tiles on some sites on loading
2997 https://bugs.webkit.org/show_bug.cgi?id=132847
2998 <rdar://problem/16816178>
3000 Reviewed by Benjamin Poulain.
3002 Export WebCore::TileController::contentsScale() const
3006 2014-05-12 Simon Fraser <simon.fraser@apple.com>
3008 Add debug dumping for ViewportConfiguration
3009 https://bugs.webkit.org/show_bug.cgi?id=132843
3011 Reviewed by Benjamin Poulain.
3013 Add some TextStream-based dumping for ViewportConfiguration.
3015 * page/ViewportConfiguration.cpp:
3016 (WebCore::ViewportConfiguration::updateConfiguration):
3017 (WebCore::ViewportConfigurationTextStream::ViewportConfigurationTextStream):
3018 (WebCore::ViewportConfigurationTextStream::increaseIndent):
3019 (WebCore::ViewportConfigurationTextStream::decreaseIndent):
3020 (WebCore::dumpProperty):
3021 (WebCore::ViewportConfigurationTextStream::writeIndent):
3022 (WebCore::ViewportConfigurationTextStream::operator<<):
3023 (WebCore::ViewportConfiguration::description):
3024 (WebCore::ViewportConfiguration::dump):
3025 * page/ViewportConfiguration.h:
3027 2014-05-12 Brady Eidson <beidson@apple.com>
3029 Followup to "Teach Editor to support more direct replacement of a Node"
3030 <rdar://problem/16817952> and https://bugs.webkit.org/show_bug.cgi?id=132834
3032 Pair programmed and pair reviewed by Brady Eidson and Darin Adler.
3034 * editing/mac/EditorMac.mm:
3035 (WebCore::maybeCopyNodeAttributesToFragment):
3036 (WebCore::Editor::replaceNodeFromPasteboard):
3038 2014-05-12 Beth Dakin <bdakin@apple.com>
3040 Content shadow layer needs to move in sync with the content layer
3041 https://bugs.webkit.org/show_bug.cgi?id=132841
3043 <rdar://problem/16641115>
3045 Reviewed by Simon Fraser.
3047 Now that the root content layer moves a little bit (for y scroll positions between
3048 0 and topContentInset), the shadow layer needs to move along with it since the
3049 shadow layer should always have the same position as the root content layer.
3051 Set the root state node’s shadow layer, and update the position whenever the root
3052 content layer’s position is updated.
3053 * page/scrolling/AsyncScrollingCoordinator.cpp:
3054 (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
3055 (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
3057 Fetch the compositor’s layerForContentShadow().
3058 * page/scrolling/ScrollingCoordinator.cpp:
3059 (WebCore::ScrollingCoordinator::contentShadowLayerForFrameView):
3060 * page/scrolling/ScrollingCoordinator.h:
3062 Hook up the contentShadowLayer in the state node.
3063 * page/scrolling/ScrollingStateScrollingNode.cpp:
3064 (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
3065 (WebCore::ScrollingStateScrollingNode::setContentShadowLayer):
3067 Hook it up in the ScrollingTreeNode as well. Move the layer whenever the m
3068 _scrolledContentsLayer is moved.
3069 * page/scrolling/ScrollingStateScrollingNode.h:
3070 * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
3071 * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
3072 (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
3073 (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
3075 The shadow layer needs an anchor point now that we are moving it around.
3076 * rendering/RenderLayerCompositor.cpp:
3077 (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
3079 2014-05-12 Dirk Schulze <krit@webkit.org>
3081 <svg> with opacity and compositing double-applies its opacity
3082 https://bugs.webkit.org/show_bug.cgi?id=116856
3084 Reviewed by Simon Fraser.
3086 The opacity is applied by the compositor. However, all SVG elements
3087 create transparency layers on their own to apply opacity. So did
3090 Added a check if the current element has a compositing layer and skip
3091 creating transparency layer if it has.
3093 Test: svg/custom/composited-svg-with-opacity.html
3095 * rendering/svg/SVGRenderingContext.cpp:
3096 (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
3098 2014-05-12 Brady Eidson <beidson@apple.com>
3100 Teach Editor to support more direct replacement of a Node
3101 <rdar://problem/16817952> and https://bugs.webkit.org/show_bug.cgi?id=132834
3103 Reviewed by Enrica Casucci.
3105 The new method "Editor::replaceNodeFromPasteboard" has the intent that the new DocumentFragment
3106 from the pasteboard is as similar to the old Node as possible.
3108 In practice, the new DocumentFragment:
3109 1 - Can represent a single node that's missing various attributes the original Node had.
3110 2 - Can be an unwanted fragment of arbitrary depth when the replacement happens inside Mail.app
3112 This fixes both of these issues.
3114 Add a MailBlockquoteHandling enum class for various Editor operations to pass through to the
3115 ReplaceSelectionCommand:
3116 * editing/Editor.cpp:
3117 (WebCore::Editor::handleTextEvent):
3118 (WebCore::Editor::pasteAsFragment):
3119 (WebCore::Editor::pasteWithPasteboard):
3120 (WebCore::Editor::replaceSelectionWithFragment):
3123 * dom/TextEvent.cpp:
3124 (WebCore::TextEvent::createForPlainTextPaste):
3125 (WebCore::TextEvent::createForFragmentPaste):
3126 (WebCore::TextEvent::TextEvent):
3128 (WebCore::TextEvent::mailBlockquoteHandling):
3130 * editing/ReplaceSelectionCommand.cpp:
3131 (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand):
3132 (WebCore::ReplaceSelectionCommand::doApply): Consider whether or not this particular Editor
3133 operation was meant to give special consideration to Mail's Blockquotes.
3134 * editing/ReplaceSelectionCommand.h:
3136 * editing/efl/EditorEfl.cpp:
3137 (WebCore::Editor::pasteWithPasteboard):
3138 * editing/ios/EditorIOS.mm:
3139 (WebCore::Editor::pasteWithPasteboard):
3141 * editing/mac/EditorMac.mm:
3142 (WebCore::Editor::pasteWithPasteboard):
3143 (WebCore::Editor::readSelectionFromPasteboard):
3144 (WebCore::maybeCopyNodeAttributesToFragment): If the new DocumentFragment represents a single HTML node
3145 with the same tag name is the original HTML node, copy over most attributes from the original node.
3146 (WebCore::Editor::replaceNodeFromPasteboard): Create the fragment, run it through maybeCopyNodeAttributesToFragment.
3150 2014-05-12 Alex Christensen <achristensen@webkit.org>
3152 Progress on web timing.
3153 https://bugs.webkit.org/show_bug.cgi?id=132574
3155 Reviewed by Alexey Proskuryakov.
3158 Removed ResourceLoadTiming.cpp.
3160 Added linker symbols for ResourceLoadTiming.
3161 * WebCore.xcodeproj/project.pbxproj:
3162 * WebCore.vcxproj/WebCore.vcxproj:
3163 * WebCore.vcxproj/WebCore.vcxproj.filters:
3164 Removed ResourceLoadTiming.cpp.
3165 * inspector/InspectorResourceAgent.cpp:
3166 (WebCore::buildObjectForTiming):
3167 * inspector/protocol/Network.json:
3168 Updated ResourceTiming structure.
3169 * loader/DocumentLoadTiming.cpp:
3170 (WebCore::DocumentLoadTiming::setNavigationStart):
3171 * loader/DocumentLoadTiming.h:
3172 Deleted unused setNavigationStart function.
3173 * page/Performance.idl:
3175 * page/PerformanceResourceTiming.cpp:
3176 (WebCore::PerformanceResourceTiming::domainLookupStart):
3177 (WebCore::PerformanceResourceTiming::domainLookupEnd):
3178 (WebCore::PerformanceResourceTiming::connectStart):
3179 (WebCore::PerformanceResourceTiming::secureConnectionStart):
3180 (WebCore::PerformanceResourceTiming::responseEnd):
3181 Updated ResourceLoadTiming member variable names.
3182 (WebCore::PerformanceResourceTiming::responseStart):
3183 * page/PerformanceResourceTiming.h:
3184 * page/PerformanceResourceTiming.idl:
3185 Deleted responseStart because it is not in the spec.
3186 * page/PerformanceTiming.cpp:
3187 (WebCore::PerformanceTiming::domainLookupStart):
3188 (WebCore::PerformanceTiming::domainLookupEnd):
3189 (WebCore::PerformanceTiming::connectStart):
3190 (WebCore::PerformanceTiming::secureConnectionStart):
3191 (WebCore::PerformanceTiming::requestStart):
3192 (WebCore::PerformanceTiming::responseStart):
3193 Updated ResourceLoadTiming member variable names.
3194 (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute):
3195 Use navigationStart as base for resource load times.
3196 * page/PerformanceTiming.idl:
3198 * platform/network/HTTPParsers.h:
3199 Removed unused class declarations.
3200 * platform/network/ResourceHandle.h:
3201 Moved soup request time from ResourceLoadTiming to ResourceHandle.
3202 * platform/network/ResourceLoadTiming.cpp: Removed.
3203 * platform/network/ResourceLoadTiming.h:
3204 (WebCore::ResourceLoadTiming::deepCopy):
3205 (WebCore::ResourceLoadTiming::operator==):
3206 (WebCore::ResourceLoadTiming::ResourceLoadTiming):
3207 Updated ResourceLoadTiming member variable names.
3208 * platform/network/mac/ResourceHandleMac.mm:
3209 (WebCore::ResourceHandle::createNSURLConnection):
3210 Collect timing data.
3211 * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
3212 (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
3213 * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
3214 (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
3215 Save timing data to a ResourceLoadTiming on the ResourceResponse.
3216 * platform/network/soup/ResourceHandleSoup.cpp:
3217 (WebCore::gotHeadersCallback):
3218 (WebCore::restartedCallback):
3219 (WebCore::milisecondsSinceRequest):
3220 (WebCore::ResourceHandle::didStartRequest):
3221 (WebCore::networkEventCallback):
3222 (WebCore::createSoupMessageForHandleAndRequest):
3223 (WebCore::ResourceHandle::sendPendingRequest):
3224 Updated ResourceLoadTiming member variable names.
3225 (WebCore::wroteBodyCallback): Deleted.
3227 2014-05-12 Dirk Schulze <krit@webkit.org>
3229 SVG outline property is broken and inefficient
3230 https://bugs.webkit.org/show_bug.cgi?id=113666
3232 Reviewed by Dean Jackson.
3234 Patch by Erik Dahlström backported from Blink.
3236 "[SVG2] css 'outline' property should apply to svg elements
3238 The 'outline' property was only partially working in SVG before
3239 this patch, this makes it work on text and text content child
3242 This makes SVG render the outlines as part of the foreground paint
3245 Partly based on Florin Malita's webkit patch https://bugs.webkit.org/show_bug.cgi?id=113666#c12."
3247 Tests: svg/custom/outline-stacking-expected.svg
3248 svg/custom/outline-stacking.svg
3249 svg/custom/rgba-color-outline.svg
3250 svg/text/text-outline-expected.svg
3251 svg/text/text-outline-rgba.html
3252 svg/text/text-outline.html
3253 svg/text/textpath-outline-expected.svg
3254 svg/text/textpath-outline.svg
3255 svg/text/tspan-multiple-outline.svg
3256 svg/text/tspan-outline-2-expected.svg
3257 svg/text/tspan-outline-2.svg
3258 svg/text/tspan-outline-expected.svg
3259 svg/text/tspan-outline.html
3261 * rendering/svg/RenderSVGContainer.cpp:
3262 (WebCore::RenderSVGContainer::paint): Draw outline in forground
3264 * rendering/svg/RenderSVGImage.cpp:
3265 (WebCore::RenderSVGImage::paint): Draw outline in forground
3267 * rendering/svg/RenderSVGRoot.cpp:
3268 (WebCore::RenderSVGRoot::paintReplaced): Pass paint offset.
3269 * rendering/svg/RenderSVGShape.cpp:
3270 (WebCore::RenderSVGShape::paint): Draw outline in forground
3272 * rendering/svg/RenderSVGText.cpp:
3273 (WebCore::RenderSVGText::paint): Draw outline in forground
3275 * rendering/svg/SVGInlineFlowBox.cpp:
3276 (WebCore::SVGInlineFlowBox::paint): Pass paint offset.
3277 * rendering/svg/SVGInlineTextBox.cpp:
3278 (WebCore::SVGInlineTextBox::paint): Draw outline in forground
3280 * rendering/svg/SVGRootInlineBox.cpp:
3281 (WebCore::SVGRootInlineBox::paint): Pass paint offset.
3283 2014-05-12 Beth Dakin <bdakin@apple.com>
3285 Layer for bottom overhang area needs to be offset by the topContentInset
3286 https://bugs.webkit.org/show_bug.cgi?id=132835
3288 <rdar://problem/16641115>
3290 Reviewed by Simon Fraser.
3292 Push this layer down by the topContentInset in addition to the root layer height,
3293 footer height, and header height.
3294 * rendering/RenderLayerCompositor.cpp:
3295 (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
3297 2014-05-09 Jon Honeycutt <jhoneycutt@apple.com>
3299 REGRESSION (r167818): editing/inserting/typing-space-to-trigger-smart-link.html fails on WebKit1 bots
3301 <https://bugs.webkit.org/show_bug.cgi?id=132207>
3302 <rdar://problem/16730393>
3304 Reverts the previous workaround in favor of a more specific fix for the
3307 Reviewed by Darin Adler.
3309 * editing/ApplyStyleCommand.cpp:
3310 (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
3311 Check whether the run's start and end are still in the document, as
3312 removeConflictingInlineStyleFromRun() may have removed them.
3314 * editing/CompositeEditCommand.cpp:
3315 (WebCore::CompositeEditCommand::apply):
3316 Reverted previous workaround.
3317 (WebCore::ApplyEditCommand::ReentrancyGuard::isRecursiveCall): Deleted.
3318 (WebCore::ApplyEditCommand::ReentrancyGuard::Scope::Scope): Deleted.
3319 (WebCore::ApplyEditCommand::ReentrancyGuard::Scope::~Scope): Deleted.
3321 2014-05-12 Zan Dobersek <zdobersek@igalia.com>
3323 Clean up CrossThreadTask
3324 https://bugs.webkit.org/show_bug.cgi?id=132800
3326 Reviewed by Darin Adler.
3328 Remove the createCallbackTask overloads and the related CrossThreadTask helper classes.
3330 Instead, have one simple CrossThreadTask class that derives from ScriptExecutionContext::Task.
3331 Its templated constructor takes in the method and the variadic pack of parameters. The cross-thread
3332 copies of the parameters are then bound to that method and the resulting bind expression is used to
3333 initialize the base class. The bind expression is constructed with a placeholder for the
3334 ScriptExecutionContext* parameter that's provided through ScriptExecutionContext::Task::performTask().
3336 * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
3337 (WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
3338 (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
3339 (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
3340 (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
3341 (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
3342 (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
3343 (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
3344 (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
3345 * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
3346 (WebCore::WorkerThreadableWebSocketChannel::Peer::send):
3347 (WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
3348 (WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect):
3349 (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
3350 (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
3351 (WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
3352 (WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
3353 (WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
3354 (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
3355 (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
3356 (WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):
3357 (WebCore::WorkerThreadableWebSocketChannel::Bridge::connect):
3358 (WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
3359 (WebCore::WorkerThreadableWebSocketChannel::Bridge::bufferedAmount):
3360 (WebCore::WorkerThreadableWebSocketChannel::Bridge::close):
3361 (WebCore::WorkerThreadableWebSocketChannel::Bridge::fail):
3362 (WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
3363 (WebCore::WorkerThreadableWebSocketChannel::Bridge::suspend):
3364 (WebCore::WorkerThreadableWebSocketChannel::Bridge::resume):
3365 * dom/CrossThreadTask.h:
3366 (WebCore::CrossThreadTask::CrossThreadTask):
3367 (WebCore::CrossThreadTask1::CrossThreadTask1): Deleted.
3368 (WebCore::CrossThreadTask1::performTask): Deleted.
3369 (WebCore::CrossThreadTask2::CrossThreadTask2): Deleted.
3370 (WebCore::CrossThreadTask2::performTask): Deleted.
3371 (WebCore::CrossThreadTask3::CrossThreadTask3): Deleted.
3372 (WebCore::CrossThreadTask3::performTask): Deleted.
3373 (WebCore::CrossThreadTask4::CrossThreadTask4): Deleted.
3374 (WebCore::CrossThreadTask4::performTask): Deleted.
3375 (WebCore::CrossThreadTask5::CrossThreadTask5): Deleted.
3376 (WebCore::CrossThreadTask5::performTask): Deleted.
3377 (WebCore::CrossThreadTask6::CrossThreadTask6): Deleted.
3378 (WebCore::CrossThreadTask6::performTask): Deleted.
3379 (WebCore::CrossThreadTask7::CrossThreadTask7): Deleted.
3380 (WebCore::CrossThreadTask7::performTask): Deleted.
3381 (WebCore::CrossThreadTask8::CrossThreadTask8): Deleted.
3382 (WebCore::CrossThreadTask8::performTask): Deleted.
3383 (WebCore::createCallbackTask): Deleted.
3384 * fileapi/FileReader.cpp:
3385 (WebCore::FileReader::abort):
3386 * loader/WorkerThreadableLoader.cpp:
3387 (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
3388 (WebCore::WorkerThreadableLoader::MainThreadBridge::destroy):
3389 (WebCore::WorkerThreadableLoader::MainThreadBridge::cancel):
3390 (WebCore::WorkerThreadableLoader::MainThreadBridge::didSendData):