1 2014-05-20 Dean Jackson <dino@apple.com>
3 [Mac] Allow popup menus to override default appearance
4 https://bugs.webkit.org/show_bug.cgi?id=133129
6 Reviewed by Tim Horton.
8 WebKitSystemInterface's WKPopupMenu has a flag to hide
9 the arrows at the end of a popup-menu (e.g. <select>).
10 Expose that via adding a hasDefaultAppearance flag to
11 PopupMenuStyle, which then passes it on to WKSI.
13 * platform/PopupMenuStyle.h:
14 (WebCore::PopupMenuStyle::PopupMenuStyle): New flag in constructor.
15 (WebCore::PopupMenuStyle::hasDefaultAppearance): New flag.
16 * platform/mac/WebCoreSystemInterface.h: wkPopupMenu signature has changed to accept
18 * platform/mac/WebCoreSystemInterface.mm: Ditto.
19 * rendering/RenderMenuList.cpp:
20 (RenderMenuList::itemStyle): Pass in true as default appearance when creating
21 the PopupMenuStyle. We don't need it.
22 (RenderMenuList::menuStyle): In this case we pass in the negated value of
23 style().hasAppearance(), which indicates if we are overriding the built-in drawing.
24 * rendering/RenderSearchField.cpp:
25 (WebCore::RenderSearchField::menuStyle): Use true as the default value.
27 2014-05-20 Eric Carlson <eric.carlson@apple.com>
29 [Mac] do not deactivate an audio session that has running I/O
30 https://bugs.webkit.org/show_bug.cgi?id=133127
32 Reviewed by Jer Noble.
35 (WebCore::Settings::setShouldManageAudioSessionCategory): Renamed from setShouldManageAudioSession.
36 (WebCore::Settings::shouldManageAudioSessionCategory): Renamed from shouldManageAudioSession.
37 (WebCore::Settings::setShouldManageAudioSession): Deleted.
38 (WebCore::Settings::shouldManageAudioSession): Deleted.
40 * platform/audio/mac/MediaSessionManagerMac.cpp:
41 (MediaSessionManager::updateSessionState): Don't deactivate the session if there are any
42 Video or Audio sessions.
44 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
45 (WebCore::MediaPlayerPrivateAVFoundationObjC::assetStatus): Drive-by change to log errors
46 returned by -statusOfValueForKey:error: in debug builds.
48 2014-05-20 Beth Dakin <bdakin@apple.com>
50 REGRESSION: All non-mainframe scrollbars don't paint after r169065
51 https://bugs.webkit.org/show_bug.cgi?id=133132
53 <rdar://problem/16968850>
55 Reviewed by Geoff Garen.
57 We should not universally return true here. This feature will only work for
58 scrollbars with layers.
59 * platform/ScrollableArea.h:
60 * platform/Scrollbar.cpp:
61 (WebCore::Scrollbar::supportsUpdateOnSecondaryThread):
63 2014-05-20 Daniel Bates <dabates@apple.com>
65 Element within flattened frame may update its scroll state during the layout phase of the wrong RenderView
66 https://bugs.webkit.org/show_bug.cgi?id=133013
67 <rdar://problem/16760154>
69 Reviewed by David Hyatt.
71 Fixes an issue where the scroll state of an element may be updated during the layout of the wrong
72 RenderView. In particular, the scroll state of an element inside a CSS flex box in a flattened
73 frame f is updated during the layout of the RenderView associated with the parent frame of f instead
74 of during the layout of the RenderView associated with f.
76 The layout machinery assumes that the scroll state of each scrollable element is updated before the
77 completion of layout for its associated RenderView. Currently we have logic to defer updating the scroll
78 state of a scrollable element until completion of recursive layout. For a page with a flattened frame, we
79 defer such updates until completion of layout for all RenderViews along the ancestor frame hierarchy of
80 each flattened frame regardless of the RenderView associated with the element that originated the
81 deferred scroll state request. Instead, only the RenderView associated with the element that deferred its
82 scroll state update should dispatch the scroll state update.
84 Tests: fast/frames/flattening/scrollable-flexbox-inside-iframe-with-zero-height-and-needs-full-repaint-crash.html
85 fast/frames/flattening/scrollable-flexbox-inside-iframe-with-zero-height-assertion-failure.html
87 * rendering/RenderBlock.cpp: Removed WTF::-prefix in typedef definition for ContinuationOutlineTableMap.
88 (WebCore::UpdateScrollInfoAfterLayoutTransaction::UpdateScrollInfoAfterLayoutTransaction): Added; a struct
89 that represents a RenderView v, nested transaction count, and a list of RenderBlocks in v that will need
90 to have their scroll state updated.
91 (WebCore::updateScrollInfoAfterLayoutTransactionStack): Added; returns the global stack of transactions.
92 (WebCore::RenderBlock::willBeDestroyed): Call removeFromUpdateScrollInfoAfterLayoutTransaction(), which
93 was formerly named as removeFromDelayedUpdateScrollInfoSet.
94 (WebCore::currentUpdateScrollInfoAfterLayoutTransaction): Added; returns the top-most transaction in the
96 (WebCore::RenderBlock::beginUpdateScrollInfoAfterLayoutTransaction): Modified as appropriate to make use
97 of the global stack of transactions; formerly named startDelayUpdateScrollInfo.
98 (WebCore::RenderBlock::endAndCommitUpdateScrollInfoAfterLayoutTransaction): Modified as appropriate to
99 make use of the global stack of transactions; formerly named finishDelayUpdateScrollInfo.
100 (WebCore::RenderBlock::removeFromUpdateScrollInfoAfterLayoutTransaction): Modified as appropriate to make
101 use of the global stack of transactions; formerly named removeFromDelayedUpdateScrollInfoSet.
102 (WebCore::RenderBlock::updateScrollInfoAfterLayout): Modified as appropriate to make use of the global
103 stack of transactions.
104 (WebCore::RenderBlock::layout): Ditto.
105 (WebCore::RenderBlock::startDelayUpdateScrollInfo): Deleted.
106 (WebCore::RenderBlock::finishDelayUpdateScrollInfo): Deleted.
107 (WebCore::RenderBlock::removeFromDelayedUpdateScrollInfoSet): Deleted.
108 * rendering/RenderBlock.h:
109 * rendering/RenderBlockFlow.cpp:
110 (WebCore::RenderBlockFlow::willBeDestroyed): Call removeFromUpdateScrollInfoAfterLayoutTransaction(), which
111 was formerly named removeFromDelayedUpdateScrollInfoSet.
112 * rendering/RenderDeprecatedFlexibleBox.cpp:
113 (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox): Call {begin, end}UpdateScrollInfoAfterLayoutTransaction(),
114 which was formerly named {start, end}DelayUpdateScrollInfo.
115 (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox): Ditto.
116 * rendering/RenderFlexibleBox.cpp:
117 (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
119 2014-05-20 Beth Dakin <bdakin@apple.com>
121 REGRESSION (r169065): Mountain Lion run-api-tests failures: ASSERTION FAILED:
122 Uncaught exception - -[NSRegularLegacyScrollerImp setPresentationValue:]:
123 unrecognized selector sent to instance 0x7ff51aa38000
124 https://bugs.webkit.org/show_bug.cgi?id=133121
126 Reviewed by Tim Horton.
128 * platform/mac/ScrollbarThemeMac.mm:
129 (WebCore::ScrollbarThemeMac::setPaintCharacteristicsForScrollbar):
131 2014-05-19 Simon Fraser <simon.fraser@apple.com>
133 REGRESSION (r169063) Fixed and sticky nodes misplaced on scrolling sometimes
134 https://bugs.webkit.org/show_bug.cgi?id=133106
135 <rdar://problem/16967648>
137 Reviewed by Sam Weinig.
139 Fix regression from r169063. That commit removed scrolledContentsLayers from
140 frame scrolling nodes, but they do actually use them.
142 So put them back; not in the base class, because they have a somewhat different
143 meaning for overflow scrolling and frame scrolling.
146 * page/scrolling/AsyncScrollingCoordinator.cpp:
147 (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
148 (WebCore::AsyncScrollingCoordinator::updateFrameScrollingNode):
149 * page/scrolling/AsyncScrollingCoordinator.h:
150 * page/scrolling/ScrollingCoordinator.h:
151 (WebCore::ScrollingCoordinator::updateFrameScrollingNode):
152 * page/scrolling/ScrollingStateFrameScrollingNode.cpp:
153 (WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
154 (WebCore::ScrollingStateFrameScrollingNode::setScrolledContentsLayer):
155 * page/scrolling/ScrollingStateFrameScrollingNode.h:
156 * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
157 (WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
158 * rendering/RenderLayerCompositor.cpp:
159 (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
161 2014-05-20 Radu Stavila <stavila@adobe.com>
163 REGRESSION: [CSS Regions] Content flowed directly into the flow thread that ends up in the second region is not properly repainted
164 https://bugs.webkit.org/show_bug.cgi?id=133111
166 Reviewed by David Hyatt.
168 When computing the repaint rect of an element flowed into a flow thread, if the element is flowed directly into
169 the flow thread (meaning its containing block is the flow thread itself), the region's position within the flow
170 must no longer be taken into consideration, because its already included in the element's |topLeft|.
172 Test: fast/regions/hover-element-flowed-second-region.html
174 * rendering/RenderBox.cpp:
175 (WebCore::RenderBox::computeRectForRepaint):
177 2014-05-20 Alex Christensen <achristensen@webkit.org>
179 Fix web timing assertion failure.
180 https://bugs.webkit.org/show_bug.cgi?id=133094
181 <rdar://problem/16966032>
183 Reviewed by Alexey Proskuryakov.
185 * platform/network/mac/ResourceHandleMac.mm:
186 (WebCore::ResourceHandle::getConnectionTimingData):
187 Set requestStart and responseStart to 0 instead of -1 to match the
188 ResourceLoadTiming constructor and prevent the assertion failure in
189 PerformanceTiming::responseStart.
191 2014-05-20 Prashant Hiremath <hiremathprashants@gmail.com>
193 Only set title on SVG documents
194 https://bugs.webkit.org/show_bug.cgi?id=133068
196 Reviewed by Dirk Schulze.
198 Test: svg/custom/html_document_set_title.html
200 * svg/SVGTitleElement.cpp:
201 (WebCore::SVGTitleElement::insertedInto):
202 (WebCore::SVGTitleElement::removedFrom):
203 (WebCore::SVGTitleElement::childrenChanged):
205 2014-05-20 peavo@outlook.com <peavo@outlook.com>
207 [Curl] Invalid content in cache file, causes broken rendering.
208 https://bugs.webkit.org/show_bug.cgi?id=133069
210 Reviewed by Brent Fulgham.
212 When data for a url is received as multiple parts, the cache file for the url is truncated when opened for writing,
213 and will only contain the last part of data received.
214 This is fixed by only opening the file once, and close it after all data has been received.
216 * platform/network/curl/CurlCacheEntry.cpp:
217 (WebCore::CurlCacheEntry::CurlCacheEntry): Initialize cache file handle member.
218 (WebCore::CurlCacheEntry::~CurlCacheEntry): Close cache file.
219 (WebCore::CurlCacheEntry::saveCachedData): Only open cache file once to avoid truncating.
220 (WebCore::CurlCacheEntry::didFail): Close cache file.
221 (WebCore::CurlCacheEntry::didFinishLoading): Ditto.
222 (WebCore::CurlCacheEntry::openContentFile): Added method to open cache file.
223 (WebCore::CurlCacheEntry::closeContentFile): Added method to close cache file.
224 * platform/network/curl/CurlCacheEntry.h: Added file handle member, and methods to open and close cache file.
226 2014-05-20 Radu Stavila <stavila@adobe.com>
228 [CSS Regions] Block incorrectly sized when containing an unsplittable box
229 https://bugs.webkit.org/show_bug.cgi?id=132601
231 Reviewed by Antti Koivisto.
233 When laying out elements in a region, when an inline element is encountered
234 the size of its parent must not be increased beyond the bottom of the current region,
235 unless if its the last region. This will ensure that the next sibling of the
236 inline element is correctly laid out at the top of the next region, instead
237 of leaving an empty space equal to the height of the overflow, as it did until now.
239 Tests: fast/regions/inline-block-inside-anonymous-overflow.html
240 fast/regions/inline-block-overflow.html
242 * rendering/RenderBlockFlow.cpp:
243 (WebCore::RenderBlockFlow::adjustLinePositionForPagination):
244 (WebCore::RenderBlockFlow::hasNextPage):
245 * rendering/RenderBlockFlow.h:
246 * rendering/RenderBlockLineLayout.cpp:
247 (WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
248 (WebCore::RenderBlockFlow::linkToEndLineIfNeeded):
249 (WebCore::RenderBlockFlow::determineStartPosition):
250 (WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine):
252 2014-05-20 Mihnea Ovidenie <mihnea@adobe.com>
254 [CSS Regions] Crash while painting block selection gaps in regions
255 https://bugs.webkit.org/show_bug.cgi?id=132720
257 Reviewed by David Hyatt.
259 The fix for WebKit bug https://bugs.webkit.org/show_bug.cgi?id=131511
260 allowed selection highlight to match the DOM selection when the start
261 and end point of the selection were in different flow threads. In order
262 to enable that, the selection was performed separately on view and
263 render flow threads, considered selection subtrees.
265 However, the start and end points for each selection subtree were computed
266 by means of Range class but it is not always possible to construct a valid
267 Range from two pairs of RenderObjects and offsets.
269 This patch keeps the substrees approach but instead of storing the endpoints
270 for each subtree in a Range and continuously extending the Range, it stores them
271 using the already available SelectionSubtreeRoot class. After the end points are
272 computed for each subtree and before processing the subtree selection, the end points
273 are adjusted in a similar fashion as the one used in FrameSelection::updateAppearance(),
274 to make sure we are passing the same expected information to the method implementing
275 the visible selection processing.
277 Test: fast/regions/selection-gaps-paint-crash.html
279 * rendering/RenderView.cpp:
280 (WebCore::RenderView::splitSelectionBetweenSubtrees):
281 * rendering/SelectionSubtreeRoot.cpp:
282 (WebCore::SelectionSubtreeRoot::adjustForVisibleSelection):
283 * rendering/SelectionSubtreeRoot.h:
284 (WebCore::SelectionSubtreeRoot::selectionClear):
286 2014-05-19 Simon Fraser <simon.fraser@apple.com>
288 Scrolling pages with large TiledBacking content layers creates way too many tiles
289 https://bugs.webkit.org/show_bug.cgi?id=133101
291 Reviewed by Tim Horton.
293 Fix the GraphicsLayerCA::adjustTiledLayerVisibleRect() logic to avoid making giant rects if the old
294 and new visible rects don't overlap.
296 * platform/graphics/TiledBacking.h:
297 * platform/graphics/ca/GraphicsLayerCA.cpp:
298 (WebCore::GraphicsLayerCA::adjustTiledLayerVisibleRect):
299 * platform/graphics/ca/mac/TileController.h:
301 2014-05-19 Simon Fraser <simon.fraser@apple.com>
303 Correctly maintain the "isInWindow" state for all TiledBackings
304 https://bugs.webkit.org/show_bug.cgi?id=133095
306 Reviewed by Tim Horton.
308 We never updated the "isInWindow" state for TiledBacking that wasn't the RenderView's
309 backing. Fix it by having RenderLayerCompositor::setIsInWindow() recurse through all
310 layers (if necessary), updating their state. Also set the state on newly created
313 * rendering/RenderLayerCompositor.cpp:
314 (WebCore::RenderLayerCompositor::layerTiledBackingUsageChanged):
315 (WebCore::RenderLayerCompositor::setIsInWindowForLayerIncludingDescendants):
316 (WebCore::RenderLayerCompositor::setIsInWindow):
317 (WebCore::RenderLayerCompositor::pageTiledBacking): Deleted.
318 * rendering/RenderLayerCompositor.h:
320 2014-05-19 Dean Jackson <dino@apple.com>
322 [iOS] Use status display for live streams
323 https://bugs.webkit.org/show_bug.cgi?id=133097
325 Reviewed by Sam Weinig.
327 Follow-on from https://bugs.webkit.org/show_bug.cgi?id=131390
328 Allow the iOS controls to use the status display field.
330 * Modules/mediacontrols/mediaControlsiOS.js:
331 (ControllerIOS.prototype.configureInlineControls): Live streams should
332 not have a timeline or rewind button.
334 2014-05-19 Myles C. Maxfield <litherum@gmail.com>
336 Text decorations do not contribute to visual overflow
337 https://bugs.webkit.org/show_bug.cgi?id=132773
339 Reviewed by Antti Koivisto.
341 This patch creates a function, visualOverflowForDecorations, which computes
342 how much visual overflow to add around a text box due to text decorations. Most of the time,
343 text decorations are fully contained within the text box, so the result is usually 0.
345 This function exists within style/InlineTextBoxStyle.cpp, which is an added file. This is
346 so that it can be called from setLogicalWidthForTextRun() inside RenderBlockLineLayout.cpp
347 and from RenderStyle::changeAffectsVisualOverflow(). The former case passes in the full
348 InlineTextBox and the latter case just passes in a RenderStyle (because the InlineTextBox
351 This patch also modifies RenderTableSection::spannedColumns() to fix an off-by-one error
352 that was causing table borders to not be drawn when they existed right on the edge of
355 Tests: fast/css3-text/css3-text-decoration/repaint/underline-outside-of-layout-rect.html
356 Tests: fast/repaint/border-collapse-table-off-by-one-expected.html
358 * WebCore.vcxproj/WebCore.vcxproj: Adding reference to new InlineTextBoxStyle.cpp file
359 * WebCore.vcxproj/WebCore.vcxproj.filters: Adding reference to new InlineTextBoxStyle files
360 * WebCore.xcodeproj/project.pbxproj: Adding reference to new InlineTextBoxStyle files
361 * rendering/InlineTextBox.cpp:
362 (WebCore::computeUnderlineOffset): Moved to InlineTextBox.cpp
363 (WebCore::getWavyStrokeParameters): Moved to InlineTextBox.cpp
364 (WebCore::InlineTextBox::paintDecoration): Update to use newly refactored functions
365 * rendering/RenderBlockLineLayout.cpp:
366 (WebCore::setLogicalWidthForTextRun): Call visualOverflowForDecorations()
367 * rendering/RenderTableSection.cpp:
368 * rendering/RenderTableSelection.cpp: Fix off-by-one error when the boundary of a repaint
369 rect lies exactly on top of a table column position
370 * rendering/style/RenderStyle.cpp:
371 (WebCore::RenderStyle::changeAffectsVisualOverflow): Inspects shadows and text decorations
372 (WebCore::RenderStyle::changeRequiresLayout): Calls changeAffectsVisualOverflow()
373 (WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline): Moved code from here
374 to changeAffectsVisualOverflow().
375 * rendering/style/RenderStyle.h: Function signature
376 * style/InlineTextBoxStyle.cpp: Added.
377 (WebCore::computeUnderlineOffset): Moved from InlineTextBox.cpp
378 (WebCore::getWavyStrokeParameters): Moved from InlineTextBox.cpp
379 (WebCore::extendIntToFloat): Convenience function for dealing with the fact that
380 underline bounding boxes use floats and GlyphOverflow uses ints
381 (WebCore::visualOverflowForDecorations): Given
382 vertical overflow bounds, possibly extend those to include location of
384 * style/InlineTextBoxStyle.h: Added. Function signatures.
385 (WebCore::textDecorationStrokeThickness): Refactored from InlineTextBox.cpp
386 (WebCore::wavyOffsetFromDecoration): Refactored from InlineTextBox.cpp
387 * platform/graphics/Font.h:
388 (WebCore::GlyphOverflow::isEmpty): Convenience function
389 (WebCore::GlyphOverflow::extendTo): Convenience function
391 2014-05-19 Alex Christensen <achristensen@webkit.org>
393 Unreviewed build fix after r169082
395 * platform/network/ResourceHandle.h:
396 Added NSDictionary declaration.
398 2014-05-19 Beth Dakin <bdakin@apple.com>
400 REGRESSION: Standalone images need to take topContentInset into account
401 https://bugs.webkit.org/show_bug.cgi?id=133092
403 <rdar://problem/16945791>
405 Reviewed by Darin Adler.
407 The FrameView’s size is accurate in terms of the NSWindow size, but that is not
408 really what the ImageDocument code is looking for here. The ImageDocument wants to
409 know the size of the unobscured viewport area. We should use visibleSize() for
411 * html/ImageDocument.cpp:
412 (WebCore::ImageDocument::scale):
413 (WebCore::ImageDocument::imageFitsInWindow):
414 (WebCore::ImageDocument::imageClicked):
416 2014-05-19 Alex Christensen <achristensen@webkit.org>
418 Collect web timing data on iOS.
419 https://bugs.webkit.org/show_bug.cgi?id=133075
421 Reviewed by Sam Weinig.
423 * platform/network/ResourceHandle.h:
424 Added setCollectsTimingData wrapper and getConnectionTimingData declarations.
425 getConnectionTimingData with a dictionary parameter is a private helper function.
426 * platform/network/cf/ResourceHandleCFNet.cpp:
427 (WebCore::ResourceHandle::start):
428 Call setCollectsTimingData wrapper when creating a connection to ensure that timing data is collected.
429 * platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
430 (WebCore::ResourceHandleCFURLConnectionDelegate::didReceiveResponseCallback):
431 * platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
432 * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
433 (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
434 * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
435 * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
436 (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
437 * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
438 Pass the CFURLConnectionRef to didReceiveResponse to get timing data from.
439 * platform/network/mac/ResourceHandleMac.mm:
440 (WebCore::ResourceHandle::getConnectionTimingData):
441 Moved from getTimingData to compile regardless of using CFNetwork and added wrapper with CFDictionaryRef.
442 (WebCore::ResourceHandle::setCollectsTimingData):
443 Added wrapper to call objc function from c++.
444 (WebCore::ResourceHandle::getTimingData):
445 Renamed to getConnectionTimingData.
446 * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
447 (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
448 * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
449 (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
450 Updated function name from getTimingData to getConnectionTimingData.
452 2014-05-19 Chris Fleizach <cfleizach@apple.com>
454 AX: VoiceOver sees the WebArea out of order when topContentInset is used
455 https://bugs.webkit.org/show_bug.cgi?id=133091
457 Reviewed by Simon Fraser.
459 Modify the scroll view's frame so that it recognizes the content inset.
460 This is needed so that when VoiceOver sorts elements to create an ordering,
461 the web area is not ordered at the top of the screen.
463 Test: platform/mac-wk2/accessibility/content-inset-scrollview-frame.html
465 * accessibility/AccessibilityScrollView.cpp:
466 (WebCore::AccessibilityScrollView::elementRect):
468 2014-05-19 Beth Dakin <bdakin@apple.com>
470 Scrollbars display incorrectly after switching between fast and slow scrolling
471 mode, affects Find and real sites
472 https://bugs.webkit.org/show_bug.cgi?id=133077
474 <rdar://problem/16888608>
476 Reviewed by Tim Horton.
478 We should always return true here when updating on the secondary thread is
479 supported. It does not need to be gated on whether we are actively taking
480 advantage of that support at this moment.
481 * platform/Scrollbar.cpp:
482 (WebCore::Scrollbar::supportsUpdateOnSecondaryThread):
484 Always update the presentationValue whenever we update the doubleValue just to
486 * platform/mac/ScrollbarThemeMac.mm:
487 (WebCore::ScrollbarThemeMac::setPaintCharacteristicsForScrollbar):
489 2014-05-19 Simon Fraser <simon.fraser@apple.com>
491 Split scrolling tree ScrollingNodes into FrameScrollingNodes and OverflowScrollingNodes
492 https://bugs.webkit.org/show_bug.cgi?id=133022
494 Reviewed by Sam Weinig.
496 In both the scrolling state tree and the scrolling tree, split the "scrolling nodes"
497 into FrameScrolling and OverflowScrolling nodes.
499 Move what was the "viewportSize" property onto the base class for the scrolling
500 nodes, calling it "scrollableAreaSize".
502 Make minimum/maximumScrollPosition() virtual so we can share more code (and there
503 is more code sharing to be done in future).
505 * Configurations/WebCore.xcconfig: Remove ScrollingStateScrollingNodeMac.mm and ScrollingTreeScrollingNodeMac.mm
506 from the list, using #ifdefs in the file instead.
507 * WebCore.exp.in: Lots of exports.
508 * WebCore.xcodeproj/project.pbxproj: New files.
509 * page/scrolling/AsyncScrollingCoordinator.cpp:
510 (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
511 (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
512 (WebCore::AsyncScrollingCoordinator::updateFrameScrollingNode):
513 (WebCore::AsyncScrollingCoordinator::updateOverflowScrollingNode):
514 (WebCore::AsyncScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
515 (WebCore::AsyncScrollingCoordinator::updateScrollingNode): Deleted.
516 (WebCore::AsyncScrollingCoordinator::setScrollbarPaintersFromScrollbarsForNode): Deleted.
517 This tiny function didn't need to exist.
518 * page/scrolling/AsyncScrollingCoordinator.h:
519 * page/scrolling/ScrollingCoordinator.h:
520 (WebCore::ScrollingCoordinator::updateFrameScrollingNode):
521 (WebCore::ScrollingCoordinator::updateOverflowScrollingNode):
522 (WebCore::ScrollingCoordinator::updateScrollingNode): Deleted.
523 * page/scrolling/ScrollingStateFrameScrollingNode.cpp: Copied from Source/WebCore/page/scrolling/ScrollingStateScrollingNode.cpp.
524 (WebCore::ScrollingStateFrameScrollingNode::create):
525 (WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
526 (WebCore::ScrollingStateFrameScrollingNode::~ScrollingStateFrameScrollingNode):
527 (WebCore::ScrollingStateFrameScrollingNode::clone):
528 (WebCore::ScrollingStateFrameScrollingNode::setFrameScaleFactor):
529 (WebCore::ScrollingStateFrameScrollingNode::setNonFastScrollableRegion):
530 (WebCore::ScrollingStateFrameScrollingNode::setWheelEventHandlerCount):
531 (WebCore::ScrollingStateFrameScrollingNode::setSynchronousScrollingReasons):
532 (WebCore::ScrollingStateFrameScrollingNode::setScrollBehaviorForFixedElements):
533 (WebCore::ScrollingStateFrameScrollingNode::setHeaderHeight):
534 (WebCore::ScrollingStateFrameScrollingNode::setFooterHeight):
535 (WebCore::ScrollingStateFrameScrollingNode::setTopContentInset):
536 (WebCore::ScrollingStateFrameScrollingNode::setCounterScrollingLayer):
537 (WebCore::ScrollingStateFrameScrollingNode::setInsetClipLayer):
538 (WebCore::ScrollingStateFrameScrollingNode::setContentShadowLayer):
539 (WebCore::ScrollingStateFrameScrollingNode::setHeaderLayer):
540 (WebCore::ScrollingStateFrameScrollingNode::setFooterLayer):
541 (WebCore::ScrollingStateFrameScrollingNode::setScrollbarPaintersFromScrollbars):
542 (WebCore::ScrollingStateFrameScrollingNode::dumpProperties):
543 * page/scrolling/ScrollingStateFrameScrollingNode.h: Copied from Source/WebCore/page/scrolling/ScrollingStateScrollingNode.h.
544 * page/scrolling/ScrollingStateNode.h:
545 (WebCore::LayerRepresentation::layerID):
546 (WebCore::ScrollingStateNode::isFrameScrollingNode):
547 (WebCore::ScrollingStateNode::isOverflowScrollingNode):
548 * page/scrolling/ScrollingStateOverflowScrollingNode.cpp: Added.
549 (WebCore::ScrollingStateOverflowScrollingNode::create):
550 (WebCore::ScrollingStateOverflowScrollingNode::ScrollingStateOverflowScrollingNode):
551 (WebCore::ScrollingStateOverflowScrollingNode::~ScrollingStateOverflowScrollingNode):
552 (WebCore::ScrollingStateOverflowScrollingNode::clone):
553 (WebCore::ScrollingStateOverflowScrollingNode::setScrolledContentsLayer):
554 (WebCore::ScrollingStateOverflowScrollingNode::dumpProperties):
555 * page/scrolling/ScrollingStateOverflowScrollingNode.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingStateScrollingNodeMac.mm.
556 (WebCore::ScrollingStateOverflowScrollingNode::scrolledContentsLayer):
557 * page/scrolling/ScrollingStateScrollingNode.cpp:
558 (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
559 (WebCore::ScrollingStateScrollingNode::setScrollableAreaSize):
560 (WebCore::ScrollingStateScrollingNode::setTotalContentsSize):
561 (WebCore::ScrollingStateScrollingNode::dumpProperties):
562 (WebCore::ScrollingStateScrollingNode::create): Deleted.
563 (WebCore::ScrollingStateScrollingNode::clone): Deleted.
564 (WebCore::ScrollingStateScrollingNode::setViewportSize): Deleted.
565 (WebCore::ScrollingStateScrollingNode::setFrameScaleFactor): Deleted.
566 (WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion): Deleted.
567 (WebCore::ScrollingStateScrollingNode::setWheelEventHandlerCount): Deleted.
568 (WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons): Deleted.
569 (WebCore::ScrollingStateScrollingNode::setScrollBehaviorForFixedElements): Deleted.
570 (WebCore::ScrollingStateScrollingNode::setHeaderHeight): Deleted.
571 (WebCore::ScrollingStateScrollingNode::setFooterHeight): Deleted.
572 (WebCore::ScrollingStateScrollingNode::setTopContentInset): Deleted.
573 (WebCore::ScrollingStateScrollingNode::setScrolledContentsLayer): Deleted.
574 (WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer): Deleted.
575 (WebCore::ScrollingStateScrollingNode::setInsetClipLayer): Deleted.
576 (WebCore::ScrollingStateScrollingNode::setContentShadowLayer): Deleted.
577 (WebCore::ScrollingStateScrollingNode::setHeaderLayer): Deleted.
578 (WebCore::ScrollingStateScrollingNode::setFooterLayer): Deleted.
579 (WebCore::ScrollingStateScrollingNode::setScrollbarPaintersFromScrollbars): Deleted.
580 * page/scrolling/ScrollingStateScrollingNode.h:
581 (WebCore::ScrollingStateScrollingNode::scrollableAreaSize):
582 (WebCore::ScrollingStateScrollingNode::totalContentsSize):
583 * page/scrolling/ScrollingStateTree.cpp:
584 (WebCore::ScrollingStateTree::attachNode):
585 (WebCore::ScrollingStateTree::commit):
586 * page/scrolling/ScrollingStateTree.h:
587 (WebCore::ScrollingStateTree::rootStateNode):
588 (WebCore::ScrollingStateTree::setRootStateNode):
589 * page/scrolling/ScrollingTree.cpp:
590 (WebCore::ScrollingTree::commitNewTreeState):
591 * page/scrolling/ScrollingTreeFrameScrollingNode.cpp: Added.
592 (WebCore::ScrollingTreeFrameScrollingNode::ScrollingTreeFrameScrollingNode):
593 (WebCore::ScrollingTreeFrameScrollingNode::~ScrollingTreeFrameScrollingNode):
594 (WebCore::ScrollingTreeFrameScrollingNode::updateBeforeChildren):
595 * page/scrolling/ScrollingTreeFrameScrollingNode.h: Copied from Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h.
596 (WebCore::ScrollingTreeFrameScrollingNode::updateLayersAfterDelegatedScroll):
597 (WebCore::ScrollingTreeFrameScrollingNode::synchronousScrollingReasons):
598 (WebCore::ScrollingTreeFrameScrollingNode::shouldUpdateScrollLayerPositionSynchronously):
599 (WebCore::ScrollingTreeFrameScrollingNode::frameScaleFactor):
600 (WebCore::ScrollingTreeFrameScrollingNode::headerHeight):
601 (WebCore::ScrollingTreeFrameScrollingNode::footerHeight):
602 (WebCore::ScrollingTreeFrameScrollingNode::topContentInset):
603 (WebCore::ScrollingTreeFrameScrollingNode::scrollBehaviorForFixedElements):
604 * page/scrolling/ScrollingTreeNode.h:
605 (WebCore::ScrollingTreeNode::isFrameScrollingNode):
606 (WebCore::ScrollingTreeNode::isOverflowScrollingNode):
607 * page/scrolling/ScrollingTreeOverflowScrollingNode.cpp: Copied from Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h.
608 (WebCore::ScrollingTreeOverflowScrollingNode::ScrollingTreeOverflowScrollingNode):
609 (WebCore::ScrollingTreeOverflowScrollingNode::~ScrollingTreeOverflowScrollingNode):
610 * page/scrolling/ScrollingTreeOverflowScrollingNode.h: Copied from Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h.
611 * page/scrolling/ScrollingTreeScrollingNode.cpp:
612 (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
613 (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
614 (WebCore::ScrollingTreeScrollingNode::updateAfterChildren):
615 (WebCore::ScrollingTreeScrollingNode::setScrollPosition):
616 (WebCore::ScrollingTreeScrollingNode::setScrollPositionWithoutContentEdgeConstraints):
617 (WebCore::ScrollingTreeScrollingNode::minimumScrollPosition):
618 (WebCore::ScrollingTreeScrollingNode::maximumScrollPosition):
619 * page/scrolling/ScrollingTreeScrollingNode.h:
620 (WebCore::ScrollingTreeScrollingNode::scrollableAreaSize):
621 (WebCore::ScrollingTreeScrollingNode::totalContentsSize):
622 (WebCore::ScrollingTreeScrollingNode::totalContentsSizeForRubberBand):
623 (WebCore::ScrollingTreeScrollingNode::setTotalContentsSizeForRubberBand):
624 (WebCore::ScrollingTreeScrollingNode::synchronousScrollingReasons): Deleted.
625 (WebCore::ScrollingTreeScrollingNode::shouldUpdateScrollLayerPositionSynchronously): Deleted.
626 (WebCore::ScrollingTreeScrollingNode::viewportSize): Deleted.
627 (WebCore::ScrollingTreeScrollingNode::frameScaleFactor): Deleted.
628 (WebCore::ScrollingTreeScrollingNode::headerHeight): Deleted.
629 (WebCore::ScrollingTreeScrollingNode::footerHeight): Deleted.
630 (WebCore::ScrollingTreeScrollingNode::scrollBehaviorForFixedElements): Deleted.
631 (WebCore::ScrollingTreeScrollingNode::topContentInset): Deleted.
632 * page/scrolling/ios/ScrollingCoordinatorIOS.mm:
633 (WebCore::ScrollingCoordinatorIOS::createScrollingTreeNode):
634 * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h: Renamed from Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h.
635 (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollLayer):
636 * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm: Renamed from Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm.
637 (WebCore::ScrollingTreeFrameScrollingNodeIOS::create):
638 (WebCore::ScrollingTreeFrameScrollingNodeIOS::ScrollingTreeFrameScrollingNodeIOS):
639 (WebCore::ScrollingTreeFrameScrollingNodeIOS::~ScrollingTreeFrameScrollingNodeIOS):
640 (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateBeforeChildren):
641 (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateAfterChildren):
642 (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollPosition):
643 (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPosition):
644 (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints):
645 (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollLayerPosition):
646 (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterViewportChange):
647 (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterDelegatedScroll):
648 (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):
649 (WebCore::ScrollingTreeFrameScrollingNodeIOS::minimumScrollPosition):
650 (WebCore::ScrollingTreeFrameScrollingNodeIOS::maximumScrollPosition):
651 (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollBy):
652 (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollByWithoutContentEdgeConstraints):
653 * page/scrolling/mac/ScrollingCoordinatorMac.mm:
654 (WebCore::ScrollingCoordinatorMac::createScrollingTreeNode):
655 * page/scrolling/mac/ScrollingStateFrameScrollingNodeMac.mm: Renamed from Source/WebCore/page/scrolling/mac/ScrollingStateScrollingNodeMac.mm.
656 (WebCore::ScrollingStateFrameScrollingNode::setScrollbarPaintersFromScrollbars):
657 * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h: Renamed from Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.h.
658 * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm: Renamed from Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm.
659 (WebCore::ScrollingTreeFrameScrollingNodeMac::create):
660 (WebCore::ScrollingTreeFrameScrollingNodeMac::ScrollingTreeFrameScrollingNodeMac):
661 (WebCore::ScrollingTreeFrameScrollingNodeMac::~ScrollingTreeFrameScrollingNodeMac):
662 (WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
663 (WebCore::ScrollingTreeFrameScrollingNodeMac::updateAfterChildren):
664 (WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):
665 (WebCore::ScrollingTreeFrameScrollingNodeMac::allowsHorizontalStretching):
666 (WebCore::ScrollingTreeFrameScrollingNodeMac::allowsVerticalStretching):
667 (WebCore::ScrollingTreeFrameScrollingNodeMac::stretchAmount):
668 (WebCore::ScrollingTreeFrameScrollingNodeMac::pinnedInDirection):
669 (WebCore::ScrollingTreeFrameScrollingNodeMac::canScrollHorizontally):
670 (WebCore::ScrollingTreeFrameScrollingNodeMac::canScrollVertically):
671 (WebCore::ScrollingTreeFrameScrollingNodeMac::shouldRubberBandInDirection):
672 (WebCore::ScrollingTreeFrameScrollingNodeMac::absoluteScrollPosition):
673 (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollBy):
674 (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
675 (WebCore::ScrollingTreeFrameScrollingNodeMac::startSnapRubberbandTimer):
676 (WebCore::ScrollingTreeFrameScrollingNodeMac::stopSnapRubberbandTimer):
677 (WebCore::ScrollingTreeFrameScrollingNodeMac::adjustScrollPositionToBoundsIfNecessary):
678 (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollPosition):
679 (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
680 (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
681 (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):
682 (WebCore::ScrollingTreeFrameScrollingNodeMac::updateLayersAfterViewportChange):
683 (WebCore::ScrollingTreeFrameScrollingNodeMac::minimumScrollPosition):
684 (WebCore::ScrollingTreeFrameScrollingNodeMac::maximumScrollPosition):
685 (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollBy):
686 (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollByWithoutContentEdgeConstraints):
687 (WebCore::ScrollingTreeFrameScrollingNodeMac::updateMainFramePinState):
688 (WebCore::ScrollingTreeFrameScrollingNodeMac::logExposedUnfilledArea):
689 (WebCore::logThreadedScrollingMode):
690 (WebCore::logWheelEventHandlerCountChanged):
691 * rendering/RenderLayerCompositor.cpp:
692 (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
694 2014-05-19 Simon Fraser <simon.fraser@apple.com>
696 Images missing sometimes with composited clipping layers
697 https://bugs.webkit.org/show_bug.cgi?id=133065
698 <rdar://problem/15224559>
700 Reviewed by Beth Dakin.
702 When support for solid colors on layers was added, a layer was considered a candidate
703 for the solid color optimization without regard to whether it had descendent layers
704 with "paintsIntoCompositedAncestor" requirements.
706 Fix hasVisibleNonCompositingDescendantLayers(), renaming it to isPaintDestinationForDescendentLayers()
707 and having it take into account whether descendent layers need to paint into an
710 Also, this test has to happen after those descendent layers have had their
711 compositing state updated, so move the isSimpleContainerCompositingLayer() to
712 a new updateAfterDescendents() function which is called from the various
713 places we do compositing-udpate-tree-walks.
715 Test: compositing/backing/solid-color-with-paints-into-ancestor.html
717 * rendering/RenderLayerBacking.cpp:
718 (WebCore::RenderLayerBacking::updateGeometry):
719 (WebCore::RenderLayerBacking::updateAfterDescendents):
720 (WebCore::RenderLayerBacking::paintsChildren):
721 (WebCore::compositedWithOwnBackingStore):
722 (WebCore::descendentLayerPaintsIntoAncestor):
723 (WebCore::RenderLayerBacking::isPaintDestinationForDescendentLayers):
724 (WebCore::hasVisibleNonCompositingDescendant): Deleted.
725 (WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers): Deleted.
726 * rendering/RenderLayerBacking.h:
727 * rendering/RenderLayerCompositor.cpp:
728 (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
729 (WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
730 (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):
732 2014-05-19 Zalan Bujtas <zalan@apple.com>
734 REGRESSION (r133351, sub-pixel layout): Right-to-left block with text-overflow: ellipsis truncates prematurely (breaks facebook.com Hebrew UI)
735 https://bugs.webkit.org/show_bug.cgi?id=112227
737 Reviewed by Maciej Stachowiak.
739 This patch removes unnecessary integral snapping of inlines at layout time.
741 The general rule of thumb of using round/floor/ceil at layout time is to not use them.
743 When some computed values (x, y, width, height) get snapped during layout, while others don't,
744 intersecting/measuring mismatches could occur and they could end up producing visual artifacts such as truncations.
745 This patch also enables iframe content to be positioned on odd device pixel positions on retina displays.
747 Tests: fast/frames/hidpi-position-iframe-on-device-pixel.html
748 fast/inline/hidpi-rtl-text-does-not-fit-line-and-gets-cut-off.html
750 * rendering/RenderBlock.h:
751 (WebCore::RenderBlock::logicalLeftOffsetForLine):
752 (WebCore::RenderBlock::pixelSnappedLogicalLeftOffsetForLine): Deleted.
753 (WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine): Deleted.
754 * rendering/RenderBlockLineLayout.cpp:
755 (WebCore::updateLogicalInlinePositions):
756 (WebCore::RenderBlockFlow::deleteEllipsisLineBoxes):
757 (WebCore::RenderBlockFlow::checkLinesForTextOverflow):
759 2014-05-18 Chris Fleizach <cfleizach@apple.com>
761 AX: iOS: using AXAttributeCacheEnabler is too slow for every accessibilityElementAtIndex:
762 https://bugs.webkit.org/show_bug.cgi?id=133043
764 Reviewed by Mario Sanchez Prada.
766 iOS Accessibility code tries to improve performance by caching attributes when accessing
767 elements through the platform API. However, those API calls can be used very frequently when
768 iterating elements. Creating the AXAttributeCacheEnabler object and tearing it down is proving
769 to be the hottest code path in samples for accessibility access.
771 We need to move the logic for enabling/disabling the attribute cache to a level that can make
772 a more informed decision about when to enable/disable.
774 * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
775 (-[WebAccessibilityObjectWrapper enableAttributeCaching]):
776 (-[WebAccessibilityObjectWrapper disableAttributeCaching]):
777 (-[WebAccessibilityObjectWrapper accessibilityElementCount]):
778 (-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):
779 (-[WebAccessibilityObjectWrapper indexOfAccessibilityElement:]):
781 2014-05-18 Simon Fraser <simon.fraser@apple.com>
783 Use RenderStyle& in more places in RenderLayerBacking
784 https://bugs.webkit.org/show_bug.cgi?id=133061
786 Reviewed by Andreas Kling.
788 Convert several member functions to use references to RenderStyle rather
789 than pointers. Move canCreateTiledImage() higher in the file (no code
790 changes). Other minor cleanup.
792 * rendering/RenderLayerBacking.cpp:
793 (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
794 (WebCore::RenderLayerBacking::updateOpacity):
795 (WebCore::RenderLayerBacking::updateTransform):
796 (WebCore::RenderLayerBacking::updateFilters):
797 (WebCore::RenderLayerBacking::updateBlendMode):
798 (WebCore::RenderLayerBacking::updateGeometry):
799 (WebCore::hasBoxDecorations):
800 (WebCore::canCreateTiledImage):
801 (WebCore::hasBoxDecorationsOrBackgroundImage):
802 (WebCore::hasPerspectiveOrPreserves3D):
803 (WebCore::supportsDirectBoxDecorationsComposition):
804 (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
805 (WebCore::RenderLayerBacking::contentChanged):
806 (WebCore::RenderLayerBacking::startTransition):
807 * rendering/RenderLayerBacking.h:
809 2014-05-17 Simon Fraser <simon.fraser@apple.com>
811 Rename some RenderLayerBacking member functions
812 https://bugs.webkit.org/show_bug.cgi?id=133030
814 Reviewed by Sam Weinig.
816 Remove "GraphicsLayer" from some member function names on RenderLayerBacking.
820 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
821 (WebCore::AVFWrapper::createAVCFVideoLayer):
822 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
823 (WebCore::MediaPlayerPrivateQTKit::createQTMovieLayer):
824 * rendering/RenderLayer.cpp:
825 (WebCore::RenderLayer::calculateClipRects):
826 * rendering/RenderLayerBacking.cpp:
827 (WebCore::RenderLayerBacking::updateAfterLayout):
828 (WebCore::RenderLayerBacking::updateConfiguration):
829 (WebCore::RenderLayerBacking::updateGeometry):
830 (WebCore::RenderLayerBacking::contentChanged):
831 (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
832 (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Deleted.
833 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Deleted.
834 * rendering/RenderLayerBacking.h:
835 * rendering/RenderLayerCompositor.cpp:
836 (WebCore::RenderLayerCompositor::updateLayerCompositingState):
837 (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
838 (WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
839 (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):
840 (WebCore::RenderLayerCompositor::attachRootLayer):
842 2014-05-19 Antti Koivisto <antti@apple.com>
844 Fix assertion failure with simple line layout debug borders enabled.
846 Rubber-stamped by Andreas Kling.
848 * rendering/SimpleLineLayoutFunctions.cpp:
849 (WebCore::SimpleLineLayout::paintDebugBorders): We shoudn't try to paint empty rects.
851 2014-05-18 Andreas Kling <akling@apple.com>
853 Reduce constructor copypasta in RenderText and RenderElement.
854 <https://webkit.org/b/133056>
856 Use delegating constructors to remove duplicated initializer lists
857 from the constructors of RenderText and RenderElement.
859 Reviewed by Anders Carlsson.
861 * rendering/RenderElement.cpp:
862 (WebCore::RenderElement::RenderElement):
863 * rendering/RenderElement.h:
864 * rendering/RenderText.cpp:
865 (WebCore::RenderText::RenderText):
866 * rendering/RenderText.h:
868 2014-05-18 Brent Fulgham <bfulgham@apple.com>
870 Crash during scroll when latched
871 https://bugs.webkit.org/show_bug.cgi?id=133064
873 Reviewed by Simon Fraser.
875 * page/mac/EventHandlerMac.mm:
876 (WebCore::EventHandler::platformPrepareForWheelEvents): Prevent dereference of NULL
877 wheelEventTarget argument.
879 2014-05-18 Svetlana Redchenko <redchenko@yandex-team.ru>
881 Input ::selection pseudo class does not work leading to hidden selection
882 https://bugs.webkit.org/show_bug.cgi?id=38943
884 Reviewed by Darin Adler.
886 Test: fast/selectors/input-with-selection-pseudo-element.html
888 When text is selected inside input element, it should change the
889 color and background color according to the ::selection pseudo element.
891 * rendering/RenderObject.cpp:
892 (WebCore::RenderObject::selectionBackgroundColor):
893 (WebCore::RenderObject::selectionColor):
894 (WebCore::RenderObject::selectionPseudoStyle):
895 * rendering/RenderObject.h:
897 2014-05-18 Sam Weinig <sam@webkit.org>
899 [WebKit2] Implement ScriptMessageHandlers
900 https://bugs.webkit.org/show_bug.cgi?id=133053
902 Reviewed by Anders Carlsson.
904 * DerivedSources.make:
906 * WebCore.xcodeproj/project.pbxproj:
907 * bindings/js/JSDOMWindowBase.cpp:
908 (WebCore::JSDOMWindowBase::finishCreation):
909 * bindings/js/JSUserMessageHandlersNamespaceCustom.cpp: Added.
910 (WebCore::JSUserMessageHandlersNamespace::getOwnPropertySlotDelegate):
911 * page/DOMWindow.cpp:
912 (WebCore::DOMWindow::shouldHaveWebKitNamespaceForWorld):
913 (WebCore::DOMWindow::webkitNamespace):
915 * page/UserContentController.cpp:
916 (WebCore::UserContentController::addUserMessageHandlerDescriptor):
917 (WebCore::UserContentController::removeUserMessageHandlerDescriptor):
918 * page/UserContentController.h:
919 (WebCore::UserContentController::userMessageHandlerDescriptors):
920 * page/UserMessageHandler.cpp: Added.
921 (WebCore::UserMessageHandler::UserMessageHandler):
922 (WebCore::UserMessageHandler::~UserMessageHandler):
923 (WebCore::UserMessageHandler::postMessage):
924 (WebCore::UserMessageHandler::name):
925 (WebCore::UserMessageHandler::world):
926 * page/UserMessageHandler.h: Added.
927 (WebCore::UserMessageHandler::create):
928 * page/UserMessageHandler.idl: Added.
929 * page/UserMessageHandlerDescriptor.cpp: Added.
930 (WebCore::UserMessageHandlerDescriptor::UserMessageHandlerDescriptor):
931 (WebCore::UserMessageHandlerDescriptor::~UserMessageHandlerDescriptor):
932 (WebCore::UserMessageHandlerDescriptor::name):
933 (WebCore::UserMessageHandlerDescriptor::world):
934 * page/UserMessageHandlerDescriptor.h: Added.
935 (WebCore::UserMessageHandlerDescriptor::Client::~Client):
936 (WebCore::UserMessageHandlerDescriptor::create):
937 (WebCore::UserMessageHandlerDescriptor::client):
938 * page/UserMessageHandlerDescriptorTypes.h: Added.
939 * page/UserMessageHandlersNamespace.cpp: Added.
940 (WebCore::UserMessageHandlersNamespace::UserMessageHandlersNamespace):
941 (WebCore::UserMessageHandlersNamespace::~UserMessageHandlersNamespace):
942 (WebCore::UserMessageHandlersNamespace::handler):
943 * page/UserMessageHandlersNamespace.h: Added.
944 (WebCore::UserMessageHandlersNamespace::create):
945 * page/UserMessageHandlersNamespace.idl: Added.
946 * page/WebKitNamespace.cpp: Added.
947 (WebCore::WebKitNamespace::WebKitNamespace):
948 (WebCore::WebKitNamespace::~WebKitNamespace):
949 (WebCore::WebKitNamespace::messageHandlers):
950 * page/WebKitNamespace.h: Added.
951 (WebCore::WebKitNamespace::create):
952 * page/WebKitNamespace.idl: Added.
954 2014-05-18 Maciej Stachowiak <mjs@apple.com>
956 REGRESSION (r156546): Default media controls are laid out incorrectly when media element is styled with direction:rtl
957 https://bugs.webkit.org/show_bug.cgi?id=132531
958 <rdar://problem/16806267>
960 Reviewed by Mark Rowe.
962 This was already tested by the media/video-rtl.htm reftest, now unskipped.
964 * Modules/mediacontrols/mediaControlsApple.css:
965 (audio::-webkit-media-controls-panel): Add missing direction: ltr
967 2014-05-18 Rik Cabanier <cabanier@adobe.com>
969 support for navigator.hardwareConcurrency
970 https://bugs.webkit.org/show_bug.cgi?id=132588
972 Reviewed by Filip Pizlo.
974 Added a new API that returns the number of CPU cores up to 8.
976 Test: fast/dom/navigator-hardwareConcurrency.html
978 * Configurations/FeatureDefines.xcconfig:
979 * page/Navigator.cpp:
980 (WebCore::Navigator::hardwareConcurrency):
982 * page/Navigator.idl:
984 2014-05-18 Anders Carlsson <andersca@apple.com>
989 Move UserContentController symbols to the right place.
991 2014-05-18 Jon Lee <jonlee@apple.com>
993 Build fix for r169006.
997 * loader/ResourceLoader.h: Return didCreateQuickLookHandle() to public.
999 2014-05-18 Antti Koivisto <antti@apple.com>
1001 REGRESSION (r160259): text-combine glyphs are not rendered
1002 https://bugs.webkit.org/show_bug.cgi?id=127324
1004 Reviewed by Andreas Kling.
1006 The original text gets overwritten by a change that is supposed to affect rendered text only.
1007 Fixed by giving the text update functions well-defined purposes.
1009 Test: fast/text/text-combine-rendering.html
1011 * rendering/RenderCombineText.cpp:
1012 (WebCore::RenderCombineText::styleDidChange):
1013 (WebCore::RenderCombineText::setRenderedText):
1014 (WebCore::RenderCombineText::combineText):
1015 (WebCore::RenderCombineText::setTextInternal): Deleted.
1016 * rendering/RenderCombineText.h:
1017 * rendering/RenderCounter.cpp:
1018 (WebCore::RenderCounter::computePreferredLogicalWidths):
1019 * rendering/RenderText.cpp:
1020 (WebCore::RenderText::setRenderedText):
1022 This function now updates the rendered text but does not change the original.
1023 Get the original text by calling originalText().
1025 (WebCore::RenderText::setText):
1027 This the only place original text now changes.
1029 (WebCore::RenderText::setTextInternal): Deleted.
1031 Renamed to setRenderedText.
1033 * rendering/RenderText.h:
1034 * rendering/svg/RenderSVGInlineText.cpp:
1035 (WebCore::RenderSVGInlineText::setRenderedText):
1036 (WebCore::RenderSVGInlineText::setTextInternal): Deleted.
1037 * rendering/svg/RenderSVGInlineText.h:
1039 2014-05-17 Maciej Stachowiak <mjs@apple.com>
1041 Don't attempt to update id or name for nodes that are already removed
1042 https://bugs.webkit.org/show_bug.cgi?id=133041
1044 Reviewed by Sam Weinig.
1046 Tests: fast/dom/remove-element-with-id-that-was-inserted-on-DOMNodeRemoved.html
1047 fast/dom/remove-element-with-name-that-was-inserted-on-DOMNodeRemoved.html
1050 (WebCore::Element::removedFrom): Skip updating ids and names for an element not
1051 in a treescope, as we already do for elements not in a document.
1053 2014-05-17 Alexey Proskuryakov <ap@apple.com>
1055 REGRESSION (NetworkProcess): Trying to use appcache fallback crashes in ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache
1056 https://bugs.webkit.org/show_bug.cgi?id=133007
1057 <rdar://problem/13702706>
1059 appcache tests often fail on the Mac WebKit2 bot
1060 https://bugs.webkit.org/show_bug.cgi?id=82061
1062 Reviewed by Maciej Stachowiak.
1064 Covered by existing tests, which this patch enables.
1066 * WebCore.exp.in: Export ResourceLoader::cancel(const ResourceError&). It used
1067 to be virtual, but marking subclasses final has resulted in the compiler calling
1068 it directly from WebKitLegacy framework. Seeing that no subclass overrides it,
1069 I then made it non-virtual.
1070 Also export ApplicationCacheHost functions that are now used from WebKit2.
1072 * loader/ResourceLoader.h: Made the class abstract (as I didn't realize at first
1073 that it's always either a SubresourceLoader or a NetscapePlugInStreamLoader).
1074 Made ResourceHandleClient functions private, as they should never be called other
1075 than via a ResourceHandleClient pointer.
1077 * loader/NetscapePlugInStreamLoader.h:
1078 * loader/SubresourceLoader.h:
1081 * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willSwitchToSubstituteResource):
1082 Added a function to be called when switching to a substitute resource. We still
1083 need a ResourceLoader at this point, as substitute resource will be delivered through
1084 it, but we don't want it to continue its current load.
1086 * loader/appcache/ApplicationCacheHost.cpp:
1087 (WebCore::ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache):
1088 Call the ResourceLoader function instead of using handle, which is null when
1089 using out of process networking.
1091 2014-05-17 Andreas Kling <akling@apple.com>
1093 We shouldn't make a ScrollingThread on iOS.
1094 <https://webkit.org/b/133038>
1095 <rdar://problem/16947589>
1097 Don't call ScrollingThred::dispatch() from the pressure relief
1098 code on iOS since that will end up instantiating a scrolling thread
1099 which we'd otherwise never have.
1101 Reviewed by Sam Weinig.
1103 * platform/MemoryPressureHandler.cpp:
1104 (WebCore::MemoryPressureHandler::releaseMemory):
1106 2014-05-17 Piotr Grad <p.grad@samsung.com>
1108 Setting playback rate on video with media controller is not ignored.
1109 https://bugs.webkit.org/show_bug.cgi?id=129048
1111 Reviewed by Jer Noble.
1113 Replaced queries for m_playbackRate with effectivePlaybackRate()
1114 which includes media controller playback rate.
1116 Test: media/video-controller-child-rate.html
1118 * html/HTMLMediaElement.cpp:
1119 (WebCore::HTMLMediaElement::parseAttribute):
1120 * html/HTMLMediaElement.h:
1122 2014-05-16 Anders Carlsson <andersca@apple.com>
1124 Expose WKUserScript as API
1125 https://bugs.webkit.org/show_bug.cgi?id=133017
1126 <rdar://problem/16948059>
1128 Reviewed by Sam Weinig.
1133 * WebCore.xcodeproj/project.pbxproj:
1134 Change UserContentController.h to be a private header.
1137 (WebCore::Page::Page):
1138 Set m_userContentController from the page configuration and add it if it's not null.
1141 Add UserContentController to PageClients.
1143 * page/PageGroup.cpp:
1144 (WebCore::PageGroup::addPage):
1145 Only try to add a user content controller if the page doesn't already have one.
1147 (WebCore::PageGroup::removePage):
1148 Only try to remove the user content controller if it's the group one.
1150 2014-05-17 Andreas Kling <akling@apple.com>
1152 REGRESSION (r166422): All RenderBox objects grew 104 bytes from adding repaint timers.
1153 <https://webkit.org/b/133027>
1154 <rdar://problem/16867410>
1156 Instead of storing a rarely-used repaint timer on every RenderBox, store one
1157 on the RenderView, and keep a hash set of renderers needing repaint.
1159 Renderers get a flag tracking whether they have a pending lazy repaint.
1160 This way we can avoid hash lookups in the common case.
1162 Also added a static assertion to catch RenderBox growing in the future.
1164 Reviewed by Antti Koivisto.
1166 * rendering/RenderBox.cpp:
1167 (WebCore::SameSizeAsRenderBox::~SameSizeAsRenderBox):
1168 (WebCore::RenderBox::RenderBox):
1169 (WebCore::RenderBox::~RenderBox):
1170 (WebCore::RenderBox::paintBoxDecorations):
1171 (WebCore::RenderBox::layoutOverflowRectForPropagation):
1172 * rendering/RenderBox.h:
1173 * rendering/RenderElement.cpp:
1174 (WebCore::RenderElement::RenderElement):
1175 * rendering/RenderElement.h:
1176 (WebCore::RenderElement::setRenderBoxNeedsLazyRepaint):
1177 (WebCore::RenderElement::renderBoxNeedsLazyRepaint):
1178 * rendering/RenderView.cpp:
1179 (WebCore::RenderView::RenderView):
1180 (WebCore::RenderView::scheduleLazyRepaint):
1181 (WebCore::RenderView::unscheduleLazyRepaint):
1182 (WebCore::RenderView::lazyRepaintTimerFired):
1183 * rendering/RenderView.h:
1185 2014-05-16 Jer Noble <jer.noble@apple.com>
1187 [Mac][MSE] setCurrentTime() goes down fastSeek path in MediaPlayerPrivateMediaSourceAVFObjC.
1188 https://bugs.webkit.org/show_bug.cgi?id=133023
1190 Reviewed by Eric Carlson.
1192 When seeking a MSE video, do not go down the fastSeekForMediaTime() path if the
1193 seek resulted from a setCurrentTime() call. The logic can lead to attempted seeks
1194 before buffered ranges.
1196 * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
1197 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
1198 * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
1199 * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
1200 (WebCore::MediaSourcePrivateAVFObjC::seekToTime):
1202 2014-05-16 Benjamin Poulain <bpoulain@apple.com>
1204 [iOS] ScrollView::visibleContentRectInternal is bypassing the iOS code for unobscuredContentRect
1205 https://bugs.webkit.org/show_bug.cgi?id=133008
1207 Reviewed by Simon Fraser.
1209 * platform/ScrollView.cpp:
1210 (WebCore::ScrollView::visibleContentRectInternal):
1211 ScrollView::visibleContentRectInternal() was calling the internal implementation of visibleContentRect().
1212 That was skipping the iOS implementation and getting the framerect directly. That size is invalid on iOS
1213 when the exposed rect and unobscured rect are not the same.
1215 2014-05-16 Jer Noble <jer.noble@apple.com>
1217 [Mac] naturalSize not updated when preload=metadata
1218 https://bugs.webkit.org/show_bug.cgi?id=132994
1220 Reviewed by Eric Carlson.
1222 Test: media/video-load-preload-metadata-naturalsize.html
1224 When preload=metadata, we never create an AVPlayerItem, and therefore never receive a
1225 presentationSize KVO. When an AVAsset informs us that its tracks have changed, and there
1226 is no AVPlayerItem, recalculate presentation size based on the first video track's natural
1229 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1230 (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged):
1231 * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
1232 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
1234 2014-05-16 Simon Fraser <simon.fraser@apple.com>
1236 Remove "region-based columns" prefs
1237 https://bugs.webkit.org/show_bug.cgi?id=133006
1238 <rdar://problem/16945824>
1240 Reviewed by Dave Hyatt.
1242 Remove "region-based columns" prefs and related code, since this is only
1243 way to render columns now.
1247 2014-05-16 Antti Koivisto <antti@apple.com>
1249 Link search area for touch events is too large in some cases
1250 https://bugs.webkit.org/show_bug.cgi?id=132988
1251 <rdar://problem/16917843>
1253 Reviewed by Simon Fraser.
1255 * page/ios/FrameIOS.mm:
1256 (WebCore::Frame::qualifyingNodeAtViewportLocation):
1258 - Adjust the search area to screen ppi.
1259 - Remove cut-off at scale 1. This made us pick physically far-away elements when zoomed in.
1261 * platform/PlatformScreen.h:
1262 * platform/ios/PlatformScreenIOS.mm:
1263 (WebCore::mobileGestaltFloatValue):
1264 (WebCore::screenPPIFactor):
1266 Figure out screens physical PPI relative to a base.
1268 2014-05-16 Jer Noble <jer.noble@apple.com>
1270 [MSE] Crash at WebCore::SourceBuffer::~SourceBuffer + 110
1271 https://bugs.webkit.org/show_bug.cgi?id=132973
1273 Reviewed by Eric Carlson.
1275 Change SourceBuffer::m_private into a Ref<>, and add an assertion to
1276 SourceBufferPrivateAVFObjC's destructor if its client has not been cleared.
1278 Eliminate unnecessary churn in MediaSourcePrivateAVFObjC by having the predicate
1279 functor take bare pointers, rather than a PassRefPtr.
1281 The underlying problem seems to be in WebAVStreamDataParserListener. RefPtrs were
1282 being created off the main thread to a non-thread safe ref counted class. In some
1283 situations, this would result in double decrementing the ref, which would cause an
1284 early destruction of the underlying object. Instead replace these RefPtr strong
1285 pointers with explicit weak ones. Ensure the parser and its delegate are not freed
1286 before the append operation completes by passing strong pointers into the async
1287 append operation lambda.
1289 There were a few places where we weren't null checking m_mediaSource before using it,
1290 and at least one place where we weren't clearing m_mediaSource.
1292 * Modules/mediasource/SourceBuffer.cpp:
1293 (WebCore::SourceBuffer::SourceBuffer): Use Ref instead of RefPtr.
1294 (WebCore::SourceBuffer::appendBufferTimerFired): Ditto.
1295 * Modules/mediasource/SourceBuffer.h:
1296 * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
1297 (WebCore::MediaSourcePrivateAVFObjCHasAudio): Take a bare pointer, instead of a PassRefPtr.
1298 (WebCore::MediaSourcePrivateAVFObjCHasVideo): Ditto.
1299 * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
1300 (WebCore::MediaSourcePrivateAVFObjC::removeSourceBuffer): Clear the back pointer when removing a buffer.
1301 * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
1302 * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
1303 (-[WebAVStreamDataParserListener initWithParser:parent:WebCore::]): Use WeakPtr instead of RefPtr.
1304 (-[WebAVStreamDataParserListener invalidate]): Ditto.
1305 (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]): Ditto.
1306 (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]): Ditto.
1307 (-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]): Ditto.
1308 (-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]): Ditto.
1309 (-[WebAVStreamDataParserListener streamDataParser:didReachEndOfTrackWithTrackID:mediaType:]): Ditto.
1310 (-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]): Ditto.
1311 (WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
1312 (WebCore::SourceBufferPrivateAVFObjC::append): Ditto.
1314 2014-05-16 Zalan Bujtas <zalan@apple.com>
1316 Subpixel rendering: Push named flows in region to device pixel when painting.
1317 https://bugs.webkit.org/show_bug.cgi?id=132986
1319 Reviewed by Simon Fraser.
1321 Remove integral rounding when named flow sets the painting offset on the graphics context.
1322 Use device pixel snapping instead to ensure that we can paint on odd device pixel positions on retina displays.
1324 Test: fast/regions/hidpi-region-with-auto-margin-on-subpixel-position.html
1326 * rendering/RenderLayer.cpp:
1327 (WebCore::RenderLayer::calculateClipRects):
1329 2014-05-16 Radu Stavila <stavila@adobe.com>
1331 [CSS Regions] Add ASSERT to make sure using the flowThread cache does not return incorrect results
1332 https://bugs.webkit.org/show_bug.cgi?id=132906
1334 Reviewed by Simon Fraser.
1336 If flowThreadContainingBlock() is called on an object which is in a different
1337 flow thread than the one currently being laid out, this method will return an incorrect
1338 result. I added an assertion for that to make sure we catch and treat any such scenarios.
1339 For the moment, this assertion is only validated for regions, as multicol still has some issues.
1341 No new tests required.
1343 * rendering/RenderObject.cpp:
1344 (WebCore::RenderObject::locateFlowThreadContainingBlockNoCache):
1345 (WebCore::RenderObject::locateFlowThreadContainingBlock):
1346 * rendering/RenderObject.h:
1348 2014-05-16 Martin Hock <mhock@apple.com>
1350 MemoryCache::addImageToCache should return the result of add().
1351 https://bugs.webkit.org/show_bug.cgi?id=132928
1352 <rdar://problem/16651547>
1354 Reviewed by Alexey Proskuryakov.
1356 API test: WebKit1.MemoryCacheADdImageToCache (MemoryCacheAddImageToCacheIOS.mm)
1358 * loader/cache/MemoryCache.cpp:
1359 (WebCore::MemoryCache::addImageToCache):
1361 2014-05-16 Andrei Bucur <abucur@adobe.com>
1363 [CSS Regions] Reduce the RenderRegion invasiveness in rendering code
1364 https://bugs.webkit.org/show_bug.cgi?id=132121
1366 Reviewed by Antti Koivisto.
1368 Remove the RenderRegion / RenderNamedFlowFragment parameters and fields from
1369 the painting / hit testing data structures and use a stateful approach to
1370 correctly handle regions.
1372 When painting or hit testing, the current flow thread is saved along the current
1373 region. They are accessed through the |currentRenderNamedFlowFragment| helper
1374 method on RenderObject or RenderLayer.
1376 The patch also changes a bunch of 0s to nullptrs.
1378 Tests: No new tests, no functional change.
1380 * html/shadow/MediaControlElements.cpp:
1381 (WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
1382 * rendering/HitTestLocation.cpp:
1383 (WebCore::HitTestLocation::HitTestLocation):
1384 (WebCore::HitTestLocation::operator=):
1385 * rendering/HitTestLocation.h:
1386 (WebCore::HitTestLocation::region): Deleted.
1387 * rendering/HitTestResult.h:
1388 * rendering/PaintInfo.h:
1389 (WebCore::PaintInfo::PaintInfo):
1390 * rendering/RenderBlock.cpp:
1391 (WebCore::RenderBlock::paint):
1392 (WebCore::RenderBlock::paintObject):
1393 (WebCore::RenderBlock::selectionGaps):
1394 (WebCore::RenderBlock::nodeAtPoint):
1395 * rendering/RenderBox.cpp:
1396 (WebCore::RenderBox::nodeAtPoint):
1397 (WebCore::RenderBox::paintBoxDecorations):
1398 (WebCore::RenderBox::pushContentsClip):
1399 * rendering/RenderBoxModelObject.cpp:
1400 (WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
1401 (WebCore::RenderBoxModelObject::paintFillLayerExtended):
1402 * rendering/RenderBoxModelObject.h:
1403 * rendering/RenderLayer.cpp:
1404 (WebCore::RenderLayer::paint):
1405 (WebCore::RenderLayer::paintLayer):
1406 (WebCore::RenderLayer::paintLayerContents):
1407 (WebCore::RenderLayer::paintLayerByApplyingTransform):
1408 (WebCore::RenderLayer::collectFragments):
1409 (WebCore::RenderLayer::updatePaintingInfoForFragments):
1410 (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
1411 (WebCore::RenderLayer::paintBackgroundForFragments):
1412 (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
1413 (WebCore::RenderLayer::paintOutlineForFragments):
1414 (WebCore::RenderLayer::paintMaskForFragments):
1415 (WebCore::RenderLayer::hitTest):
1416 (WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
1417 (WebCore::RenderLayer::hitTestLayer):
1418 (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
1419 (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
1420 (WebCore::RenderLayer::calculateClipRects):
1421 * rendering/RenderLayer.h:
1422 * rendering/RenderLayerBacking.cpp:
1423 (WebCore::RenderLayerBacking::updateCompositedBounds):
1424 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1425 * rendering/RenderLayerCompositor.cpp:
1426 (WebCore::RenderLayerCompositor::addToOverlapMap):
1427 (WebCore::RenderLayerCompositor::clippedByAncestor):
1428 * rendering/RenderObject.cpp:
1429 (WebCore::RenderObject::currentRenderNamedFlowFragment):
1430 * rendering/RenderObject.h:
1431 * rendering/RenderReplaced.cpp:
1432 (WebCore::RenderReplaced::shouldPaint):
1433 * rendering/RenderReplica.cpp:
1434 (WebCore::RenderReplica::paint):
1435 * rendering/RenderTable.cpp:
1436 (WebCore::RenderTable::nodeAtPoint):
1437 * rendering/RenderTableSection.cpp:
1438 (WebCore::RenderTableSection::nodeAtPoint):
1439 * rendering/RenderTreeAsText.cpp:
1440 (WebCore::writeLayers):
1441 * rendering/RootInlineBox.cpp:
1442 (WebCore::RootInlineBox::paint):
1443 * rendering/svg/RenderSVGRoot.cpp:
1444 (WebCore::RenderSVGRoot::paintReplaced):
1446 2014-05-16 Kiran <kiran.guduru@samsung.com>
1448 RTCDtmfSender default values need to be updated.
1449 https://bugs.webkit.org/show_bug.cgi?id=132952
1451 Reviewed by Eric Carlson.
1453 The default ToneDuration and ToneGap values are modified in the updated spec.
1454 So these values need to be updated.
1456 Test: fast/mediastream/RTCPeerConnection-dtmf.html.
1458 * Modules/mediastream/RTCDTMFSender.cpp:
1460 2014-05-15 Daniel Bates <dabates@apple.com>
1462 Attempt to fix the Apple Mavericks Release, Apple MountainLion Release,
1463 Apple MountainLion Release (32-bit Build), EFL, and GTK builds following
1464 <http://trac.webkit.org/changeset/168921> (https://bugs.webkit.org/show_bug.cgi?id=132669)
1466 * dom/ContainerNode.cpp: Include SVGElement.h for the definition of Node::hasTagName(const SVGQualifiedName&).
1468 2014-05-15 Daniel Bates <dabates@apple.com>
1470 ASSERT_NOT_REACHED() in DocumentOrderedMap::get() when removing SVG subtree
1471 https://bugs.webkit.org/show_bug.cgi?id=132669
1472 <rdar://problem/14931432>
1474 Reviewed by Brent Fulgham and Ryosuke Niwa.
1476 Fixes an assertion failure when removing an SVG element with a duplicate id.
1478 When removing an SVG element with id A we synchronously instruct each element that references A
1479 to find the first element with id A, call this N, from the document root and register itself to
1480 either receive subsequent notifications from N (say, there is another element with id A) or as
1481 waiting for an element with id A (say, N = nullptr; => we removed the last element with id A from
1482 the document). Because the elements that reference A perform this operation synchronously when
1483 removing an element they consult an transient state of the DocumentOrderedMap when querying for the
1486 Without loss of generality, let E, E_1, E_2, and E_3 be elements, where E_1, E_2, E_3 are children
1487 of E in that order and E_1.id = E_2.id = A and E_3.href = #A (that is, it references an element
1488 with id A). Suppose we remove E then we remove E_1, update DocumentOrderedMap to decrement its count
1489 for id A, and notify E_3 to look for an element with id A. This leads to an assertion failure since
1490 DocumentOrderedMap expects to find an element with id A, E_2, but cannot find such an element when
1491 traversing from the document root because E was unlinked from the document root (i.e. E_2 is in a
1494 Tests: svg/custom/change-id-of-use-during-removal.html
1495 svg/custom/remove-subtree-including-path-with-duplicate-id-referenced-by-later-textpath.html
1496 svg/custom/remove-subtree-including-text-with-duplicate-id-referenced-by-later-tref.html
1497 svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-earlier-use.html
1498 svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-animate.html
1499 svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-feimage.html
1500 svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-mpath.html
1501 svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-use.html
1502 svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-use2.html
1503 svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-use-in-different-subtree.html
1504 svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-use-with-duplicate-id-in-different-subtree.html
1505 svg/custom/remove-use-with-duplicate-id-referenced-by-later-use.html
1507 * dom/ContainerNode.cpp:
1508 (WebCore::ContainerNode::removeChild): Call SVGDocumentExtensions::rebuildElements() after we remove
1509 a DOM subtree so that applicable SVG elements can update their referenced element when the DocumentOrderedMap
1510 is in a stable-state.
1511 (WebCore::ContainerNode::removeChildren): Ditto.
1512 * svg/SVGDocumentExtensions.cpp:
1513 (WebCore::SVGDocumentExtensions::rebuildElements): Added; notifies SVG elements that their href attribute
1514 changed so that they query the DocumentOrderedMap for the element they reference by id in their href attribute.
1515 (WebCore::SVGDocumentExtensions::clearTargetDependencies): Added; Called from removing
1516 an SVG element S from the DOM. Appends all elements that reference the id of S to the end of a Vector of
1517 elements to be rebuilt (when SVGDocumentExtensions::rebuildElements() is called) and notifies these elements
1518 that have been marked to be rebuilt so that they can invalidate their state (e.g. stop animating).
1519 (WebCore::SVGDocumentExtensions::rebuildAllElementReferencesForTarget): Changed to take its argument by reference
1520 (since it's always non-null) and simplified logic to synchronously notify SVG updates that their referenced element
1521 may have changed. Calling SVGElement::svgAttributeChanged() on an element E should at most remove the dependencies
1523 * svg/SVGDocumentExtensions.h:
1524 * svg/SVGElement.cpp:
1525 (WebCore::SVGElement::~SVGElement): Substitute "*this" for "this" as SVGDocumentExtensions::rebuildAllElementReferencesForTarget()
1526 now takes a reference instead of a pointer.
1527 (WebCore::SVGElement::removedFrom): Modified to call SVGDocumentExtensions::clearTargetDependencies().
1528 (WebCore::SVGElement::attributeChanged): Substitute "*this" for "this" as SVGDocumentExtensions::rebuildAllElementReferencesForTarget()
1529 now takes a reference instead of a pointer.
1531 (WebCore::SVGElement::callClearTarget): Added; calls through to private virtual SVGElement::clearTarget().
1532 (WebCore::SVGElement::clearTarget): Added.
1533 * svg/SVGTRefElement.cpp:
1534 (WebCore::SVGTRefElement::clearTarget): Added.
1535 * svg/SVGTRefElement.h:
1536 * svg/animation/SVGSMILElement.cpp:
1537 (WebCore::SVGSMILElement::clearTarget): Added.
1538 * svg/animation/SVGSMILElement.h:
1540 2014-05-15 Simon Fraser <simon.fraser@apple.com>
1542 [iOS WK2] When zoomed, fixed elements jump at the start of a scroll, and jump back at the end.
1543 https://bugs.webkit.org/show_bug.cgi?id=132978
1544 <rdar://problem/16894428>
1546 Reviewed by Benjamin Poulain.
1548 This was the actual cause of the bug; r168560 changed the rect passed in here
1549 to be the customFixedPositionRect rather than the unobscured rect, but we
1550 used it to call FrameView::rectForViewportConstrainedObjects() which gave back
1551 another bogus rect. So just use the rect passed in.
1553 * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
1554 (WebCore::ScrollingTreeScrollingNodeIOS::updateLayersAfterViewportChange):
1556 2014-05-15 Daniel Bates <dabates@apple.com>
1558 SVG element may reference arbitrary DOM element before running its insertion logic
1559 https://bugs.webkit.org/show_bug.cgi?id=132757
1560 <rdar://problem/15703817>
1562 Reviewed by Ryosuke Niwa.
1564 Fixes an issue where an SVG element may reference an arbitrary DOM element e before e finished being
1565 inserted in the tree.
1567 Currently when an SVG element A is inserted into a document we use document.getElementById() to find the
1568 element B it references (if any). If A is inserted before B and B has the same id as a later element in
1569 the document then A can find B before B is notified that its been inserted into the document (i.e. before
1570 Element::insertedFrom() is called on B). Instead, A should call document.getElementById() only after
1571 cessation of the insertion operation that inserted it to ensure that all inserted nodes (including B)
1572 processed their insertion-specific logic.
1574 Tests: svg/custom/reparent-animate-element.html
1575 svg/custom/reparent-feimage-element.html
1576 svg/custom/reparent-mpath-element.html
1577 svg/custom/reparent-textpath-element.html
1578 svg/custom/reparent-tref-element.html
1579 svg/custom/reparent-use-element.html
1581 * svg/SVGFEImageElement.cpp:
1582 (WebCore::SVGFEImageElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
1583 we are called back to resolve our target element (i.e. call SVGFEImageElement::buildPendingResources())
1584 after the subtree we're in is inserted.
1585 (WebCore::SVGFEImageElement::didNotifySubtreeInsertions): Added; turns around and calls SVGFEImageElement::buildPendingResources().
1586 * svg/SVGFEImageElement.h:
1587 * svg/SVGMPathElement.cpp:
1588 (WebCore::SVGMPathElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
1589 we are called back to resolve our target element (i.e. call SVGMPathElement::buildPendingResources())
1590 after the subtree we're in is inserted.
1591 (WebCore::SVGMPathElement::didNotifySubtreeInsertions): Added; turns around and calls SVGMPathElement::buildPendingResources().
1592 * svg/SVGMPathElement.h:
1593 * svg/SVGTRefElement.cpp:
1594 (WebCore::SVGTRefElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
1595 we are called back to resolve our target element (i.e. call SVGTRefElement::buildPendingResources())
1596 after the subtree we're in is inserted.
1597 (WebCore::SVGTRefElement::didNotifySubtreeInsertions): Added; turns around and calls SVGTRefElement::buildPendingResources().
1598 * svg/SVGTRefElement.h:
1599 * svg/SVGTextPathElement.cpp:
1600 (WebCore::SVGTextPathElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
1601 we are called back to resolve our target element (i.e. call SVGTextPathElement::buildPendingResources())
1602 after the subtree we're in is inserted.
1603 (WebCore::SVGTextPathElement::didNotifySubtreeInsertions): Added; turns around and calls SVGTextPathElement::buildPendingResources().
1604 * svg/SVGTextPathElement.h:
1605 * svg/SVGUseElement.cpp:
1606 (WebCore::SVGUseElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
1607 we are called back to resolve our target element (i.e. call SVGUseElement::buildPendingResources()) after its subtree is
1609 (WebCore::SVGUseElement::didNotifySubtreeInsertions): Added; turns around and calls SVGUseElement::buildPendingResources().
1610 * svg/SVGUseElement.h:
1611 * svg/animation/SVGSMILElement.cpp:
1612 (WebCore::SVGSMILElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
1613 we are called back to resolve our target element (i.e. call SVGSMILElement::buildPendingResources())
1614 after the subtree we're in is inserted.
1615 (WebCore::SVGSMILElement::didNotifySubtreeInsertions): Added; turns around and calls SVGSMILElement::buildPendingResources().
1616 * svg/animation/SVGSMILElement.h:
1618 2014-05-15 Mark Hahnenberg <mhahnenberg@apple.com>
1620 JSDOMWindow should not claim HasImpureGetOwnPropertySlot
1621 https://bugs.webkit.org/show_bug.cgi?id=132918
1623 Reviewed by Geoffrey Garen.
1625 Tests: js/cached-window-properties.html
1626 js/cached-window-prototype-properties.html
1628 We now correctly handle the impurity of JSDOMWindow's custom getOwnPropertySlot without needing the
1629 blanket HasImpureGetOwnPropertySlot. We do this through the use of watchpoints and by explicitly forbidding
1630 any caching beyond a certain point using PropertySlot::disableCaching. Getting rid of this flag will allow
1631 us to cache many properties/methods on both the JSDOMWindow and its prototype, which are very commonly used
1634 * bindings/js/JSDOMWindowCustom.cpp:
1635 (WebCore::JSDOMWindow::getOwnPropertySlot):
1636 * bindings/scripts/CodeGeneratorJS.pm:
1637 (HasComplexGetOwnProperty):
1638 (InterfaceRequiresAttributesOnInstance):
1639 (InstanceOverridesGetOwnPropertySlot):
1642 2014-05-15 Alexey Proskuryakov <ap@apple.com>
1644 NetworkProcess crashes at ResourceHandle::continueDidReceiveResponse
1645 https://bugs.webkit.org/show_bug.cgi?id=132966
1646 <rdar://problem/16373694>
1648 Reviewed by Brady Eidson.
1650 Covered by many fast/files tests.
1652 * platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::continueDidReceiveResponse):
1653 * platform/network/BlobResourceHandle.h:
1654 * platform/network/ResourceHandle.h:
1655 Don't call delegate's continueDidReceiveResponse when loading a blob:// URL,
1656 the delegate is null. On the Mac, we used to lazily create it, which was also wrong,
1657 but at least not observable.
1659 2014-05-15 Commit Queue <commit-queue@webkit.org>
1661 Unreviewed, rolling out r168899.
1662 https://bugs.webkit.org/show_bug.cgi?id=132965
1664 Broke some compositing regions tests on Mavericks (Requested
1665 by mihnea___ on #webkit).
1669 "[CSS Regions] Reduce the RenderRegion invasiveness in
1671 https://bugs.webkit.org/show_bug.cgi?id=132121
1672 http://trac.webkit.org/changeset/168899
1674 2014-05-15 Alex Christensen <achristensen@webkit.org>
1676 Add pointer lock to features without enabling it.
1677 https://bugs.webkit.org/show_bug.cgi?id=132961
1679 Reviewed by Sam Weinig.
1681 * Configurations/FeatureDefines.xcconfig:
1682 Added ENABLE_POINTER_LOCK to list of features.
1684 Added linker symbols which differ with pointer lock enabled.
1685 * WebCore.xcodeproj/project.pbxproj:
1686 Added PointerLockController.cpp to build.
1688 2014-05-15 Mark Hahnenberg <mhahnenberg@apple.com>
1690 Move subframe name getter lookup later in JSDOMWindow::getOwnPropertySlot
1691 https://bugs.webkit.org/show_bug.cgi?id=132922
1693 Reviewed by Geoffrey Garen.
1697 In JSDOMWindow::getOwnPropertySlot, we currently look for the property on the JSDOMWindow,
1698 then we search the window's subframes for name getters, then we look in the window's prototype
1699 chain. Apparently we were doing the lookup in this order to be compatible with Mozilla, but
1700 Mozilla no longer implements this behavior. Instead, they do the lookup on the prototype before
1701 looking for subframe name getters. We should change this to match Mozilla. This has the convenient
1702 side effect of allowing us to cache lookups in the window's prototype chain.
1704 * bindings/js/JSDOMWindowCustom.cpp:
1705 (WebCore::JSDOMWindow::getOwnPropertySlot):
1707 2014-05-15 Simon Fraser <simon.fraser@apple.com>
1709 [UI-side compositing] Fix copying animations between layers, and pausing them
1710 https://bugs.webkit.org/show_bug.cgi?id=132943
1711 <rdar://problem/16906369&16906541>
1713 Reviewed by Tim Horton.
1715 Pass the animation key back to animationStarted(), though this isn't used
1716 when animations are running in-process.
1718 * platform/graphics/ca/PlatformCALayer.h:
1719 * platform/graphics/ca/mac/PlatformCALayerMac.h:
1720 * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1721 (-[WebAnimationDelegate animationDidStart:]):
1722 (PlatformCALayerMac::animationStarted):
1723 * platform/graphics/ca/win/PlatformCALayerWin.cpp:
1724 (PlatformCALayerWin::animationStarted):
1725 * platform/graphics/ca/win/PlatformCALayerWin.h:
1727 2014-05-15 Andrei Bucur <abucur@adobe.com>
1729 [CSS Regions] Reduce the RenderRegion invasiveness in rendering code
1730 https://bugs.webkit.org/show_bug.cgi?id=132121
1732 Reviewed by Antti Koivisto.
1734 Remove the RenderRegion / RenderNamedFlowFragment parameters and fields from
1735 the painting / hit testing data structures and use a stateful approach to
1736 correctly handle regions.
1738 When painting or hit testing, the current flow thread is saved along the current
1739 region. They are accessed through the |currentRenderNamedFlowFragment| helper
1740 method on RenderObject or RenderLayer.
1742 The patch also changes a bunch of 0s to nullptrs.
1744 Tests: No new tests, no functional change.
1746 * html/shadow/MediaControlElements.cpp:
1747 (WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
1748 * rendering/HitTestLocation.cpp:
1749 (WebCore::HitTestLocation::HitTestLocation):
1750 (WebCore::HitTestLocation::operator=):
1751 * rendering/HitTestLocation.h:
1752 (WebCore::HitTestLocation::region): Deleted.
1753 * rendering/HitTestResult.h:
1754 * rendering/PaintInfo.h:
1755 (WebCore::PaintInfo::PaintInfo):
1756 * rendering/RenderBlock.cpp:
1757 (WebCore::RenderBlock::paint):
1758 (WebCore::RenderBlock::paintObject):
1759 (WebCore::RenderBlock::selectionGaps):
1760 (WebCore::RenderBlock::nodeAtPoint):
1761 * rendering/RenderBox.cpp:
1762 (WebCore::RenderBox::nodeAtPoint):
1763 (WebCore::RenderBox::paintBoxDecorations):
1764 (WebCore::RenderBox::pushContentsClip):
1765 * rendering/RenderBoxModelObject.cpp:
1766 (WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
1767 (WebCore::RenderBoxModelObject::paintFillLayerExtended):
1768 * rendering/RenderBoxModelObject.h:
1769 * rendering/RenderLayer.cpp:
1770 (WebCore::RenderLayer::paint):
1771 (WebCore::RenderLayer::paintLayer):
1772 (WebCore::RenderLayer::paintLayerContents):
1773 (WebCore::RenderLayer::paintLayerByApplyingTransform):
1774 (WebCore::RenderLayer::collectFragments):
1775 (WebCore::RenderLayer::updatePaintingInfoForFragments):
1776 (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
1777 (WebCore::RenderLayer::paintBackgroundForFragments):
1778 (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
1779 (WebCore::RenderLayer::paintOutlineForFragments):
1780 (WebCore::RenderLayer::paintMaskForFragments):
1781 (WebCore::RenderLayer::hitTest):
1782 (WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
1783 (WebCore::RenderLayer::hitTestLayer):
1784 (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
1785 (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
1786 (WebCore::RenderLayer::calculateClipRects):
1787 * rendering/RenderLayer.h:
1788 * rendering/RenderLayerBacking.cpp:
1789 (WebCore::RenderLayerBacking::updateCompositedBounds):
1790 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1791 * rendering/RenderLayerCompositor.cpp:
1792 (WebCore::RenderLayerCompositor::addToOverlapMap):
1793 (WebCore::RenderLayerCompositor::clippedByAncestor):
1794 * rendering/RenderObject.cpp:
1795 (WebCore::RenderObject::currentRenderNamedFlowFragment):
1796 * rendering/RenderObject.h:
1797 * rendering/RenderReplaced.cpp:
1798 (WebCore::RenderReplaced::shouldPaint):
1799 * rendering/RenderReplica.cpp:
1800 (WebCore::RenderReplica::paint):
1801 * rendering/RenderTable.cpp:
1802 (WebCore::RenderTable::nodeAtPoint):
1803 * rendering/RenderTableSection.cpp:
1804 (WebCore::RenderTableSection::nodeAtPoint):
1805 * rendering/RenderTreeAsText.cpp:
1806 (WebCore::writeLayers):
1807 * rendering/RootInlineBox.cpp:
1808 (WebCore::RootInlineBox::paint):
1809 * rendering/svg/RenderSVGRoot.cpp:
1810 (WebCore::RenderSVGRoot::paintReplaced):
1812 2014-05-14 Simon Fraser <simon.fraser@apple.com>
1814 Clean up "has non-zero begin time" terminology in animations
1815 https://bugs.webkit.org/show_bug.cgi?id=132942
1817 Reviewed by Tim Horton.
1819 Change the "non-zero beginTime" terminology in the platform CA animations
1820 code to "explicit beginTime": this flag really means that we explicitly set
1821 the beginTime of the animation, rather than let CA set the beginTime when
1822 committing the animation. This flag is used for animations with negative
1823 delay, and when pausing.
1825 The WKNonZeroBeginTimeFlag key was spread across PlatformCALayerMac and PlatformCAAnimationMac,
1826 so hide it behind getter/setter functions.
1828 Remove lots of m_layer.get() in PlatformCAAnimationMac.
1830 * platform/graphics/ca/mac/PlatformCAAnimationMac.h:
1831 * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
1832 (WebCore::hasExplicitBeginTime):
1833 (WebCore::setHasExplicitBeginTime):
1834 (PlatformCAAnimationMac::copy):
1835 (PlatformCAAnimationMac::keyPath):
1836 (PlatformCAAnimationMac::beginTime):
1837 (PlatformCAAnimationMac::setBeginTime):
1838 (PlatformCAAnimationMac::duration):
1839 (PlatformCAAnimationMac::setDuration):
1840 (PlatformCAAnimationMac::speed):
1841 (PlatformCAAnimationMac::setSpeed):
1842 (PlatformCAAnimationMac::timeOffset):
1843 (PlatformCAAnimationMac::setTimeOffset):
1844 (PlatformCAAnimationMac::repeatCount):
1845 (PlatformCAAnimationMac::setRepeatCount):
1846 (PlatformCAAnimationMac::autoreverses):
1847 (PlatformCAAnimationMac::setAutoreverses):
1848 (PlatformCAAnimationMac::fillMode):
1849 (PlatformCAAnimationMac::setFillMode):
1850 (PlatformCAAnimationMac::setTimingFunction):
1851 (PlatformCAAnimationMac::copyTimingFunctionFrom):
1852 (PlatformCAAnimationMac::isRemovedOnCompletion):
1853 (PlatformCAAnimationMac::setRemovedOnCompletion):
1854 (PlatformCAAnimationMac::isAdditive):
1855 (PlatformCAAnimationMac::setAdditive):
1856 (PlatformCAAnimationMac::valueFunction):
1857 (PlatformCAAnimationMac::setValueFunction):
1858 (hasNonZeroBeginTimeFlag): Deleted.
1859 (setNonZeroBeginTimeFlag): Deleted.
1860 * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1861 (-[WebAnimationDelegate animationDidStart:]):
1863 2014-05-15 Carlos Garcia Campos <cgarcia@igalia.com>
1865 [GTK] Compile all installed resources as GResources
1866 https://bugs.webkit.org/show_bug.cgi?id=131099
1868 Reviewed by Philippe Normand.
1870 * PlatformGTK.cmake: Do not install the resources.
1871 * platform/audio/gtk/AudioBusGtk.cpp:
1872 (WebCore::AudioBus::loadPlatformResource): Load the audio resource
1873 from GResources and use createBusFromInMemoryAudioFile().
1874 * platform/graphics/Image.h: Remove unsued function loadPlatformThemeIcon.
1875 * platform/graphics/gtk/ImageGtk.cpp:
1876 (WebCore::loadImageFromGResource): Load the given icon name from GResources.
1877 (WebCore::loadResourceSharedBuffer): Use char* instead of CString.
1878 (WebCore::loadMissingImageIconFromTheme): Try to load the missing
1879 icon from the current GTK icon theme.
1880 (WebCore::Image::loadPlatformResource): Call
1881 loadMissingImageIconFromTheme for missing icon or
1882 loadImageFromGResource for any other icon name.
1883 (WebCore::getPathToImageResource): Deleted.
1884 (WebCore::getThemeIconFileName): Deleted.
1885 (WebCore::loadImageFromFile): Deleted.
1886 (WebCore::Image::loadPlatformThemeIcon): Deleted.
1888 2014-05-14 Beth Dakin <bdakin@apple.com>
1890 Tiled scrolling indicator needs to take topContentInset into account
1891 https://bugs.webkit.org/show_bug.cgi?id=132940
1893 Reviewed by Simon Fraser.
1895 The tiled scrolling indicator needs to move down by the value of the
1896 topContentInset. This patch makes that happen by caching the topContentInset in
1897 the TileController. This does feel a little silly since there is already a
1898 function called setTiledScrollingIndicatorPosition() on TiledBacking. However, it
1899 was often the case that calling that function had no effect because m_coverageMap
1900 had not yet been created, and then the information was lost. So instead, we cache
1903 Set TiledBacking’s copy of topContentInset whenever it changes for the FrameView.
1904 * page/FrameView.cpp:
1905 (WebCore::FrameView::topContentInsetDidChange):
1907 New function to set the inset. Use the inset to position the coverage map.
1908 * platform/graphics/TiledBacking.h:
1909 * platform/graphics/ca/mac/TileController.h:
1910 * platform/graphics/ca/mac/TileController.mm:
1911 (WebCore::TileController::TileController):
1912 (WebCore::TileController::setTopContentInset):
1914 When the coverage map is created, consult the value of the inset.
1915 * platform/graphics/ca/mac/TileCoverageMap.mm:
1916 (WebCore::TileCoverageMap::TileCoverageMap):
1918 Once the backing has been ensured, set the inset.
1919 * rendering/RenderLayerCompositor.cpp:
1920 (WebCore::RenderLayerCompositor::updateBacking):
1922 2014-05-14 Brent Fulgham <bfulgham@apple.com>
1924 Merge r1267628 from branch.
1925 <rdar://problem/15751219>
1927 Pratik Solanki <psolanki@apple.com>
1929 Reviewed by Simon Fraser.",
1931 TileController relied on the tiling mode in TileCache to determine if it should use low-res
1932 tiles when zooming. Unfortunately, sometimes the tiling mode gets set to Zooming even though
1933 it's actually a pan. Thus we can end up with blurry tiles. Fix this by adding a new flag on
1934 TileCache that controls this behavior and have UIKit set it only when we have an actual zoom
1937 * platform/ios/LegacyTileCache.h:
1938 (WebCore::LegacyTileCache::tileControllerShouldUseLowScaleTiles):
1939 (WebCore::LegacyTileCache::setTileControllerShouldUseLowScaleTiles):
1940 * platform/ios/LegacyTileCache.mm:
1941 (WebCore::LegacyTileCache::LegacyTileCache):
1942 * platform/ios/wak/WAKWindow.h:
1943 * platform/ios/wak/WAKWindow.mm:
1944 (-[WAKWindow setTileControllerShouldUseLowScaleTiles:]):
1945 * rendering/RenderLayerCompositor.cpp:
1946 (WebCore::RenderLayerCompositor::contentsScaleMultiplierForNewTiles):
1948 2014-05-14 Commit Queue <commit-queue@webkit.org>
1950 Unreviewed, rolling out r168750.
1951 https://bugs.webkit.org/show_bug.cgi?id=132935
1953 Caused repaint bugs (Requested by weinig on #webkit).
1957 "Text decorations do not contribute to visual overflow"
1958 https://bugs.webkit.org/show_bug.cgi?id=132773
1959 http://trac.webkit.org/changeset/168750
1961 2014-05-14 Simon Fraser <simon.fraser@apple.com>
1963 [New multicolumn] Spin in RenderMultiColumnSet::repaintFlowThreadContent()
1964 https://bugs.webkit.org/show_bug.cgi?id=132884
1966 Reviewed by Beth Dakin.
1968 On iOS, wikipedia pages can hang under RenderMultiColumnSet::repaintFlowThreadContent().
1969 It appears that computedColumnHeight is set to 0 in prepareForLayout, but layout never happens
1970 on the RenderMultiColumnSet in some cases, leaving the column height set to zero.
1971 This caused columnIndexAtOffset() to return bad values, which resulted in very long loops
1972 in repaintFlowThreadContent().
1974 This fix is a stop-gap.
1976 * rendering/RenderMultiColumnSet.cpp:
1977 (WebCore::RenderMultiColumnSet::columnIndexAtOffset):
1979 2014-05-14 Benjamin Poulain <bpoulain@apple.com>
1981 Remove FrameView::viewportConstrainedExtentRect, it is unused
1982 https://bugs.webkit.org/show_bug.cgi?id=132927
1984 Reviewed by Simon Fraser.
1986 * page/FrameView.cpp:
1987 (WebCore::FrameView::viewportConstrainedExtentRect): Deleted.
1989 Simon replaced this by viewportConstrainedVisibleContentRect, remove the old code.
1991 2014-05-14 Matthew Hanson <matthew_hanson@apple.com>
1993 Only define MAX_GRID_TRACK_REPETITIONS if CSS_GRID_LAYOUT is enabled.
1995 Reviewed by Dean Jackson.
1997 This was causing -Wunused-const-variable errors.
1999 * css/CSSParser.cpp: Add include guard.
2001 2014-05-14 Beth Dakin <bdakin@apple.com>
2003 Tile cache has way too many tiles when pinch-zoomed in
2004 https://bugs.webkit.org/show_bug.cgi?id=132929
2006 <rdar://problem/16527172>
2008 Reviewed by Benjamin Poulain.
2010 This patch makes the margin sizing functions return the set margin size scaled by
2011 the TileGrid's scale. We also need to get rid of the old notion we used to have
2012 that margin tiles might be allowed to have a different size than the other tiles.
2013 We don't want that. They should have the normal margin size, but they should
2014 affect the overall coverage area.
2016 Scale by the TileGrid's scale.
2017 * platform/graphics/ca/mac/TileController.mm:
2018 (WebCore::TileController::topMarginHeight):
2019 (WebCore::TileController::bottomMarginHeight):
2020 (WebCore::TileController::leftMarginWidth):
2021 (WebCore::TileController::rightMarginWidth):
2023 Get rid of adjustRectAtTileIndexForMargin() since we do not want to ever do this
2024 adjustment. Use tileSize instead of margin size for all sizing computations.
2025 * platform/graphics/ca/mac/TileGrid.h:
2026 * platform/graphics/ca/mac/TileGrid.mm:
2027 (WebCore::TileGrid::rectForTileIndex):
2028 (WebCore::TileGrid::getTileIndexRangeForRect):
2029 (WebCore::TileGrid::adjustRectAtTileIndexForMargin): Deleted.
2031 2014-05-14 Dean Jackson <dino@apple.com>
2033 [Mac] Search fields should not use centered look
2034 https://bugs.webkit.org/show_bug.cgi?id=132930
2035 <rdar://problem/16825842>
2037 Reviewed by Beth Dakin.
2039 We need to explicitly set the centeredLook property
2040 to NO on modern releases of Mac.
2042 * rendering/RenderThemeMac.mm: Declare a new private property and set it to NO.
2043 (WebCore::RenderThemeMac::search):
2045 2014-05-14 Zalan Bujtas <zalan@apple.com>
2047 Subpixel layout: Change Element.offset* client* scroll* return type to double.
2048 https://bugs.webkit.org/show_bug.cgi?id=132895
2050 Reviewed by Simon Fraser.
2052 This patch changes Element.offset*, Element.client* and Element.scroll* APIs return
2053 type from long to double to match the latest CSSOM View Module spec[1].
2054 Element.offset* and Element.client* do return subpixel values from now on.
2055 Element.scroll* still return integral values as the scrolling code hasn't adopted to subpixel rendering yet.
2057 subpixelCSSOMElementMetricsEnabled setting is added to be able to turn this feature on/off
2058 from WK2 preferences. It toggles the return value from subpixel to floored integral.
2059 It does not change layout/rendering behavior.
2061 Reference list of what other browsers do:
2062 IE: http://blogs.msdn.com/b/ie/archive/2012/02/17/sub-pixel-rendering-and-the-css-object-model.aspx
2063 Blink: http://www.chromestatus.com/features/5497402177880064
2064 Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=825607
2066 [1] http://www.w3.org/TR/2013/WD-cssom-view-20131217/
2068 Test: cssom/subpixel-offsetleft-top-width-height-values.html
2071 (WebCore::localZoomForRenderer):
2072 (WebCore::adjustForLocalZoom):
2073 (WebCore::convertToNonSubpixelValueIfNeeded):
2074 (WebCore::Element::offsetLeft):
2075 (WebCore::Element::offsetTop):
2076 (WebCore::Element::offsetWidth):
2077 (WebCore::Element::offsetHeight):
2078 (WebCore::Element::clientLeft):
2079 (WebCore::Element::clientTop):
2080 (WebCore::Element::clientWidth):
2081 (WebCore::Element::clientHeight):
2082 (WebCore::Element::scrollLeft):
2083 (WebCore::Element::scrollTop):
2084 (WebCore::Element::setScrollLeft):
2085 (WebCore::Element::setScrollTop):
2086 (WebCore::Element::scrollWidth):
2087 (WebCore::Element::scrollHeight):
2090 * html/HTMLBodyElement.cpp:
2091 (WebCore::adjustForZoom):
2092 (WebCore::HTMLBodyElement::scrollLeft):
2093 (WebCore::HTMLBodyElement::setScrollLeft):
2094 (WebCore::HTMLBodyElement::scrollTop):
2095 (WebCore::HTMLBodyElement::setScrollTop):
2096 (WebCore::HTMLBodyElement::scrollHeight):
2097 (WebCore::HTMLBodyElement::scrollWidth):
2098 * html/HTMLBodyElement.h:
2101 2014-05-14 Brady Eidson <beidson@apple.com>
2103 Implement NSSharingServiceDelegate method "transitionImageForShareItem"
2104 <rdar://problem/16878020> and https://bugs.webkit.org/show_bug.cgi?id=132911
2106 Reviewed by Tim Horton.
2109 * WebCore.xcodeproj/project.pbxproj:
2111 2014-05-14 Alex Christensen <achristensen@webkit.org>
2113 Another unreviewed build fix.
2115 * platform/network/mac/ResourceHandleMac.mm:
2116 (WebCore::ResourceHandle::getTimingData):
2117 Added necessary UNUSED_PARAMs.
2119 2014-05-14 Alex Christensen <achristensen@webkit.org>
2121 Unreviewed build fix after r168849.
2123 * platform/network/mac/ResourceHandleMac.mm:
2124 (WebCore::ResourceHandle::getTimingData):
2125 Protect use of timing data with ENABLE(WEB_TIMING).
2127 2014-05-14 Alex Christensen <achristensen@webkit.org>
2129 Refactor duplicate code in web timing.
2130 https://bugs.webkit.org/show_bug.cgi?id=132917
2132 Reviewed by Alexey Proskuryakov.
2134 * platform/network/ResourceHandle.h:
2135 Added getTimingData declaration.
2136 * platform/network/mac/ResourceHandleMac.mm:
2137 (WebCore::ResourceHandle::getTimingData):
2138 * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
2139 (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
2140 * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
2141 (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
2142 Moved duplicate code to ResourceHandle.
2144 2014-05-14 Alex Christensen <achristensen@webkit.org>
2146 Use references instead of pointers with ResourceLoadTiming.
2147 https://bugs.webkit.org/show_bug.cgi?id=132846
2149 Reviewed by Alexey Proskuryakov.
2152 Removed ResourceResponseBase::setResourceLoadTiming linker symbol.
2153 * inspector/InspectorResourceAgent.cpp:
2154 (WebCore::buildObjectForResourceResponse):
2155 * page/PerformanceResourceTiming.cpp:
2156 (WebCore::PerformanceResourceTiming::domainLookupStart):
2157 (WebCore::PerformanceResourceTiming::domainLookupEnd):
2158 (WebCore::PerformanceResourceTiming::connectStart):
2159 (WebCore::PerformanceResourceTiming::connectEnd):
2160 (WebCore::PerformanceResourceTiming::secureConnectionStart):
2161 (WebCore::PerformanceResourceTiming::requestStart):
2162 Use references instead of pointers.
2163 * page/PerformanceResourceTiming.h:
2164 Make an instance instead of a RefPtr.
2165 * page/PerformanceTiming.cpp:
2166 (WebCore::PerformanceTiming::domainLookupStart):
2167 (WebCore::PerformanceTiming::domainLookupEnd):
2168 (WebCore::PerformanceTiming::connectStart):
2169 (WebCore::PerformanceTiming::connectEnd):
2170 (WebCore::PerformanceTiming::secureConnectionStart):
2171 (WebCore::PerformanceTiming::requestStart):
2172 (WebCore::PerformanceTiming::responseStart):
2173 Check to see if the loader exists, then use ResourceLoadTiming reference.
2174 (WebCore::PerformanceTiming::resourceLoadTiming): Deleted.
2175 * page/PerformanceTiming.h:
2176 Removed resourceLoadTiming declaration.
2177 * platform/network/ResourceLoadTiming.h:
2178 (WebCore::ResourceLoadTiming::ResourceLoadTiming):
2179 (WebCore::ResourceLoadTiming::operator=):
2180 Replaced reference counting with copy constructors.
2181 (WebCore::ResourceLoadTiming::create): Deleted.
2182 (WebCore::ResourceLoadTiming::deepCopy): Deleted.
2183 * platform/network/ResourceResponseBase.cpp:
2184 (WebCore::ResourceResponseBase::adopt):
2185 (WebCore::ResourceResponseBase::copyData):
2186 (WebCore::ResourceResponseBase::resourceLoadTiming):
2187 (WebCore::ResourceResponseBase::setResourceLoadTiming):
2188 (WebCore::ResourceResponseBase::compare):
2189 * platform/network/ResourceResponseBase.h:
2190 * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
2191 (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
2192 * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
2193 (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
2194 * platform/network/soup/ResourceHandleSoup.cpp:
2195 (WebCore::ResourceHandle::didStartRequest):
2196 (WebCore::networkEventCallback):
2197 Use references instead of pointers.
2199 2014-05-14 Commit Queue <commit-queue@webkit.org>
2201 Unreviewed, rolling out r168837.
2202 https://bugs.webkit.org/show_bug.cgi?id=132913
2204 The patch added an assertion which fires on 6 tests (Requested
2209 "[CSS Regions] Add ASSERT to make sure using the flowThread
2210 cache does not return incorrect results"
2211 https://bugs.webkit.org/show_bug.cgi?id=132906
2212 http://trac.webkit.org/changeset/168837
2214 2014-05-13 Jon Honeycutt <jhoneycutt@apple.com>
2216 Revert "Don't dispatch 'beforeload' event inside FrameView::layout()",
2217 commit 84fe8cf6fbe8b5de9a06300ca3ef6d0ffc96948c, and associated
2220 "platform/mac/plugins/testplugin-onnew-onpaint.html failing after
2221 r168668", commit c17be3bf5127baf94310af4b4b9bf5a57d29aaf4
2222 "[Win] Unreviewed build fix after r168668.", commit
2223 4fa470ad12c38ee7d4c114541b6dd321181a8bc9
2225 The original merged patch appears to have caused a regression in
2226 fast/dom/HTMLObjectElement/object-as-frame.html.
2228 <https://bugs.webkit.org/show_bug.cgi?id=132886>
2230 Reviewed by Alexey Proskuryakov.
2234 (WebCore::Document::updateLayoutIgnorePendingStylesheets):
2236 * html/HTMLAppletElement.cpp:
2237 (WebCore::HTMLAppletElement::renderWidgetForJSBindings):
2238 * html/HTMLEmbedElement.cpp:
2239 (WebCore::HTMLEmbedElement::renderWidgetForJSBindings):
2240 * html/HTMLObjectElement.cpp:
2241 (WebCore::HTMLObjectElement::renderWidgetForJSBindings):
2242 * page/FrameView.cpp:
2243 (WebCore::FrameView::FrameView):
2244 (WebCore::FrameView::reset):
2245 (WebCore::FrameView::flushAnyPendingPostLayoutTasks):
2246 (WebCore::FrameView::performPostLayoutTasks):
2247 (WebCore::FrameView::updateEmbeddedObjectsTimerFired): Deleted.
2249 * testing/Internals.cpp:
2250 (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks): Deleted.
2251 * testing/Internals.h:
2252 * testing/Internals.idl:
2254 2014-05-14 Kiran <kiran.guduru@samsung.com>
2256 alidation for getUserMedia() errorCallback is missing.
2257 https://bugs.webkit.org/show_bug.cgi?id=132901
2259 Reviewed by Darin Adler.
2261 The patch adds the validation for getUserMedia errorCallBack
2262 and throws TypeMismatchError.
2264 Test: fast/mediastream/getusermedia.html
2266 * Modules/mediastream/NavigatorUserMedia.cpp:
2267 (WebCore::NavigatorUserMedia::webkitGetUserMedia):
2269 2014-05-14 Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com>
2271 Remove CSS_STICKY_POSITION guards
2272 https://bugs.webkit.org/show_bug.cgi?id=132676
2274 Reviewed by Simon Fraser.
2276 * Configurations/FeatureDefines.xcconfig:
2277 * css/CSSParser.cpp:
2278 (WebCore::isValidKeywordPropertyAndValue):
2279 * css/CSSPrimitiveValueMappings.h:
2280 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2281 (WebCore::CSSPrimitiveValue::operator EPosition):
2282 * css/CSSValueKeywords.in:
2283 * editing/EditingStyle.cpp:
2284 (WebCore::EditingStyle::convertPositionStyle):
2286 2014-05-14 Radu Stavila <stavila@adobe.com>
2288 [CSS Regions] Add ASSERT to make sure using the flowThread cache does not return incorrect results
2289 https://bugs.webkit.org/show_bug.cgi?id=132906
2291 Reviewed by Andrei Bucur.
2293 If flowThreadContainingBlock() is called on an object which is in a different
2294 flow thread than the one currently being laid out, this method will return an incorrect
2295 result. I added an assertion for that to make sure we catch and treat any such scenarios.
2297 No new tests required.
2299 * rendering/RenderObject.cpp:
2300 (WebCore::RenderObject::locateFlowThreadContainingBlockNoCache):
2301 (WebCore::RenderObject::locateFlowThreadContainingBlock):
2302 * rendering/RenderObject.h:
2304 2014-05-14 Andrei Bucur <abucur@adobe.com>
2306 [CSS Regions] Don't relayout when updating the region range unless necessary
2307 https://bugs.webkit.org/show_bug.cgi?id=132120
2309 Reviewed by Antti Koivisto.
2311 The patch reduces the cases when a relayout is made for boxes that change the region range.
2312 This lowers the amount of nested layouts in most cases and produces big layout speedups for trees
2313 without overhanging floats.
2315 Tests: Major performance improvement with speedups of 50-60% on:
2316 Layout/RegionsAuto.html, Layout/RegionsAutoMaxHeight.html and Layout/RegionsFixed.html
2318 * rendering/RenderBlock.cpp:
2319 (WebCore::RenderBlock::updateRegionRangeForBoxChild): Ask the child box if it needs a relayout
2320 in case its region range changes.
2321 * rendering/RenderBlockFlow.cpp:
2322 (WebCore::RenderBlockFlow::layoutBlockChild): It's not necessary to do two layouts here because
2323 there's no block direction position change between them for the child.
2324 (WebCore::RenderBlockFlow::needsLayoutAfterRegionRangeChange): If the block doesn't have floats
2325 or if it expands to enclose the floats it doesn't need to relayout after a region range chage.
2326 It's not possible for it to have a float inside overflow that must be repositioned using the new
2328 * rendering/RenderBlockFlow.h:
2329 * rendering/RenderBox.h:
2330 (WebCore::RenderBox::needsLayoutAfterRegionRangeChange): By default don't relayout after a region
2333 2014-05-14 Antti Koivisto <antti@apple.com>
2335 RuleData should ref the StyleRule
2336 https://bugs.webkit.org/show_bug.cgi?id=132865
2338 Reviewed by Andreas Kling.
2340 As a defensive move make RuleData ref the StyleRule.
2341 This adds some ref churn but the overall performance impact should be minimal.
2344 (WebCore::RuleData::rule):
2346 2014-05-14 Antti Koivisto <antti@apple.com>
2348 GIF animations don't restart after scrolling on iOS WebKit1
2349 https://bugs.webkit.org/show_bug.cgi?id=132900
2351 Reviewed by Andreas Kling.
2355 2014-05-13 Andrei Bucur <abucur@adobe.com>
2357 [CSS Regions] Assertion failure in some cases with inline blocks
2358 https://bugs.webkit.org/show_bug.cgi?id=132859
2360 Reviewed by Mihnea Ovidenie.
2362 The patch hardens the conditions when the region range caches are
2363 populated to avoid desynchronizations when objects move during layout.
2364 This is true especially in the case of the boxes found inside
2365 inline blocks, that get their range from the containing line.
2367 There is a new function |computedRegionRangeForBox| that will always
2368 return a region range for a box using a best effort algorithm. This should
2369 be used only when there's no need to cache region information.
2371 This change also allows better control over the lifecycle of the
2372 |RenderBoxRegionInfo| objects stored on the regions. We can now iterate
2373 over the full range of the box when cleaning up the region box info. The
2374 same applies for the width change detection function.
2376 Test: fast/regions/inline-block-shifted-region.html
2378 * rendering/RenderBlockLineLayout.cpp:
2379 (WebCore::RenderBlockFlow::updateRegionForLine): Don't set the containing
2380 region if the block doesn't have a range. The returned value would not
2381 be correctly clamped.
2382 * rendering/RenderBox.cpp:
2383 (WebCore::RenderBlock::hasRegionRangeInFlowThread):
2384 * rendering/RenderBox.h:
2385 * rendering/RenderFlowThread.cpp:
2386 (WebCore::RenderFlowThread::removeRenderBoxRegionInfo): Iterate only over
2387 the range of the box, not from the start of the region chain.
2388 (WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock): Same as
2390 (WebCore::RenderFlowThread::hasCachedRegionRangeForBox):
2391 (WebCore::RenderFlowThread::getRegionRangeForBoxFromCachedInfo):
2392 (WebCore::RenderFlowThread::getRegionRangeForBox):
2393 (WebCore::RenderFlowThread::computedRegionRangeForBox): Best effort function
2394 to determine the range of a box. It will always return something as long
2395 as the flow thread has regions.
2396 (WebCore::RenderFlowThread::objectShouldFragmentInFlowRegion): Use the new function
2397 to determine the range.
2398 * rendering/RenderFlowThread.h:
2399 * rendering/RenderNamedFlowThread.cpp:
2400 (WebCore::RenderNamedFlowThread::absoluteQuadsForBox): Use the new function to determine
2403 2014-05-13 Simon Fraser <simon.fraser@apple.com>
2405 Fix "ASSERTION FAILED: m_representation == PlatformLayerRepresentation" with UI-side compositing
2406 https://bugs.webkit.org/show_bug.cgi?id=132899
2408 Reviewed by Beth Dakin.
2414 2014-05-13 Hans Muller <hmuller@adobe.com>
2416 [CSS Shapes] line height grows around polygon and incorrectly causes text to wrap to next line
2417 https://bugs.webkit.org/show_bug.cgi?id=131622
2419 Reviewed by Bem Jones-Bey.
2421 Corrected an earlier PolygonShape fix https://bugs.webkit.org/show_bug.cgi?id=132132
2422 When the top or bottom of a layout line is coincident with a polygon edge vertex, we
2423 only consider it an intersection if the edge extends into the line.
2425 Test: fast/shapes/shape-outside-floats/shape-outside-edge-case.html
2427 * rendering/shapes/PolygonShape.cpp:
2428 (WebCore::OffsetPolygonEdge::clippedEdgeXRange):
2430 2014-05-13 Beth Dakin <bdakin@apple.com>
2432 m_layerForOverhangAreas is sometimes not positioned correctly when topContentInset
2434 https://bugs.webkit.org/show_bug.cgi?id=132898
2436 <rdar://problem/16644710>
2438 Reviewed by Anders Carlsson.
2440 This function is called whenever the topContentInset changes, so use it as an
2441 opportunity to ensure that m_layerForOverhangAreas has been positioned correctly.
2442 * rendering/RenderLayerCompositor.cpp:
2443 (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
2445 Everyone gets an anchor point!
2446 (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
2448 2014-05-13 Dean Jackson <dino@apple.com>
2450 Attempted build fix after https://bugs.webkit.org/show_bug.cgi?id=132891
2452 * page/PageDebuggable.cpp:
2454 2014-05-13 Timothy Hatcher <timothy@apple.com>
2456 Force developerExtrasEnabled when a remote Inspector client connects.
2458 https://bugs.webkit.org/show_bug.cgi?id=132891
2460 Reviewed by Joseph Pecoraro.
2462 * page/PageDebuggable.cpp:
2463 (WebCore::PageDebuggable::PageDebuggable): Initialize m_forcedDeveloperExtrasEnabled to false.
2464 (WebCore::PageDebuggable::connect): Set m_forcedDeveloperExtrasEnabled if the setting is changed.
2465 (WebCore::PageDebuggable::disconnect): Switch developerExtrasEnabled back to false
2466 if m_forcedDeveloperExtrasEnabled is true.
2467 * page/PageDebuggable.h: Added m_forcedDeveloperExtrasEnabled.
2469 2014-05-13 Beth Dakin <bdakin@apple.com>
2471 REGRESSION (topContentInset): Searching through Facebook Messenger's chat causes
2472 scrolling in News Feed
2473 https://bugs.webkit.org/show_bug.cgi?id=132889
2475 <rdar://problem/16715716>
2477 Reviewed by Simon Fraser.
2479 First of all, scrollOffsetRelativeToDocument() was very poorly named. This patch
2480 re-names it to the much more accurate documentScrollOffsetRelativeToViewOrigin().
2481 Re-naming it makes it clear that ONE call site was not getting the right offset.
2482 That call site does not want to know the document’s position relative to the view
2483 origin, but rather it wants to know the Document’s position relative to the
2489 Use newly re-named documentScrollPositionRelativeToViewOrigin().
2490 * page/FrameView.cpp:
2491 (WebCore::FrameView::convertToRenderer):
2492 * platform/ScrollView.cpp:
2493 (WebCore::ScrollView::documentScrollOffsetRelativeToViewOrigin):
2494 (WebCore::ScrollView::documentScrollPositionRelativeToViewOrigin):
2495 (WebCore::ScrollView::documentScrollOffsetRelativeToScrollableAreaOrigin):
2496 (WebCore::ScrollView::rootViewToContents):
2497 (WebCore::ScrollView::windowToContents):
2498 (WebCore::ScrollView::scrollOffsetRelativeToDocument): Deleted.
2499 (WebCore::ScrollView::scrollPositionRelativeToDocument): Deleted.
2500 * platform/ScrollView.h:
2502 THIS is the spot that needs the new function,
2503 documentScrollOffsetRelativeToScrollableAreaOrigin()()
2504 * rendering/RenderLayer.cpp:
2505 (WebCore::RenderLayer::scrollRectToVisible):
2507 2014-05-13 Dean Jackson <dino@apple.com>
2509 [iOS] Page scale update messages for media controls should only fire at the end of zooming
2510 https://bugs.webkit.org/show_bug.cgi?id=132857
2511 <rdar://problem/16631009>
2513 Reviewed by Simon Fraser.
2515 As the user was zooming, the media controls that responded
2516 to the page scale (and resized themselves) would do so
2517 slightly out of sync with the screen refreshes, and it looked
2518 terrible. They really only need to get told at the end
2519 of the zoom that they need to relayout.
2521 Allow setPageScaleFactor to accept another parameter
2522 that indicates if the change is stable. That way, changes
2523 during a user triggers zoom gesture can be ignored for
2526 * WebCore.exp.in: Page::setPageScaleFactor takes a new parameter.
2528 (WebCore::Document::pageScaleFactorChangedAndStable): Renamed from pageScaleFactorChanged.
2529 (WebCore::Document::pageScaleFactorChanged): Deleted.
2532 (WebCore::Page::setPageScaleFactor): Accepts a new inStableState parameter,
2533 and tells the main frame that the scale factor has changed if it's stable.
2536 2014-05-13 Eric Carlson <eric.carlson@apple.com>
2538 Unreviewed build fix after r168755.
2540 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2541 (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
2543 2014-05-13 Eric Carlson <eric.carlson@apple.com>
2545 [Mac] hasVideo should return true when video is ready to display
2546 https://bugs.webkit.org/show_bug.cgi?id=132885
2548 Reviewed by Jer Noble.
2550 * html/HTMLMediaElement.cpp:
2551 (WebCore::HTMLMediaElement::parseAttribute):
2553 * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
2554 (WebCore::AudioTrackPrivateAVFObjC::resetPropertiesFromTrack): Don't change the
2555 enabled state of the AVPlayerItemTrack during setup.
2557 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2558 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2559 (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize
2560 m_cachedIsReadyForDisplay.
2561 (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Remove "enabled" KVO observers.
2562 (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Observe "readyForDisplay"
2563 change notifications.
2564 (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): Remove for "readyForDisplay"
2566 (WebCore::MediaPlayerPrivateAVFoundationObjC::hasAvailableVideoFrame): Return cached readyForDisplay
2567 state instead of polling every time.
2568 (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Call setHasVideo(true) if the
2569 player layer is ready for display.
2570 (WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks): Update logging.
2571 (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks): Ditto.
2572 (WebCore::MediaPlayerPrivateAVFoundationObjC::firstFrameAvailableDidChange): Cache readyForDisplay
2573 state, call tracksChanged() if we haven't seen a video track yet.
2574 (WebCore::MediaPlayerPrivateAVFoundationObjC::trackEnabledDidChange): New.
2575 (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive): Correct logging.
2576 (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange): Remove old "enabled" listeners
2577 before release tracks, add new ones to new tracks.
2578 (WebCore::assetTrackMetadataKeyNames): Add "enabled" to the list of properties we require to
2579 be loaded before announcing that metadata has loaded.
2580 (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): Observe
2581 "readyForDisplay" and "enabled".
2583 * platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp:
2584 (WebCore::VideoTrackPrivateAVFObjC::resetPropertiesFromTrack): Don't change the
2585 enabled state of the AVPlayerItemTrack during setup.
2587 2014-05-13 Myles C. Maxfield <litherum@gmail.com>
2589 Text decorations do not contribute to visual overflow
2590 https://bugs.webkit.org/show_bug.cgi?id=132773
2592 Reviewed by Darin Adler.
2594 Tests: fast/css3-text/css3-text-decoration/repaint/underline-outside-of-layout-rect.html
2596 * rendering/InlineTextBox.cpp:
2597 (WebCore::textDecorationStrokeThickness): Refactor into a common function
2598 (WebCore::wavyOffsetFromDecoration): Ditto
2599 (WebCore::InlineTextBox::extendVerticalVisualOverflowForDecorations): Given
2600 vertical overflow bounds, possibly extend those to include location of
2602 (WebCore::InlineTextBox::paintDecoration): Use refactored functions.
2603 * rendering/InlineTextBox.h: Function signature
2604 * rendering/RenderBlockLineLayout.cpp:
2605 (WebCore::setLogicalWidthForTextRun): Call extendVerticalVisualOverflowForDecorations()
2606 * rendering/style/RenderStyle.cpp:
2607 (WebCore::RenderStyle::changeAffectsVisualOverflow): Inspects shadows and text decorations
2608 (WebCore::RenderStyle::changeRequiresLayout): Calls changeAffectsVisualOverflow()
2609 (WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline): Moved code from here
2610 to changeAffectsVisualOverflow().
2611 * rendering/style/RenderStyle.h: Function signature
2613 2014-05-13 Enrica Casucci <enrica@apple.com>
2615 REGRESSION (WebKit2): Zooming to text field leaves it partially hidden by the form assistant.
2616 https://bugs.webkit.org/show_bug.cgi?id=132879
2617 <rdar://problem/16318049>
2619 Reviewed by Benjamin Poulain.
2621 Adding some exports. The fix to setScrollPosition is to avoid clamping the scroll
2622 position when using delegate scrolling.
2625 * platform/ScrollView.cpp:
2626 (WebCore::ScrollView::setScrollPosition):
2628 2014-05-13 Brady Eidson <beidson@apple.com>
2630 Followup to: Update positioning/drawing of the image controls button.
2631 <rdar://problem/16885077> and https://bugs.webkit.org/show_bug.cgi?id=132883
2633 Reviewed by Tim Horton.
2635 Cleared up the actual intent behind review feedback on the original patch.
2637 * html/shadow/mac/ImageControlsButtonElementMac.cpp:
2638 (WebCore::ImageControlsButtonElementMac::maybeCreate):
2640 2014-05-13 Brady Eidson <beidson@apple.com>
2642 Update positioning/drawing of the image controls button.
2643 <rdar://problem/16885077> and https://bugs.webkit.org/show_bug.cgi?id=132883
2645 Reviewed by Tim Horton.
2647 * html/shadow/mac/ImageControlsButtonElementMac.cpp:
2648 (WebCore::ImageControlsButtonElementMac::maybeCreate): Add inline style for top/right
2649 positioning based on the metrics from the render theme.
2651 * html/shadow/mac/imageControlsMac.css:
2652 (.x-webkit-image-controls-button): Can’t hard code any positioning.
2654 * rendering/RenderTheme.h:
2655 (WebCore::RenderTheme::imageControlsButtonPositionOffset):
2656 * rendering/RenderThemeMac.h:
2657 * rendering/RenderThemeMac.mm:
2658 (WebCore::RenderThemeMac::servicesRolloverButtonCell):
2659 (WebCore::RenderThemeMac::imageControlsButtonPositionOffset):
2661 2014-05-13 Simon Fraser <simon.fraser@apple.com>
2663 [iOS WK2] background-attachment:fixed behaves very poorly
2664 https://bugs.webkit.org/show_bug.cgi?id=132881
2665 <rdar://problem/16789526>
2667 Reviewed by Beth Dakin.
2669 Remove the old ENABLE_FAST_MOBILE_SCROLLING code, and add a setting that
2670 controls whether fixed backgrounds paint relative to the document, which
2671 is enabled for iOS (WK1 and WK2). This setting is consulted when we repaint
2672 fixed backgrounds on scrolling, when we paint them, and when we decide to make
2673 a layer for fixed backgrounds.
2675 * page/Settings.cpp:
2677 * rendering/RenderBoxModelObject.cpp:
2678 (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
2679 * rendering/RenderElement.cpp:
2680 (WebCore::RenderElement::styleWillChange):
2681 (WebCore::RenderElement::willBeRemovedFromTree):
2682 (WebCore::shouldRepaintFixedBackgroundsOnScroll): Deleted.
2683 * rendering/RenderLayerCompositor.cpp:
2684 (WebCore::RenderLayerCompositor::needsFixedRootBackgroundLayer):
2686 2014-05-13 Zalan Bujtas <zalan@apple.com>
2688 REGRESSSION(r168528) Subpixel rendering: Selection rect is not positioned properly when SVG text is selected.
2689 https://bugs.webkit.org/show_bug.cgi?id=132868
2691 Reviewed by Dirk Schulze.
2693 Scale the selection rect. r168528 missed applying this final transform on the selection/painting rect.
2695 Test: svg/text/hidpi-text-selection-rect-position.html
2697 * rendering/svg/SVGInlineTextBox.cpp:
2698 (WebCore::SVGInlineTextBox::selectionRectForTextFragment):
2700 2014-05-13 Martin Hodovan <mhodovan.u-szeged@partner.samsung.com>
2702 ASSERTION FAILED: leftCategory != CalcOther && rightCategory != CalcOther
2703 in WebCore::CSSCalcBinaryOperation::createSimplified
2704 https://bugs.webkit.org/show_bug.cgi?id=132870
2706 According to the standard, calc() should be able to handle angle, time
2707 and frequency values as well: http://www.w3.org/TR/css3-values/#calc
2709 Reviewed by Darin Adler.
2711 Test: fast/css/calc-with-angle-time-frequency.html
2713 * css/CSSCalculationValue.cpp:
2714 (WebCore::unitCategory):
2715 (WebCore::CSSCalcPrimitiveValue::createCalcExpression):
2716 (WebCore::CSSCalcPrimitiveValue::computeLengthPx):
2717 (WebCore::CSSCalcPrimitiveValue::addSubtractResult):
2718 (WebCore::CSSCalcPrimitiveValue::determineCategory):
2719 (WebCore::CSSCalcBinaryOperation::primitiveType)
2720 * css/CSSCalculationValue.h: extending CalculationCategory
2721 * css/CSSParser.cpp:
2722 (WebCore::CSSParser::validCalculationUnit):
2723 * css/CSSPrimitiveValue.cpp:
2724 (WebCore::CSSPrimitiveValue::primitiveType):
2726 2014-05-13 Darin Adler <darin@apple.com>
2728 Try to fix the !ENABLE(ICONDATABASE) build
2730 * loader/icon/IconDatabase.h: Include WTFString.h.
2732 2014-05-13 Carlos Garcia Campos <cgarcia@igalia.com>
2734 REGRESSION(r167771): [GTK] Text fields and areas are rendered unthemed
2735 https://bugs.webkit.org/show_bug.cgi?id=132864
2737 Reviewed by Philippe Normand.
2739 This is because the virtual methods changed the API in the parent,
2740 and since we don't have the methods marked as override we didn't
2741 noticed it. After using override keyword for all virtual methods
2742 in the derived class another problem showed up, the ActiveListBox
2743 selection methods were incorrectly named.
2745 * platform/gtk/RenderThemeGtk.cpp:
2746 (WebCore::RenderThemeGtk::paintTextArea): Update to API changes in the
2748 * platform/gtk/RenderThemeGtk.h: Mark all virtual methods as
2749 override and the class as final.
2750 * platform/gtk/RenderThemeGtk2.cpp:
2751 (WebCore::RenderThemeGtk::paintTextField): Update to API changes
2752 in the parent class.
2753 (WebCore::RenderThemeGtk::platformActiveListBoxSelectionBackgroundColor):
2754 (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionBackgroundColor):
2755 (WebCore::RenderThemeGtk::platformActiveListBoxSelectionForegroundColor):
2756 (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionForegroundColor):
2757 (WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor): Deleted.
2758 (WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor): Deleted.
2759 (WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor): Deleted.
2760 (WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor): Deleted.
2761 * platform/gtk/RenderThemeGtk3.cpp:
2762 (WebCore::RenderThemeGtk::paintTextField): Update to API changes
2763 in the parent class.
2764 (WebCore::RenderThemeGtk::platformActiveListBoxSelectionBackgroundColor):
2765 (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionBackgroundColor):
2766 (WebCore::RenderThemeGtk::platformActiveListBoxSelectionForegroundColor):
2767 (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionForegroundColor):
2768 (WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor): Deleted.
2769 (WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor): Deleted.
2770 (WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor): Deleted.
2771 (WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor): Deleted.
2773 2014-05-13 Xabier Rodriguez Calvar <calvaris@igalia.com>
2775 [GStreamer] Move toGstClockTime to utilities
2776 https://bugs.webkit.org/show_bug.cgi?id=132702
2778 Reviewed by Philippe Normand.
2780 toGstClockTime should be in GStreamerUtilities and corrected typo
2783 No new tests needed.
2785 * platform/graphics/gstreamer/GStreamerUtilities.cpp:
2786 (WebCore::getGstPlayFlag): Renamed from getGstPlaysFlag.
2787 (WebCore::toGstClockTime): Moved from MediaPlayerPrivateGStreamer.
2788 (WebCore::getGstPlaysFlag): Deleted.
2789 * platform/graphics/gstreamer/GStreamerUtilities.h:
2790 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2791 (WebCore::MediaPlayerPrivateGStreamer::setDownloadBuffering):
2792 Corrected getGstPlayFlag typo.
2793 (WebCore::toGstClockTime): Deleted.
2795 2014-05-12 Darin Adler <darin@apple.com>
2797 Make a few icon database improvements
2798 https://bugs.webkit.org/show_bug.cgi?id=132812
2800 Reviewed by Brady Eidson.
2802 * WebCore.exp.in: Export more IconDatabase functions, since they are now called
2803 by WebKit2 through pointers to a class marked final.
2805 * loader/icon/IconDatabase.cpp: Removed unneeded includes. Use override for
2808 * loader/icon/IconDatabase.h: Removed unneeded includes. Marked the class final.
2809 Use override for virtual functions. Use a public constructor instead of a create
2812 * loader/icon/IconDatabaseBase.h: Removed unneeded includes.
2814 2014-05-13 Kiran <kiran.guduru@samsung.com>
2816 [MediaStream] MediaStream.addTrack Should not check for active state.
2817 https://bugs.webkit.org/show_bug.cgi?id=132558
2819 Reviewed by Eric Carlson.
2821 MediaStream.addTrack method is checking for active state of a
2822 MediaStream, but it should not check for active state while adding a Track.
2824 Test: fast/mediastream/MediaStream-add-tracks-to-inactive-stream.html
2826 * Modules/mediastream/MediaStream.cpp:
2827 (WebCore::MediaStream::addTrack):
2829 2014-05-12 Mark Lam <mark.lam@apple.com>
2831 WebKit2 on iOS needs to capture the main thread's floating point environment.
2832 <https://webkit.org/b/132755>
2834 Reviewed by Geoffrey Garen.
2836 For iOS, WorkerThread::workerThread() expects to be able to initialize the
2837 worker thread's floating point environment to be the same as the one in the
2838 main thread. The FP env of the main thread is expected to have been captured
2839 in the mainThreadFEnv global. On WebKit2 for iOS, we neglected to initialize
2842 We now introduce a FloatingPointEnvironment class that will encapsulate the main
2843 thread (aka "UIThread") fenv, and we'll call FloatingPointEnv::saveMainThreadEnvironment()
2844 from ChildProcess::platformInitialize() to ensure that the FloatingPointEnvironment
2845 singleton instance is initialized properly for WebKit2.
2847 In the ChildProcess::platformInitialize(), we also need to initialize the ARMv7
2848 FP env to support denormalized numbers. We'll do this before calling
2849 saveMainThreadEnvironment().
2851 Tests: fast/workers/worker-floating-point.html
2852 js/floating-point-denormalized.html
2855 * WebCore.xcodeproj/project.pbxproj:
2856 * platform/ios/wak/FloatingPointEnvironment.cpp: Added.
2857 (WebCore::FloatingPointEnvironment::env):
2858 (WebCore::FloatingPointEnvironment::FloatingPointEnvironment):
2859 (WebCore::FloatingPointEnvironment::enableDenormalSupport):
2860 (WebCore::FloatingPointEnvironment::saveMainThreadEnvironment):
2861 (WebCore::FloatingPointEnvironment::propagateMainThreadEnvironment):
2862 * platform/ios/wak/FloatingPointEnvironment.h: Added.
2863 * platform/ios/wak/WebCoreThread.h:
2864 * platform/ios/wak/WebCoreThread.mm:
2867 * workers/WorkerThread.cpp:
2868 (WebCore::WorkerThread::workerThread):
2870 2014-05-12 Dirk Schulze <krit@webkit.org>
2872 SVG root element accepts background color but fails to repaint it
2873 https://bugs.webkit.org/show_bug.cgi?id=63153
2875 Reviewed by Dean Jackson.
2877 This is back ported from Blink. Don't know the exact commit though.
2878 The patch checks if the SVGSVGElement is an outermost root element.
2879 If it is, mark the whole element for repaint.
2881 Test: svg/custom/svg-root-background.html
2883 * rendering/RenderBoxModelObject.cpp:
2884 (WebCore::RenderBoxModelObject::calculateHasBoxDecorations):
2885 (WebCore::RenderBoxModelObject::updateFromStyle):
2886 * rendering/RenderBoxModelObject.h:
2887 * rendering/svg/RenderSVGRoot.cpp:
2888 (WebCore::RenderSVGRoot::RenderSVGRoot):
2889 (WebCore::RenderSVGRoot::layout):
2890 (WebCore::RenderSVGRoot::paintReplaced):
2891 (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
2892 This is a simple optimization by taking the necessary parts
2893 from RenderReplaced and SVGRenderSupport.
2894 * rendering/svg/RenderSVGRoot.h:
2896 2014-05-12 Simon Fraser <simon.fraser@apple.com>
2898 [iOS] Fixed items are sometimes clipped after rubber-banding
2899 https://bugs.webkit.org/show_bug.cgi?id=132851
2900 <rdar://problem/16870790>
2902 Reviewed by Benjamin Poulain.
2904 On iOS fixed-position layers would get clipped to the document rect,
2905 but with rubber-banding, we can now have a custom fixed postion rect
2906 that extends outside the document rect.
2908 Another issue was that we would un-composite fixed elements sometimes
2909 when scrolling fast, again because they could fall outside of the document rect.
2911 A final issue was that pinching could reveal parts of fixed elements that should
2912 lie outside the viewport, rather than clipping the layers.
2914 Fix by converting both call points to use viewportConstrainedVisibleContentRect()
2915 rather than viewportConstrainedExtentRect(). On non-iOS platforms these are
2916 the same, but on iOS viewportConstrainedVisibleContentRect() uses the
2917 custom fixed position rect, which is the correct rect to intersect with.
2919 * rendering/RenderLayerBacking.cpp:
2920 (WebCore::RenderLayerBacking::updateCompositedBounds):
2921 * rendering/RenderLayerCompositor.cpp:
2922 (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
2924 2014-05-06 Jon Honeycutt <jhoneycutt@apple.com>
2926 Don't dispatch 'beforeload' event inside FrameView::layout()
2928 https://bugs.webkit.org/show_bug.cgi?id=132621
2929 <rdar://problem/15661470>
2931 This merges Blink revision 162073 with minor renaming and style
2932 changes. From that commit:
2934 Executing JavaScript code inside FrameView::layout() is problematic.
2935 e.g. an assertion failure tested in fast/events/beforeload-assertion.html.
2938 This CL makes 'beforeload' event dispatching for plugins and iframes asynchronous,
2939 except plugin access from JavaScript code (HTMLPlugInElement::
2940 renderWidgetForJSBindings).
2942 Reviewed by Brent Fulgham.
2944 Tests: fast/events/beforeload-assertion.html
2945 fast/events/beforeload-iframe-crash.html
2946 fast/events/beforeload-input-time-crash.html
2950 (WebCore::Document::updateLayoutIgnorePendingStylesheets):
2952 * html/HTMLAppletElement.cpp:
2953 (WebCore::HTMLAppletElement::renderWidgetForJSBindings):
2954 * html/HTMLEmbedElement.cpp:
2955 (WebCore::HTMLEmbedElement::renderWidgetForJSBindings):
2956 * html/HTMLObjectElement.cpp:
2957 (WebCore::HTMLObjectElement::renderWidgetForJSBindings):
2958 * page/FrameView.cpp:
2959 (WebCore::FrameView::FrameView):
2960 (WebCore::FrameView::reset):
2961 (WebCore::FrameView::updateEmbeddedObjectsTimerFired):
2962 (WebCore::FrameView::flushAnyPendingPostLayoutTasks):
2963 (WebCore::FrameView::performPostLayoutTasks):
2965 * testing/Internals.cpp:
2966 (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks):
2967 * testing/Internals.h:
2968 * testing/Internals.idl:
2970 2014-05-12 Roger Fong <roger_fong@apple.com>
2972 Limit number of active graphics contexts per web process.
2973 https://bugs.webkit.org/show_bug.cgi?id=132833.
2974 <rdar://problem/16888459>
2976 Reviewed by Dean Jackson.
2978 Test: webgl/many-contexts.html
2980 * platform/graphics/GraphicsContext3D.h:
2981 * platform/graphics/mac/GraphicsContext3DMac.mm: Limit number of active contexts to 16.
2982 (WebCore::GraphicsContext3D::create):
2983 (WebCore::GraphicsContext3D::~GraphicsContext3D):
2985 2014-05-12 Simon Fraser <simon.fraser@apple.com>
2989 * page/scrolling/ScrollingCoordinator.cpp:
2990 (WebCore::ScrollingCoordinator::contentShadowLayerForFrameView):
2992 2014-05-12 Brent Fulgham <bfulgham@apple.com>
2994 DataDetectorUI doesn't update with resize
2995 https://bugs.webkit.org/show_bug.cgi?id=132830
2996 <rdar://problem/16871179>
2998 Reviewed by Simon Fraser.
3000 * editing/Editor.cpp:
3001 (WebCore::Editor::scanSelectionForTelephoneNumbers): Add public, no-argument
3002 version that can be called after layout changes.
3003 (WebCore::Editor::didLayout): Reprocess telephone number data
3004 since Ranges will have changed.
3006 * editing/FrameSelection.cpp:
3007 (WebCore::FrameSelection::updateDataDetectorsForSelection): Added.
3008 * editing/FrameSelection.h:
3009 * page/FrameView.cpp:
3010 (WebCore::FrameView::performPostLayoutTasks): Ask the FrameSelection to update the
3011 Range information for selected phone numbers.
3013 2014-05-12 Simon Fraser <simon.fraser@apple.com>
3017 * page/scrolling/ScrollingCoordinator.cpp:
3018 (WebCore::ScrollingCoordinator::contentShadowLayerForFrameView):
3020 2014-05-12 Simon Fraser <simon.fraser@apple.com>
3022 [iOS WK2] Fuzzy tiles on some sites on loading
3023 https://bugs.webkit.org/show_bug.cgi?id=132847
3024 <rdar://problem/16816178>
3026 Reviewed by Benjamin Poulain.
3028 Export WebCore::TileController::contentsScale() const
3032 2014-05-12 Simon Fraser <simon.fraser@apple.com>
3034 Add debug dumping for ViewportConfiguration
3035 https://bugs.webkit.org/show_bug.cgi?id=132843
3037 Reviewed by Benjamin Poulain.
3039 Add some TextStream-based dumping for ViewportConfiguration.
3041 * page/ViewportConfiguration.cpp:
3042 (WebCore::ViewportConfiguration::updateConfiguration):
3043 (WebCore::ViewportConfigurationTextStream::ViewportConfigurationTextStream):
3044 (WebCore::ViewportConfigurationTextStream::increaseIndent):
3045 (WebCore::ViewportConfigurationTextStream::decreaseIndent):
3046 (WebCore::dumpProperty):
3047 (WebCore::ViewportConfigurationTextStream::writeIndent):
3048 (WebCore::ViewportConfigurationTextStream::operator<<):
3049 (WebCore::ViewportConfiguration::description):
3050 (WebCore::ViewportConfiguration::dump):
3051 * page/ViewportConfiguration.h:
3053 2014-05-12 Brady Eidson <beidson@apple.com>
3055 Followup to "Teach Editor to support more direct replacement of a Node"
3056 <rdar://problem/16817952> and https://bugs.webkit.org/show_bug.cgi?id=132834
3058 Pair programmed and pair reviewed by Brady Eidson and Darin Adler.
3060 * editing/mac/EditorMac.mm:
3061 (WebCore::maybeCopyNodeAttributesToFragment):
3062 (WebCore::Editor::replaceNodeFromPasteboard):
3064 2014-05-12 Beth Dakin <bdakin@apple.com>
3066 Content shadow layer needs to move in sync with the content layer
3067 https://bugs.webkit.org/show_bug.cgi?id=132841
3069 <rdar://problem/16641115>
3071 Reviewed by Simon Fraser.
3073 Now that the root content layer moves a little bit (for y scroll positions between
3074 0 and topContentInset), the shadow layer needs to move along with it since the
3075 shadow layer should always have the same position as the root content layer.
3077 Set the root state node’s shadow layer, and update the position whenever the root
3078 content layer’s position is updated.
3079 * page/scrolling/AsyncScrollingCoordinator.cpp:
3080 (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
3081 (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
3083 Fetch the compositor’s layerForContentShadow().
3084 * page/scrolling/ScrollingCoordinator.cpp:
3085 (WebCore::ScrollingCoordinator::contentShadowLayerForFrameView):
3086 * page/scrolling/ScrollingCoordinator.h:
3088 Hook up the contentShadowLayer in the state node.
3089 * page/scrolling/ScrollingStateScrollingNode.cpp:
3090 (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
3091 (WebCore::ScrollingStateScrollingNode::setContentShadowLayer):
3093 Hook it up in the ScrollingTreeNode as well. Move the layer whenever the m
3094 _scrolledContentsLayer is moved.
3095 * page/scrolling/ScrollingStateScrollingNode.h:
3096 * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
3097 * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
3098 (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
3099 (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
3101 The shadow layer needs an anchor point now that we are moving it around.
3102 * rendering/RenderLayerCompositor.cpp:
3103 (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
3105 2014-05-12 Dirk Schulze <krit@webkit.org>
3107 <svg> with opacity and compositing double-applies its opacity
3108 https://bugs.webkit.org/show_bug.cgi?id=116856
3110 Reviewed by Simon Fraser.
3112 The opacity is applied by the compositor. However, all SVG elements
3113 create transparency layers on their own to apply opacity. So did
3116 Added a check if the current element has a compositing layer and skip
3117 creating transparency layer if it has.
3119 Test: svg/custom/composited-svg-with-opacity.html
3121 * rendering/svg/SVGRenderingContext.cpp:
3122 (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
3124 2014-05-12 Brady Eidson <beidson@apple.com>
3126 Teach Editor to support more direct replacement of a Node
3127 <rdar://problem/16817952> and https://bugs.webkit.org/show_bug.cgi?id=132834
3129 Reviewed by Enrica Casucci.
3131 The new method "Editor::replaceNodeFromPasteboard" has the intent that the new DocumentFragment
3132 from the pasteboard is as similar to the old Node as possible.
3134 In practice, the new DocumentFragment:
3135 1 - Can represent a single node that's missing various attributes the original Node had.
3136 2 - Can be an unwanted fragment of arbitrary depth when the replacement happens inside Mail.app
3138 This fixes both of these issues.
3140 Add a MailBlockquoteHandling enum class for various Editor operations to pass through to the
3141 ReplaceSelectionCommand:
3142 * editing/Editor.cpp:
3143 (WebCore::Editor::handleTextEvent):
3144 (WebCore::Editor::pasteAsFragment):
3145 (WebCore::Editor::pasteWithPasteboard):
3146 (WebCore::Editor::replaceSelectionWithFragment):
3149 * dom/TextEvent.cpp:
3150 (WebCore::TextEvent::createForPlainTextPaste):
3151 (WebCore::TextEvent::createForFragmentPaste):
3152 (WebCore::TextEvent::TextEvent):
3154 (WebCore::TextEvent::mailBlockquoteHandling):
3156 * editing/ReplaceSelectionCommand.cpp:
3157 (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand):
3158 (WebCore::ReplaceSelectionCommand::doApply): Consider whether or not this particular Editor
3159 operation was meant to give special consideration to Mail's Blockquotes.
3160 * editing/ReplaceSelectionCommand.h:
3162 * editing/efl/EditorEfl.cpp:
3163 (WebCore::Editor::pasteWithPasteboard):
3164 * editing/ios/EditorIOS.mm:
3165 (WebCore::Editor::pasteWithPasteboard):
3167 * editing/mac/EditorMac.mm:
3168 (WebCore::Editor::pasteWithPasteboard):
3169 (WebCore::Editor::readSelectionFromPasteboard):
3170 (WebCore::maybeCopyNodeAttributesToFragment): If the new DocumentFragment represents a single HTML node
3171 with the same tag name is the original HTML node, copy over most attributes from the original node.
3172 (WebCore::Editor::replaceNodeFromPasteboard): Create the fragment, run it through maybeCopyNodeAttributesToFragment.
3176 2014-05-12 Alex Christensen <achristensen@webkit.org>
3178 Progress on web timing.
3179 https://bugs.webkit.org/show_bug.cgi?id=132574
3181 Reviewed by Alexey Proskuryakov.
3184 Removed ResourceLoadTiming.cpp.
3186 Added linker symbols for ResourceLoadTiming.
3187 * WebCore.xcodeproj/project.pbxproj:
3188 * WebCore.vcxproj/WebCore.vcxproj:
3189 * WebCore.vcxproj/WebCore.vcxproj.filters:
3190 Removed ResourceLoadTiming.cpp.
3191 * inspector/InspectorResourceAgent.cpp:
3192 (WebCore::buildObjectForTiming):
3193 * inspector/protocol/Network.json:
3194 Updated ResourceTiming structure.
3195 * loader/DocumentLoadTiming.cpp:
3196 (WebCore::DocumentLoadTiming::setNavigationStart):
3197 * loader/DocumentLoadTiming.h:
3198 Deleted unused setNavigationStart function.
3199 * page/Performance.idl:
3201 * page/PerformanceResourceTiming.cpp:
3202 (WebCore::PerformanceResourceTiming::domainLookupStart):
3203 (WebCore::PerformanceResourceTiming::domainLookupEnd):
3204 (WebCore::PerformanceResourceTiming::connectStart):
3205 (WebCore::PerformanceResourceTiming::secureConnectionStart):
3206 (WebCore::PerformanceResourceTiming::responseEnd):
3207 Updated ResourceLoadTiming member variable names.
3208 (WebCore::PerformanceResourceTiming::responseStart):
3209 * page/PerformanceResourceTiming.h:
3210 * page/PerformanceResourceTiming.idl:
3211 Deleted responseStart because it is not in the spec.
3212 * page/PerformanceTiming.cpp:
3213 (WebCore::PerformanceTiming::domainLookupStart):
3214 (WebCore::PerformanceTiming::domainLookupEnd):
3215 (WebCore::PerformanceTiming::connectStart):
3216 (WebCore::PerformanceTiming::secureConnectionStart):
3217 (WebCore::PerformanceTiming::requestStart):
3218 (WebCore::PerformanceTiming::responseStart):
3219 Updated ResourceLoadTiming member variable names.
3220 (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute):
3221 Use navigationStart as base for resource load times.
3222 * page/PerformanceTiming.idl:
3224 * platform/network/HTTPParsers.h:
3225 Removed unused class declarations.
3226 * platform/network/ResourceHandle.h:
3227 Moved soup request time from ResourceLoadTiming to ResourceHandle.
3228 * platform/network/ResourceLoadTiming.cpp: Removed.
3229 * platform/network/ResourceLoadTiming.h:
3230 (WebCore::ResourceLoadTiming::deepCopy):
3231 (WebCore::ResourceLoadTiming::operator==):
3232 (WebCore::ResourceLoadTiming::ResourceLoadTiming):
3233 Updated ResourceLoadTiming member variable names.
3234 * platform/network/mac/ResourceHandleMac.mm:
3235 (WebCore::ResourceHandle::createNSURLConnection):
3236 Collect timing data.
3237 * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
3238 (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
3239 * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
3240 (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
3241 Save timing data to a ResourceLoadTiming on the ResourceResponse.
3242 * platform/network/soup/ResourceHandleSoup.cpp:
3243 (WebCore::gotHeadersCallback):
3244 (WebCore::restartedCallback):
3245 (WebCore::milisecondsSinceRequest):
3246 (WebCore::ResourceHandle::didStartRequest):
3247 (WebCore::networkEventCallback):
3248 (WebCore::createSoupMessageForHandleAndRequest):
3249 (WebCore::ResourceHandle::sendPendingRequest):
3250 Updated ResourceLoadTiming member variable names.
3251 (WebCore::wroteBodyCallback): Deleted.
3253 2014-05-12 Dirk Schulze <krit@webkit.org>
3255 SVG outline property is broken and inefficient
3256 https://bugs.webkit.org/show_bug.cgi?id=113666
3258 Reviewed by Dean Jackson.
3260 Patch by Erik Dahlström backported from Blink.
3262 "[SVG2] css 'outline' property should apply to svg elements
3264 The 'outline' property was only partially working in SVG before
3265 this patch, this makes it work on text and text content child
3268 This makes SVG render the outlines as part of the foreground paint
3271 Partly based on Florin Malita's webkit patch https://bugs.webkit.org/show_bug.cgi?id=113666#c12."
3273 Tests: svg/custom/outline-stacking-expected.svg
3274 svg/custom/outline-stacking.svg
3275 svg/custom/rgba-color-outline.svg
3276 svg/text/text-outline-expected.svg
3277 svg/text/text-outline-rgba.html
3278 svg/text/text-outline.html
3279 svg/text/textpath-outline-expected.svg
3280 svg/text/textpath-outline.svg
3281 svg/text/tspan-multiple-outline.svg
3282 svg/text/tspan-outline-2-expected.svg
3283 svg/text/tspan-outline-2.svg
3284 svg/text/tspan-outline-expected.svg
3285 svg/text/tspan-outline.html
3287 * rendering/svg/RenderSVGContainer.cpp:
3288 (WebCore::RenderSVGContainer::paint): Draw outline in forground
3290 * rendering/svg/RenderSVGImage.cpp:
3291 (WebCore::RenderSVGImage::paint): Draw outline in forground
3293 * rendering/svg/RenderSVGRoot.cpp:
3294 (WebCore::RenderSVGRoot::paintReplaced): Pass paint offset.
3295 * rendering/svg/RenderSVGShape.cpp:
3296 (WebCore::RenderSVGShape::paint): Draw outline in forground
3298 * rendering/svg/RenderSVGText.cpp:
3299 (WebCore::RenderSVGText::paint): Draw outline in forground
3301 * rendering/svg/SVGInlineFlowBox.cpp:
3302 (WebCore::SVGInlineFlowBox::paint): Pass paint offset.
3303 * rendering/svg/SVGInlineTextBox.cpp:
3304 (WebCore::SVGInlineTextBox::paint): Draw outline in forground
3306 * rendering/svg/SVGRootInlineBox.cpp:
3307 (WebCore::SVGRootInlineBox::paint): Pass paint offset.
3309 2014-05-12 Beth Dakin <bdakin@apple.com>
3311 Layer for bottom overhang area needs to be offset by the topContentInset
3312 https://bugs.webkit.org/show_bug.cgi?id=132835
3314 <rdar://problem/16641115>
3316 Reviewed by Simon Fraser.
3318 Push this layer down by the topContentInset in addition to the root layer height,
3319 footer height, and header height.
3320 * rendering/RenderLayerCompositor.cpp:
3321 (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
3323 2014-05-09 Jon Honeycutt <jhoneycutt@apple.com>
3325 REGRESSION (r167818): editing/inserting/typing-space-to-trigger-smart-link.html fails on WebKit1 bots
3327 <https://bugs.webkit.org/show_bug.cgi?id=132207>
3328 <rdar://problem/16730393>
3330 Reverts the previous workaround in favor of a more specific fix for the
3333 Reviewed by Darin Adler.
3335 * editing/ApplyStyleCommand.cpp:
3336 (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
3337 Check whether the run's start and end are still in the document, as
3338 removeConflictingInlineStyleFromRun() may have removed them.
3340 * editing/CompositeEditCommand.cpp:
3341 (WebCore::CompositeEditCommand::apply):
3342 Reverted previous workaround.
3343 (WebCore::ApplyEditCommand::ReentrancyGuard::isRecursiveCall): Deleted.
3344 (WebCore::ApplyEditCommand::ReentrancyGuard::Scope::Scope): Deleted.
3345 (WebCore::ApplyEditCommand::ReentrancyGuard::Scope::~Scope): Deleted.
3347 2014-05-12 Zan Dobersek <zdobersek@igalia.com>
3349 Clean up CrossThreadTask
3350 https://bugs.webkit.org/show_bug.cgi?id=132800
3352 Reviewed by Darin Adler.
3354 Remove the createCallbackTask overloads and the related CrossThreadTask helper classes.
3356 Instead, have one simple CrossThreadTask class that derives from ScriptExecutionContext::Task.
3357 Its templated constructor takes in the method and the variadic pack of parameters. The cross-thread
3358 copies of the parameters are then bound to that method and the resulting bind expression is used to
3359 initialize the base class. The bind expression is constructed with a placeholder for the
3360 ScriptExecutionContext* parameter that's provided through ScriptExecutionContext::Task::performTask().
3362 * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
3363 (WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
3364 (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
3365 (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
3366 (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
3367 (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
3368 (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
3369 (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
3370 (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
3371 * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
3372 (WebCore::WorkerThreadableWebSocketChannel::Peer::send):
3373 (WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
3374 (WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect):
3375 (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
3376 (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
3377 (WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
3378 (WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
3379 (WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
3380 (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
3381 (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
3382 (WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):
3383 (WebCore::WorkerThreadableWebSocketChannel::Bridge::connect):
3384 (WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
3385 (WebCore::WorkerThreadableWebSocketChannel::Bridge::bufferedAmount):
3386 (WebCore::WorkerThreadableWebSocketChannel::Bridge::close):
3387 (WebCore::WorkerThreadableWebSocketChannel::Bridge::fail):
3388 (WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
3389 (WebCore::WorkerThreadableWebSocketChannel::Bridge::suspend):
3390 (WebCore::WorkerThreadableWebSocketChannel::Bridge::resume):