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