Remove Settings::compositedScrollingForFramesEnabled
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-04-29  Simon Fraser  <simon.fraser@apple.com>
2
3         Remove Settings::compositedScrollingForFramesEnabled
4         https://bugs.webkit.org/show_bug.cgi?id=132352
5
6         Reviewed by Andreas Kling.
7
8         The usesCompositedScrolling setting was only used by Chromium, so
9         remove it and associated code.
10
11         * page/FrameView.cpp:
12         (WebCore::FrameView::usesCompositedScrolling): Deleted.
13         * page/FrameView.h:
14         * page/Settings.in:
15         * rendering/RenderLayerCompositor.cpp:
16         (WebCore::RenderLayerCompositor::updateScrollLayerPosition):
17
18 2014-04-29  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
19
20         Move removeEquivalentProperties functions to EditingStyle
21         https://bugs.webkit.org/show_bug.cgi?id=131093
22
23         Reviewed by Darin Adler.
24
25         Moved the removeEquivalentProperties functions
26         from StyleProperties to EditingStyle class.
27
28         * css/StyleProperties.cpp:
29         (WebCore::MutableStyleProperties::removeEquivalentProperties): Deleted.
30         * css/StyleProperties.h:
31         * editing/EditingStyle.cpp:
32         (WebCore::EditingStyle::removeStyleAddedByNode):
33         (WebCore::EditingStyle::removeStyleConflictingWithStyleOfNode):
34         (WebCore::EditingStyle::prepareToApplyAt):
35         (WebCore::EditingStyle::removeEquivalentProperties):
36         (WebCore::extractPropertiesNotIn):
37         * editing/EditingStyle.h:
38
39 2014-04-29  David Hyatt  <hyatt@apple.com>
40
41         [New Multicolumn] Implement support for compositing
42         https://bugs.webkit.org/show_bug.cgi?id=132298
43
44         Reviewed by Simon Fraser.
45
46         * rendering/RenderLayer.cpp:
47         (WebCore::accumulateOffsetTowardsAncestor):
48         Add in a case for the new columns that calls into the multi-column flow thread
49         to get an offset to adjust by.
50
51         * rendering/RenderLayerBacking.cpp:
52         (WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread):
53         Make sure this code only runs for named flow threads.
54
55         * rendering/RenderLayerCompositor.cpp:
56         (WebCore::RenderLayerCompositor::canBeComposited):
57         Turn on compositing support for in-flow RenderFlowThreads instead of always returning
58         false
59
60         * rendering/RenderMultiColumnFlowThread.cpp:
61         (WebCore::RenderMultiColumnFlowThread::physicalTranslationOffsetFromFlowToRegion):
62         Changed this function to fix a couple of bugs exposed by compositing/columns tests. Its
63         end goal is the same, but the approach is improved.
64
65         * rendering/RenderMultiColumnSet.cpp:
66         (WebCore::RenderMultiColumnSet::endFlow):
67         Don't pad out to a multiple of column height. You can't flip around a flow thread
68         to get back to accurate physical coordinates if bogus padding is introduced. This
69         seemed to have no effect on any layout tests when removed, so I don't think it 
70         was really serving any useful purpose.
71
72         (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
73         Don't factor in the overall flow thread portion, since this is handled by the callers
74         now.
75
76         (WebCore::RenderMultiColumnSet::adjustRegionBoundsFromFlowThreadPortionRect):
77         * rendering/RenderMultiColumnSet.h:
78         Change this function to be ASSERT_NOT_REACHED(), since we want to know if someone calls
79         it. It only runs for named flow thread compositing code, so it would be a mistake if
80         this ever gets invoked.
81
82 2014-04-29  Mark Hahnenberg  <mhahnenberg@apple.com>
83
84         JSProxies should be cacheable
85         https://bugs.webkit.org/show_bug.cgi?id=132351
86
87         Reviewed by Geoffrey Garen.
88
89         No new tests.
90
91         Whenever we encounter a proxy in an inline cache we should try to cache on the 
92         proxy's target instead of giving up.
93
94         This patch adds support for a simple "recursive" inline cache if the base object
95         we're accessing is a pure forwarding proxy. JSGlobalObject and its subclasses 
96         are the only ones to benefit from this right now.
97
98         This is performance neutral on the benchmarks we track. Currently we won't
99         cache on JSDOMWindow due to HasImpureGetOwnPropertySlot, but this issue will be fixed soon.
100
101         * bindings/js/JSDOMWindowShell.h:
102         (WebCore::JSDOMWindowShell::createStructure):
103
104 2014-04-29  Brent Fulgham  <bfulgham@apple.com>
105
106         [Mac, iOS] Support caption activation via JS webkitHasClosedCaptions method
107         https://bugs.webkit.org/show_bug.cgi?id=132320
108
109         Reviewed by Eric Carlson.
110
111         * Modules/mediacontrols/mediaControlsApple.css:
112         (video::-webkit-media-text-track-container .hidden): Added.
113         * html/HTMLMediaElement.cpp:
114         (WebCore::HTMLMediaElement::configureTextTrackGroup): Added call to
115         new 'updateCaptionsContainer'.
116         (WebCore::HTMLMediaElement::updateCaptionContainer): Added.
117         * html/HTMLMediaElement.h:
118         * html/shadow/MediaControlElements.cpp:
119         (WebCore::MediaControlTextTrackContainerElement::hide): Use CSS class .hidden instead of
120         hard-coded "display:none".
121         (WebCore::MediaControlTextTrackContainerElement::show): Ditto.
122         * html/shadow/MediaControlElements.h:
123
124 2014-04-28  Roger Fong  <roger_fong@apple.com>
125
126         Plugins hidden by images should autoplay.
127         https://bugs.webkit.org/show_bug.cgi?id=132222.
128         <rdar://problem/16653536>
129
130         Reviewed by Jon Lee and Darin Adler.
131
132         * WebCore.exp.in: Add exports needed by WK2.
133
134 2014-04-29  Filip Pizlo  <fpizlo@apple.com>
135
136         Use LLVM as a backend for the fourth-tier DFG JIT (a.k.a. the FTL JIT)
137         https://bugs.webkit.org/show_bug.cgi?id=112840
138
139         Rubber stamped by Geoffrey Garen.
140
141         It already has a lot of tests.
142
143         * Configurations/FeatureDefines.xcconfig:
144
145 2014-04-29  Brady Eidson  <beidson@apple.com>
146
147         Change Image Controls replacement to use selection and paste
148         <rdar://problem/16302722> and https://bugs.webkit.org/show_bug.cgi?id=131992
149
150         Reviewed by Tim Horton.
151
152         * WebCore.exp.in: Remove deleted symbol.
153
154         * html/shadow/mac/ImageControlsButtonElementMac.cpp:
155         (WebCore::ImageControlsButtonElementMac::defaultEventHandler):
156
157         * page/ContextMenuController.cpp:
158         (WebCore::ContextMenuController::showImageControlsMenu): Select the image element
159           before showing the menu.
160         (WebCore::ContextMenuController::replaceControlledImage): Deleted.
161         * page/ContextMenuController.h:
162
163 2014-04-29  Jer Noble  <jer.noble@apple.com>
164
165         [iOS] Remove workaround for <rdar://problem/16578727>.
166         https://bugs.webkit.org/show_bug.cgi?id=132338
167
168         Reviewed by Darin Adler.
169
170         Now that <rdar://problem/16578727> is fixed, remove the workaround by replacing the
171         call to -_updatePlaybackControlsViewController with one to -layoutIfNeeded.
172
173         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
174         (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
175
176 2014-04-29  Zan Dobersek  <zdobersek@igalia.com>
177
178         ScriptExecutionContext::Task should work well with C++11 lambdas
179         https://bugs.webkit.org/show_bug.cgi?id=129795
180
181         Reviewed by Darin Adler.
182
183         Instead of having classes that subclass ScriptExecutionContext::Task and override
184         the performTask(ScriptExecutionContext*) method, have the ScriptExecutionContext::Task
185         take in a std::function<void (ScriptExecutionContext*)>-like object trough the constructor
186         which would contain the code currently kept in the performTask() methods.
187
188         This enables inlining C++11 lambdas into ScriptExecutionContext::postTask() calls. For
189         cleanup tasks, the Task object can be implicitly constructed by using the initializer list
190         constructor with the first argument being the ScriptExecutionContext::Task::CleanupTask tag.
191         The ScriptExecutionContext class remains non-copyable and now stores the passed-in invokable
192         object in the std::function wrapper, along with a boolean member that indicates whether the
193         task is of cleanup nature.
194
195         * Modules/quota/StorageErrorCallback.cpp:
196         (WebCore::StorageErrorCallback::CallbackTask::CallbackTask):
197         (WebCore::StorageErrorCallback::CallbackTask::performTask): Deleted.
198         * Modules/quota/StorageErrorCallback.h:
199         (WebCore::StorageErrorCallback::CallbackTask::create): Deleted.
200         * Modules/webdatabase/Database.cpp:
201         (WebCore::Database::~Database):
202         (WebCore::Database::runTransaction):
203         (WebCore::Database::scheduleTransactionCallback):
204         (WebCore::DerefContextTask::create): Deleted.
205         (WebCore::DerefContextTask::performTask): Deleted.
206         (WebCore::DerefContextTask::isCleanupTask): Deleted.
207         (WebCore::DerefContextTask::DerefContextTask): Deleted.
208         (WebCore::callTransactionErrorCallback): Deleted.
209         (WebCore::DeliverPendingCallbackTask::create): Deleted.
210         (WebCore::DeliverPendingCallbackTask::performTask): Deleted.
211         (WebCore::DeliverPendingCallbackTask::DeliverPendingCallbackTask): Deleted.
212         * Modules/webdatabase/DatabaseManager.cpp:
213         (WebCore::DatabaseManager::openDatabase):
214         (WebCore::DatabaseCreationCallbackTask::create): Deleted.
215         (WebCore::DatabaseCreationCallbackTask::performTask): Deleted.
216         (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask): Deleted.
217         * Modules/webdatabase/DatabaseSync.cpp:
218         (WebCore::CloseSyncDatabaseOnContextThreadTask::create): Deleted.
219         (WebCore::CloseSyncDatabaseOnContextThreadTask::performTask): Deleted.
220         (WebCore::CloseSyncDatabaseOnContextThreadTask::CloseSyncDatabaseOnContextThreadTask): Deleted.
221         * Modules/webdatabase/SQLCallbackWrapper.h:
222         (WebCore::SQLCallbackWrapper::clear):
223         (WebCore::SQLCallbackWrapper::SafeReleaseTask::create): Deleted.
224         (WebCore::SQLCallbackWrapper::SafeReleaseTask::performTask): Deleted.
225         (WebCore::SQLCallbackWrapper::SafeReleaseTask::isCleanupTask): Deleted.
226         (WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask): Deleted.
227         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
228         (WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
229         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
230         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
231         (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
232         (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
233         (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
234         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
235         (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
236         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
237         * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
238         (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
239         (WebCore::WorkerThreadableWebSocketChannel::mainThreadDestroy):
240         (WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
241         (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::create): Deleted.
242         (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::~WorkerGlobalScopeDidInitializeTask): Deleted.
243         (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::WorkerGlobalScopeDidInitializeTask): Deleted.
244         * Modules/websockets/WorkerThreadableWebSocketChannel.h:
245         * bindings/js/JSCallbackData.h:
246         (WebCore::DeleteCallbackDataTask::DeleteCallbackDataTask):
247         (WebCore::DeleteCallbackDataTask::create): Deleted.
248         (WebCore::DeleteCallbackDataTask::performTask): Deleted.
249         (WebCore::DeleteCallbackDataTask::isCleanupTask): Deleted.
250         * bindings/js/JSDOMGlobalObjectTask.cpp:
251         (WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
252         (WebCore::JSGlobalObjectTask::~JSGlobalObjectTask): Deleted.
253         (WebCore::JSGlobalObjectTask::performTask): Deleted.
254         * bindings/js/JSDOMGlobalObjectTask.h:
255         * bindings/js/JSDOMWindowBase.cpp:
256         (WebCore::JSDOMWindowBase::queueTaskToEventLoop):
257         * bindings/js/JSWorkerGlobalScopeBase.cpp:
258         (WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):
259         * bindings/scripts/CodeGeneratorJS.pm:
260         * bindings/scripts/test/JS/JSTestCallback.cpp:
261         (WebCore::JSTestCallback::~JSTestCallback):
262         (GenerateCallbackImplementation):
263         * dom/CrossThreadTask.h:
264         (WebCore::CrossThreadTask1::performTask):
265         (WebCore::CrossThreadTask2::performTask):
266         (WebCore::CrossThreadTask3::performTask):
267         (WebCore::CrossThreadTask4::performTask):
268         (WebCore::CrossThreadTask5::performTask):
269         (WebCore::CrossThreadTask6::performTask):
270         (WebCore::CrossThreadTask7::performTask):
271         (WebCore::CrossThreadTask8::performTask):
272         (WebCore::createCallbackTask):
273         (WebCore::CrossThreadTask1::create): Deleted.
274         (WebCore::CrossThreadTask2::create): Deleted.
275         (WebCore::CrossThreadTask3::create): Deleted.
276         (WebCore::CrossThreadTask4::create): Deleted.
277         (WebCore::CrossThreadTask5::create): Deleted.
278         (WebCore::CrossThreadTask6::create): Deleted.
279         (WebCore::CrossThreadTask7::create): Deleted.
280         (WebCore::CrossThreadTask8::create): Deleted.
281         * dom/Document.cpp:
282         (WebCore::Document::addConsoleMessage):
283         (WebCore::Document::addMessage):
284         (WebCore::Document::postTask):
285         (WebCore::Document::pendingTasksTimerFired):
286         (WebCore::PerformTaskContext::PerformTaskContext): Deleted.
287         (WebCore::Document::didReceiveTask): Deleted.
288         * dom/Document.h:
289         * dom/ScriptExecutionContext.cpp:
290         (WebCore::ScriptExecutionContext::processMessagePortMessagesSoon):
291         (WebCore::ScriptExecutionContext::timerAlignmentInterval):
292         (WebCore::ProcessMessagesSoonTask::create): Deleted.
293         (WebCore::ScriptExecutionContext::AddConsoleMessageTask::performTask): Deleted.
294         (WebCore::ScriptExecutionContext::Task::~Task): Deleted.
295         * dom/ScriptExecutionContext.h:
296         (WebCore::ScriptExecutionContext::Task::Task):
297         (WebCore::ScriptExecutionContext::Task::performTask):
298         (WebCore::ScriptExecutionContext::Task::isCleanupTask):
299         (WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
300         (WebCore::ScriptExecutionContext::AddConsoleMessageTask::create): Deleted.
301         * dom/StringCallback.cpp:
302         (WebCore::StringCallback::scheduleCallback):
303         * loader/appcache/ApplicationCacheGroup.cpp:
304         (WebCore::ApplicationCacheGroup::postListenerTask):
305         (WebCore::CallCacheListenerTask::create): Deleted.
306         (WebCore::CallCacheListenerTask::CallCacheListenerTask): Deleted.
307         * workers/DefaultSharedWorkerRepository.cpp:
308         (WebCore::SharedWorkerProxy::postTaskToLoader):
309         (WebCore::SharedWorkerProxy::postTaskForModeToWorkerGlobalScope):
310         (WebCore::SharedWorkerConnectTask::SharedWorkerConnectTask):
311         (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
312         (WebCore::DefaultSharedWorkerRepository::connectToWorker):
313         (WebCore::SharedWorkerConnectTask::create): Deleted.
314         (WebCore::SharedWorkerConnectTask::performTask): Deleted.
315         * workers/WorkerEventQueue.cpp:
316         (WebCore::WorkerEventQueue::EventDispatcher::EventDispatcher):
317         (WebCore::WorkerEventQueue::EventDispatcher::~EventDispatcher):
318         (WebCore::WorkerEventQueue::EventDispatcher::dispatch):
319         (WebCore::WorkerEventQueue::enqueueEvent):
320         (WebCore::WorkerEventQueue::cancelEvent):
321         (WebCore::WorkerEventQueue::close):
322         * workers/WorkerEventQueue.h:
323         * workers/WorkerGlobalScope.cpp:
324         (WebCore::WorkerGlobalScope::close):
325         (WebCore::WorkerGlobalScope::postTask):
326         (WebCore::WorkerGlobalScope::addConsoleMessage):
327         (WebCore::WorkerGlobalScope::addMessage):
328         (WebCore::CloseWorkerGlobalScopeTask::create): Deleted.
329         (WebCore::CloseWorkerGlobalScopeTask::performTask): Deleted.
330         (WebCore::CloseWorkerGlobalScopeTask::isCleanupTask): Deleted.
331         * workers/WorkerGlobalScope.h:
332         * workers/WorkerLoaderProxy.h:
333         * workers/WorkerMessagingProxy.cpp:
334         (WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
335         (WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
336         (WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope):
337         (WebCore::WorkerMessagingProxy::postTaskToLoader):
338         (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
339         (WebCore::WorkerMessagingProxy::workerThreadCreated):
340         (WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
341         (WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyed):
342         (WebCore::WorkerMessagingProxy::workerGlobalScopeClosed):
343         (WebCore::WorkerMessagingProxy::postMessageToPageInspector):
344         (WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject):
345         (WebCore::WorkerMessagingProxy::reportPendingActivity):
346         (WebCore::MessageWorkerGlobalScopeTask::create): Deleted.
347         (WebCore::MessageWorkerGlobalScopeTask::MessageWorkerGlobalScopeTask): Deleted.
348         (WebCore::MessageWorkerGlobalScopeTask::performTask): Deleted.
349         (WebCore::MessageWorkerTask::create): Deleted.
350         (WebCore::MessageWorkerTask::MessageWorkerTask): Deleted.
351         (WebCore::MessageWorkerTask::performTask): Deleted.
352         (WebCore::WorkerExceptionTask::create): Deleted.
353         (WebCore::WorkerExceptionTask::WorkerExceptionTask): Deleted.
354         (WebCore::WorkerExceptionTask::performTask): Deleted.
355         (WebCore::WorkerGlobalScopeDestroyedTask::create): Deleted.
356         (WebCore::WorkerGlobalScopeDestroyedTask::WorkerGlobalScopeDestroyedTask): Deleted.
357         (WebCore::WorkerGlobalScopeDestroyedTask::performTask): Deleted.
358         (WebCore::WorkerTerminateTask::create): Deleted.
359         (WebCore::WorkerTerminateTask::WorkerTerminateTask): Deleted.
360         (WebCore::WorkerTerminateTask::performTask): Deleted.
361         (WebCore::WorkerThreadActivityReportTask::create): Deleted.
362         (WebCore::WorkerThreadActivityReportTask::WorkerThreadActivityReportTask): Deleted.
363         (WebCore::WorkerThreadActivityReportTask::performTask): Deleted.
364         (WebCore::PostMessageToPageInspectorTask::create): Deleted.
365         (WebCore::PostMessageToPageInspectorTask::PostMessageToPageInspectorTask): Deleted.
366         (WebCore::PostMessageToPageInspectorTask::performTask): Deleted.
367         (WebCore::NotifyNetworkStateChangeTask::create): Deleted.
368         (WebCore::NotifyNetworkStateChangeTask::NotifyNetworkStateChangeTask): Deleted.
369         (WebCore::NotifyNetworkStateChangeTask::performTask): Deleted.
370         * workers/WorkerMessagingProxy.h:
371         * workers/WorkerRunLoop.cpp:
372         (WebCore::WorkerRunLoop::postTask):
373         (WebCore::WorkerRunLoop::postTaskAndTerminate):
374         (WebCore::WorkerRunLoop::postTaskForMode):
375         (WebCore::WorkerRunLoop::Task::create):
376         (WebCore::WorkerRunLoop::Task::performTask):
377         (WebCore::WorkerRunLoop::Task::Task):
378         * workers/WorkerRunLoop.h:
379         * workers/WorkerThread.cpp:
380         (WebCore::WorkerThread::stop):
381         (WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):
382         (WebCore::WorkerThreadShutdownFinishTask::create): Deleted.
383         (WebCore::WorkerThreadShutdownFinishTask::performTask): Deleted.
384         (WebCore::WorkerThreadShutdownFinishTask::isCleanupTask): Deleted.
385         (WebCore::WorkerThreadShutdownStartTask::create): Deleted.
386         (WebCore::WorkerThreadShutdownStartTask::performTask): Deleted.
387         (WebCore::WorkerThreadShutdownStartTask::isCleanupTask): Deleted.
388
389 2014-04-29  Manuel Rego Casasnovas  <rego@igalia.com>
390
391         REGRESSION (r167879): Heap-use-after-free in WebCore::RenderFlexibleBox
392         https://bugs.webkit.org/show_bug.cgi?id=132337
393
394         Reviewed by Simon Fraser.
395
396         From Blink r154582 by <jchaffraix@chromium.org>
397
398         This is a regression from the changes in OrderIterator. The issue is
399         that we don't invalidate our iterator when a child is removed. This
400         means that we could hold onto free'd memory until the next layout
401         when we will recompute the iterator.
402
403         The solution is simple: just clear the memory when we remove a child.
404
405         Note that RenderGrid is not impacted by this bug as we don't use the
406         iterator outside layout yet, but if we do it at some point the very same
407         problem will arise, so the same treatment was applied to the class.
408
409         Test: fast/flexbox/order-iterator-crash.html
410
411         * rendering/OrderIterator.cpp:
412         (WebCore::OrderIterator::invalidate): Clear m_children Vector.
413         * rendering/OrderIterator.h:
414         (WebCore::OrderIteratorPopulator::OrderIteratorPopulator): Use
415         invalidate() method.
416         * rendering/RenderFlexibleBox.cpp:
417         (WebCore::RenderFlexibleBox::removeChild): Invalidate m_orderIterator.
418         * rendering/RenderFlexibleBox.h: Add removeChild() signature.
419         * rendering/RenderGrid.cpp: Invalidate m_orderIterator.
420         (WebCore::RenderGrid::removeChild):
421         * rendering/RenderGrid.h: Add removeChild() header.
422
423 2014-04-29  Enrica Casucci  <enrica@apple.com>
424
425         iOS build fix after http://trac.webkit.org/changeset/167937.
426         Unreviewed.
427
428         * rendering/RenderThemeIOS.mm:
429         (WebCore::RenderThemeIOS::adjustButtonStyle):
430
431 2014-04-29  Hans Muller  <hmuller@adobe.com>
432
433         [CSS Shapes] off-by-one error in Shape::createRasterShape()
434         https://bugs.webkit.org/show_bug.cgi?id=132154
435
436         Reviewed by Bem Jones-Bey.
437
438         This is a port of a patch for a bug that was reported by and fixed in Blink by
439         David Vest: https://codereview.chromium.org/237123002/.  Shape::createRasterShape()
440         now consistently reports "end-point exclusive" intervals. Before the patch
441         an entire row of pixels was above the shape-image-threshold, the interval's end
442         index was reported as image.width. Now it's image.width + 1, which is consistent
443         with the way the end index is reported if the last above threshold pixel is within
444         an image row.
445
446         Two existing tests were revised to account for this change.
447
448         * rendering/shapes/RasterShape.cpp:
449         (WebCore::RasterShape::getExcludedIntervals):
450         * rendering/shapes/Shape.cpp:
451         (WebCore::Shape::createRasterShape):
452
453 2014-04-29  Bem Jones-Bey  <bjonesbe@adobe.com>
454
455         Wrap CSS length conversion arguments in an object
456         https://bugs.webkit.org/show_bug.cgi?id=131552
457
458         Reviewed by Andreas Kling.
459
460         This patch introduces a class CSSToLengthConversionData to wrap the
461         data required to convert CSS lengths to Lengths. This simplifies the
462         plumbing that goes on whenever we need to resolve CSS lengths and
463         makes it easier to update the arguments needed for resolving these (in
464         particular adding a RenderView for resolving viewport units at style
465         recalc time; removing the computingFontSize bool also appears
466         possible).
467
468         Note that the zoom argument, which was previously a float in some
469         places and a double in others is now a float.
470
471         This is a port of a Blink patch by timloh@chromium.org.
472
473         No new tests, no behavior change.
474
475         * CMakeLists.txt:
476         * WebCore.vcxproj/WebCore.vcxproj:
477         * WebCore.xcodeproj/project.pbxproj:
478         * css/BasicShapeFunctions.cpp:
479         (WebCore::convertToLength):
480         (WebCore::convertToLengthSize):
481         (WebCore::convertToCenterCoordinate):
482         (WebCore::cssValueToBasicShapeRadius):
483         (WebCore::basicShapeForValue):
484         * css/BasicShapeFunctions.h:
485         * css/CSSCalculationValue.cpp:
486         (WebCore::CSSCalcValue::computeLengthPx):
487         (WebCore::determineCategory):
488         * css/CSSCalculationValue.h:
489         (WebCore::CSSCalcValue::createCalculationValue):
490         * css/CSSGradientValue.cpp:
491         (WebCore::CSSGradientValue::addStops):
492         (WebCore::positionFromValue):
493         (WebCore::CSSGradientValue::computeEndPoint):
494         (WebCore::CSSLinearGradientValue::createGradient):
495         (WebCore::CSSRadialGradientValue::resolveRadius):
496         (WebCore::CSSRadialGradientValue::createGradient):
497         * css/CSSGradientValue.h:
498         * css/CSSPrimitiveValue.cpp:
499         (WebCore::CSSPrimitiveValue::computeLength):
500         (WebCore::CSSPrimitiveValue::computeLengthDouble):
501         * css/CSSPrimitiveValue.h:
502         * css/CSSPrimitiveValueMappings.h:
503         (WebCore::CSSPrimitiveValue::convertToLength):
504         * css/CSSToLengthConversionData.cpp: Added.
505         (WebCore::CSSToLengthConversionData::zoom):
506         * css/CSSToLengthConversionData.h: Added.
507         (WebCore::CSSToLengthConversionData::CSSToLengthConversionData):
508         (WebCore::CSSToLengthConversionData::style):
509         (WebCore::CSSToLengthConversionData::rootStyle):
510         (WebCore::CSSToLengthConversionData::computingFontSize):
511         (WebCore::CSSToLengthConversionData::copyWithAdjustedZoom):
512         * css/CSSToStyleMap.cpp:
513         (WebCore::CSSToStyleMap::CSSToStyleMap):
514         (WebCore::CSSToStyleMap::mapFillSize):
515         (WebCore::CSSToStyleMap::mapFillXPosition):
516         (WebCore::CSSToStyleMap::mapFillYPosition):
517         (WebCore::CSSToStyleMap::mapNinePieceImageQuad):
518         * css/CSSToStyleMap.h:
519         (WebCore::CSSToStyleMap::CSSToStyleMap): Deleted.
520         * css/DeprecatedStyleBuilder.cpp:
521         (WebCore::ApplyPropertyAuto::applyValue):
522         (WebCore::ApplyPropertyClip::convertToLength):
523         (WebCore::ApplyPropertyLength::applyValue):
524         (WebCore::ApplyPropertyBorderRadius::applyValue):
525         (WebCore::ApplyPropertyComputeLength::applyValue):
526         (WebCore::ApplyPropertyFontSize::applyValue):
527         (WebCore::csstoLengthConversionDataWithTextZoomFactor):
528         (WebCore::ApplyPropertyMarqueeIncrement::applyValue):
529         (WebCore::ApplyPropertyLineHeight::applyValue):
530         (WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyValue):
531         (WebCore::ApplyPropertyWordSpacing::applyValue):
532         (WebCore::ApplyPropertyPageSize::mmLength):
533         (WebCore::ApplyPropertyPageSize::inchLength):
534         (WebCore::ApplyPropertyPageSize::applyValue):
535         (WebCore::ApplyPropertyVerticalAlign::applyValue):
536         (WebCore::ApplyPropertyClipPath::applyValue):
537         (WebCore::ApplyPropertyShape::applyValue):
538         (WebCore::ApplyPropertyTextIndent::applyValue):
539         * css/MediaQueryEvaluator.cpp:
540         (WebCore::colorMediaFeatureEval):
541         (WebCore::color_indexMediaFeatureEval):
542         (WebCore::monochromeMediaFeatureEval):
543         (WebCore::orientationMediaFeatureEval):
544         (WebCore::aspect_ratioMediaFeatureEval):
545         (WebCore::device_aspect_ratioMediaFeatureEval):
546         (WebCore::device_pixel_ratioMediaFeatureEval):
547         (WebCore::resolutionMediaFeatureEval):
548         (WebCore::gridMediaFeatureEval):
549         (WebCore::computeLength):
550         (WebCore::device_heightMediaFeatureEval):
551         (WebCore::device_widthMediaFeatureEval):
552         (WebCore::heightMediaFeatureEval):
553         (WebCore::widthMediaFeatureEval):
554         (WebCore::min_colorMediaFeatureEval):
555         (WebCore::max_colorMediaFeatureEval):
556         (WebCore::min_color_indexMediaFeatureEval):
557         (WebCore::max_color_indexMediaFeatureEval):
558         (WebCore::min_monochromeMediaFeatureEval):
559         (WebCore::max_monochromeMediaFeatureEval):
560         (WebCore::min_aspect_ratioMediaFeatureEval):
561         (WebCore::max_aspect_ratioMediaFeatureEval):
562         (WebCore::min_device_aspect_ratioMediaFeatureEval):
563         (WebCore::max_device_aspect_ratioMediaFeatureEval):
564         (WebCore::min_device_pixel_ratioMediaFeatureEval):
565         (WebCore::max_device_pixel_ratioMediaFeatureEval):
566         (WebCore::min_heightMediaFeatureEval):
567         (WebCore::max_heightMediaFeatureEval):
568         (WebCore::min_widthMediaFeatureEval):
569         (WebCore::max_widthMediaFeatureEval):
570         (WebCore::min_device_heightMediaFeatureEval):
571         (WebCore::max_device_heightMediaFeatureEval):
572         (WebCore::min_device_widthMediaFeatureEval):
573         (WebCore::max_device_widthMediaFeatureEval):
574         (WebCore::min_resolutionMediaFeatureEval):
575         (WebCore::max_resolutionMediaFeatureEval):
576         (WebCore::animationMediaFeatureEval):
577         (WebCore::transitionMediaFeatureEval):
578         (WebCore::transform_2dMediaFeatureEval):
579         (WebCore::transform_3dMediaFeatureEval):
580         (WebCore::view_modeMediaFeatureEval):
581         (WebCore::video_playable_inlineMediaFeatureEval):
582         (WebCore::hoverMediaFeatureEval):
583         (WebCore::pointerMediaFeatureEval):
584         (WebCore::MediaQueryEvaluator::eval):
585         * css/SVGCSSStyleSelector.cpp:
586         (WebCore::StyleResolver::applySVGProperty):
587         * css/StyleResolver.cpp:
588         (WebCore::StyleResolver::State::clear):
589         (WebCore::StyleResolver::State::initForStyleResolve):
590         (WebCore::StyleResolver::convertToIntLength):
591         (WebCore::StyleResolver::convertToFloatLength):
592         (WebCore::createGridTrackBreadth):
593         (WebCore::StyleResolver::applyProperty):
594         (WebCore::StyleResolver::createFilterOperations):
595         * css/StyleResolver.h:
596         (WebCore::StyleResolver::State::setStyle):
597         (WebCore::StyleResolver::State::cssToLengthConversionData):
598         * css/TransformFunctions.cpp:
599         (WebCore::convertToFloatLength):
600         (WebCore::transformsForValue):
601         * css/TransformFunctions.h:
602         * css/WebKitCSSMatrix.cpp:
603         (WebCore::WebKitCSSMatrix::setMatrixValue):
604         * rendering/RenderThemeIOS.mm:
605         (WebCore::applyCommonButtonPaddingToStyle):
606         (WebCore::RenderThemeIOS::adjustButtonStyle):
607
608 2014-04-29  Zoltan Horvath  <zoltan@webkit.org>
609
610         [CSS Shapes] complex calc args for inset round vanish
611         https://bugs.webkit.org/show_bug.cgi?id=132293
612
613         Reviewed by Bem Jones-Bey.
614
615         In order to use calc in the rounded parameters for inset shapes, we need
616         to pass RenderStyle for the value creation as we did for the width arguments.
617         Without taking RenderStyle into account, we hit an assert not reache
618         in CSSPrimitiveValue::init in the debug builds.
619
620         I've added new parsing test.
621
622         * css/BasicShapeFunctions.cpp:
623         (WebCore::valueForBasicShape):
624         * css/CSSPrimitiveValue.cpp:
625         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
626         (WebCore::CSSPrimitiveValue::init):
627         * css/CSSPrimitiveValue.h:
628         (WebCore::CSSPrimitiveValue::create):
629         * css/CSSValuePool.h:
630         (WebCore::CSSValuePool::createValue):
631
632 2014-04-29  Zoltan Horvath  <zoltan@webkit.org>
633
634         [CSS Shapes] complex calc values for shape-margin return null for computed style
635         https://bugs.webkit.org/show_bug.cgi?id=132313
636
637         Reviewed by Bem Jones-Bey.
638
639         We need to pass RenderStyle* to the cssValuePool when parsing
640         shape-margin in order to use calc() as a parameter.
641
642         I've added the new test case to parsing-shape-margin.html
643
644         * css/CSSComputedStyleDeclaration.cpp:
645         (WebCore::ComputedStyleExtractor::propertyValue):
646
647 2014-04-29  Chris Fleizach  <cfleizach@apple.com>
648
649         AX: Row span info is wrong for table cells when a footer section is placed above a body section
650         https://bugs.webkit.org/show_bug.cgi?id=131832
651
652         Reviewed by Mario Sanchez Prada.
653
654         If a <footer> section is placed before the body, it renders AX row information and order incorrectly.
655         This also affects ARIA tables because they add their children by looking at renderer children, instead
656         interrogating the RenderTable directly.
657
658         Test: accessibility/table-with-footer-section-above-body.html
659
660         * accessibility/AccessibilityARIAGrid.cpp:
661         (WebCore::AccessibilityARIAGrid::addTableCellChild):
662         (WebCore::AccessibilityARIAGrid::addChildren):
663         * accessibility/AccessibilityTable.cpp:
664         (WebCore::AccessibilityTable::addChildren):
665         (WebCore::AccessibilityTable::addChildrenFromSection):
666         * accessibility/AccessibilityTable.h:
667         * accessibility/AccessibilityTableCell.cpp:
668         (WebCore::AccessibilityTableCell::rowIndexRange):
669         (WebCore::AccessibilityTableCell::columnIndexRange):
670
671 2014-04-29  Chris Fleizach  <cfleizach@apple.com>
672
673         AX: SpeechSynthesisUtterance cannot addEventListener
674         https://bugs.webkit.org/show_bug.cgi?id=132321
675
676         Reviewed by Mario Sanchez Prada.
677
678         Modified an existing test (speech-synthesis-speak.html) to use addEventTarget.
679
680         * Modules/speech/SpeechSynthesisUtterance.idl:
681
682 2014-04-29  Hans Muller  <hmuller@adobe.com>
683
684         [CSS Shapes] shape-outside polygon fails when first vertex is 0,0
685         https://bugs.webkit.org/show_bug.cgi?id=132132
686
687         Reviewed by Bem Jones-Bey.
688
689         ShapeInterval now distinguishes between x1==x2 - isEmpty() and x1,x2 haven't been
690         set yet - isUndefined(). Removed the ShapeInterval setX1() and setX2() methods, since
691         they're no longer used.
692
693         The polygon algorithm for computing excluded intervals now ignores horizontal
694         edges. It also ignores edges whose lower vertex matches the top of the line, if
695         the edge's Y direction is upwards (away from the top of the line). The rationale
696         for this was explained here:
697         http://hansmuller-webkit.blogspot.com/2012/11/revised-horizontal-box-algorithm.html
698
699         Test: fast/shapes/shape-outside-floats/shape-outside-polygon-zero-vertex.html
700
701         * rendering/shapes/PolygonShape.cpp:
702         (WebCore::OffsetPolygonEdge::clippedEdgeXRange):
703         (WebCore::PolygonShape::getExcludedIntervals):
704         * rendering/shapes/ShapeInterval.h:
705         (WebCore::ShapeInterval::ShapeInterval):
706         (WebCore::ShapeInterval::isUndefined):
707         (WebCore::ShapeInterval::x1):
708         (WebCore::ShapeInterval::x2):
709         (WebCore::ShapeInterval::width):
710         (WebCore::ShapeInterval::isEmpty):
711         (WebCore::ShapeInterval::setX1):
712         (WebCore::ShapeInterval::setX2):
713         (WebCore::ShapeInterval::overlaps):
714         (WebCore::ShapeInterval::contains):
715         (WebCore::ShapeInterval::unite):
716
717 2014-04-29  Andrei Bucur  <abucur@adobe.com>
718
719         [CSS Regions] Fix getClientRects() for content nodes
720         https://bugs.webkit.org/show_bug.cgi?id=117407
721
722         Reviewed by David Hyatt.
723
724         This patch modifies getClientRects() to return a list of fragments
725         for a fragmented box instead of a single rectangle positioned inside
726         the region where the box center would appear.
727
728         The approach is to split the border box of the element in regions using
729         the layout positioning. Then each fragment is mapped to the view coordinates
730         and the result added to the list of rectangles. To preserve the originating
731         region when mapping the fragment through the ancestor tree I've introduced
732         the concept of a current region. The current region is stored inside a
733         CurrentRenderRegionMaintainer object, created whenever an algorithm needing
734         it needs to run. When the maintainer is destroyed, the cleanup is made
735         automatically. The RenderFlowThread holds a pointer to this structure for
736         easy access.
737
738         Tests: fast/regions/cssom/client-rects-fixed-content.html
739                fast/regions/cssom/client-rects-forced-breaks.html
740                fast/regions/cssom/client-rects-inline-complex.html
741                fast/regions/cssom/client-rects-inline.html
742                fast/regions/cssom/client-rects-nested-regions.html
743                fast/regions/cssom/client-rects-positioned.html
744                fast/regions/cssom/client-rects-relative-position.html
745                fast/regions/cssom/client-rects-simple-block.html
746                fast/regions/cssom/client-rects-transforms.html
747                fast/regions/cssom/client-rects-unsplittable-float.html
748
749         * rendering/RenderBlock.cpp:
750         (WebCore::RenderBlock::absoluteQuads): Split the box in fragments.
751         * rendering/RenderBox.cpp:
752         (WebCore::RenderBox::absoluteQuads): Split the box in fragments.
753         * rendering/RenderFlowThread.cpp:
754         (WebCore::RenderFlowThread::RenderFlowThread):
755         (WebCore::RenderFlowThread::mapFromFlowToRegion):
756         (WebCore::RenderFlowThread::mapLocalToContainer):
757         (WebCore::RenderFlowThread::currentRegion):
758         * rendering/RenderFlowThread.h:
759         * rendering/RenderNamedFlowFragment.cpp:
760         (WebCore::RenderNamedFlowFragment::absoluteQuadsForBoxInRegion): Get
761         the fragments for this box in the region.
762         * rendering/RenderNamedFlowFragment.h:
763         * rendering/RenderNamedFlowThread.cpp:
764         (WebCore::RenderNamedFlowThread::absoluteQuadsForBox): Virtual function
765         that can be used to implement fragments to client rects mapping.
766         * rendering/RenderNamedFlowThread.h:
767         * rendering/RenderRegion.cpp:
768         (WebCore::RenderRegion::rectFlowPortionForBox): Small change to correctly
769         map empty rectangles to containers.
770         (WebCore::CurrentRenderRegionMaintainer::CurrentRenderRegionMaintainer):
771         (WebCore::CurrentRenderRegionMaintainer::~CurrentRenderRegionMaintainer):
772         * rendering/RenderRegion.h:
773         (WebCore::RenderRegion::absoluteQuadsForBoxInRegion):
774         (WebCore::CurrentRenderRegionMaintainer::region):
775
776 2014-04-29  Andrei Bucur  <abucur@adobe.com>
777
778         Store the containing region map inside the flow thread
779         https://bugs.webkit.org/show_bug.cgi?id=131647
780
781         Reviewed by Mihnea Ovidenie.
782
783         The patch moves the containing region map inside the flow thread where
784         it can be better handled in case the region chain changes and the map
785         needs to be cleared.
786
787         As a result of this move we are able to also cleanup the lines region
788         information of a block flow when it is removed from the tree.
789
790         Test: fast/regions/inline-strike-through.html
791
792         * rendering/InlineFlowBox.h:
793         (WebCore::InlineFlowBox::InlineFlowBox):
794         * rendering/RenderBlockLineLayout.cpp:
795         (WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
796         * rendering/RenderFlowThread.cpp:
797         (WebCore::RenderFlowThread::removeFlowChildInfo):
798         (WebCore::RenderFlowThread::invalidateRegions):
799         (WebCore::RenderFlowThread::removeLineRegionInfo):
800         (WebCore::RenderFlowThread::checkLinesConsistency):
801         (WebCore::RenderFlowThread::containingRegionMap):
802         * rendering/RenderFlowThread.h:
803         * rendering/RootInlineBox.cpp:
804         (WebCore::containingRegionMap):
805         (WebCore::RootInlineBox::~RootInlineBox):
806         (WebCore::RootInlineBox::paint):
807         (WebCore::RootInlineBox::containingRegion):
808         (WebCore::RootInlineBox::clearContainingRegion):
809         (WebCore::RootInlineBox::setContainingRegion):
810
811 2014-04-28  Benjamin Poulain  <benjamin@webkit.org>
812
813         SelectorCodeGenerator::generateElementIsNthChild() leaks the parent register :nth-child() is non-filtering
814         https://bugs.webkit.org/show_bug.cgi?id=132311
815
816         Reviewed by Andreas Kling.
817
818         In two cases, the parent register was never returned to the register allocator:
819         -Non filtering selectors (the early return).
820         -Non marking selectors (at the moment: only querySelector API).
821
822         Unfortunately, generateElementIsNthChild() makes function call, which forces us to do this manual allocation
823         of the parentElement register. Long term, I want RegisterAllocator and FunctionCall to have a special type for that.
824
825         Test: fast/selectors/several-nth-child.html
826
827         * cssjit/SelectorCompiler.cpp:
828         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
829
830 2014-04-28  Yusuke Suzuki  <utatane.tea@gmail.com>
831
832         CSS JIT: backtracking with current / parent element for child
833         https://bugs.webkit.org/show_bug.cgi?id=132057
834
835         Reviewed by Benjamin Poulain.
836
837         Calculate appropriate backtracking start height from the closest
838         descendant. And at first, we use it for a simple optimization.
839
840         1. When backtracking start height equals to current height, we
841         can simply jump to a descendant element check phase.
842         2. When backtracking start height equals to current height + 1, we
843         can simply jump to a descendant element traversing phase.
844
845         We can apply this optimization to fragments with adjacent combinators.
846         But, in the meantime, we start to implement it for a fragment with
847         child combinator.
848
849         * cssjit/SelectorCompiler.cpp:
850         (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
851         (WebCore::SelectorCompiler::TagNamePattern::TagNamePattern):
852         (WebCore::SelectorCompiler::solveDescendantBacktrackingActionForChild):
853         (WebCore::SelectorCompiler::solveBacktrackingAction):
854         (WebCore::SelectorCompiler::equalTagNames):
855         (WebCore::SelectorCompiler::equalTagNamePatterns):
856         (WebCore::SelectorCompiler::computeBacktrackingStartHeightFromDescendant):
857         (WebCore::SelectorCompiler::computeBacktrackingHeightFromDescendant):
858         (WebCore::SelectorCompiler::requiresAdjacentTail):
859         (WebCore::SelectorCompiler::requiresDescendantTail):
860         (WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
861         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
862         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToParentNode):
863         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToParentElement):
864         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateParentElementTreeWalker):
865         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAncestorTreeWalker):
866         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
867         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
868         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
869
870 2014-04-28  Benjamin Poulain  <bpoulain@apple.com>
871
872         [iOS][WK2] Restore the scroll position and scale from the HistoryItem (mostly)
873         https://bugs.webkit.org/show_bug.cgi?id=132307
874
875         Reviewed by Simon Fraser.
876
877         * WebCore.exp.in:
878
879 2014-04-28  Beth Dakin  <bdakin@apple.com>
880
881         Scrollbars do not update properly when topContentInset changes dynamically
882         https://bugs.webkit.org/show_bug.cgi?id=132309
883         -and corresponding-
884         <rdar://problem/16642232>
885
886         Reviewed by Tim Horton.
887
888         It is not sufficient to do a layout and call updateScrollbars(). We must also call 
889         RenderLayerCompositor::frameViewDidChangeSize() in order to properly adjust the 
890         size and position of all of the scrolling-related layers.
891         * page/FrameView.cpp:
892         (WebCore::FrameView::topContentInsetDidChange):
893
894 2014-04-28  David Hyatt  <hyatt@apple.com>
895
896         [New Multicolumn] event.offsetX/offsetY don't work correctly
897         https://bugs.webkit.org/show_bug.cgi?id=132284
898
899         Reviewed by Simon Fraser.
900
901         * rendering/RenderBoxModelObject.cpp:
902         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
903         Change the code here to only trigger for CSS Regions and not for
904         multi-column. Add a FIXME pointing out that the code is broken even for
905         CSS regions.
906
907          * rendering/RenderMultiColumnFlowThread.cpp:
908         (WebCore::RenderMultiColumnFlowThread::mapAbsoluteToLocalPoint):
909         Override mapAbsoluteToLocalPoint in order to guess a region and attempt
910         to translate the point from that region to the flow thread local coordinate
911         space.
912
913         (WebCore::RenderMultiColumnFlowThread::physicalTranslationFromRegionToFlow):
914         * rendering/RenderMultiColumnFlowThread.h:
915         New helper function that just wraps calling the region's logical translation
916         function and converting to/from physical coordinates.
917
918 2014-04-28  Commit Queue  <commit-queue@webkit.org>
919
920         Unreviewed, rolling out r167857.
921         https://bugs.webkit.org/show_bug.cgi?id=132305
922
923         the change was rolled out, roll out the new expectations as
924         well (Requested by thorton on #webkit).
925
926         Reverted changeset:
927
928         "Unreviewed. Updating one bindings test baseline after
929         r167855."
930         http://trac.webkit.org/changeset/167857
931
932 2014-04-28  Dean Jackson  <dino@apple.com>
933
934         [Mac] Use the animated version of setHighlighted on NSButtonCell where available
935         https://bugs.webkit.org/show_bug.cgi?id=132295
936         <rdar://problem/16747240>
937
938         Reviewed by Beth Dakin.
939
940         Like setState, there is an animated version of setHighlighted available.
941
942         * platform/mac/ThemeMac.mm:
943         (WebCore::updateStates): Use private version of _setHighlighted where possible.
944
945 2014-04-28  Commit Queue  <commit-queue@webkit.org>
946
947         Unreviewed, rolling out r167855.
948         https://bugs.webkit.org/show_bug.cgi?id=132301
949
950         Broke the windows build (Requested by bfulgham on #webkit).
951
952         Reverted changeset:
953
954         "ScriptExecutionContext::Task should work well with C++11
955         lambdas"
956         https://bugs.webkit.org/show_bug.cgi?id=129795
957         http://trac.webkit.org/changeset/167855
958
959 2014-04-24  Andy Estes  <aestes@apple.com>
960
961         [iOS] Implement WebQuickLookHandleClient for WebKit2
962         https://bugs.webkit.org/show_bug.cgi?id=132157
963
964         Reviewed by Darin Adler.
965
966         * WebCore.exp.in: Exported QuickLookHandle::previewUTI().
967         * platform/network/ios/QuickLook.h:
968         * platform/network/ios/QuickLook.mm:
969         (WebCore::QuickLookHandle::previewFileName): Changed to return a WTF::String.
970         (WebCore::QuickLookHandle::previewUTI): Added.
971
972 2014-04-28  Chris Fleizach  <cfleizach@apple.com>
973
974         REGRESSION: Intermittent crash in SpeechSynthesis::didFinishSpeaking
975         https://bugs.webkit.org/show_bug.cgi?id=111613
976
977         Reviewed by Mark Lam.
978
979         I think it's possible that didFinishSpeaking ends up calling directly back into start speaking, and the utterance reference
980         we were holding can get cleared, so protecting this should avoid a few asserts.
981
982         * platform/mock/PlatformSpeechSynthesizerMock.cpp:
983         (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
984
985 2014-04-28  Commit Queue  <commit-queue@webkit.org>
986
987         Unreviewed, rolling out r167871.
988         https://bugs.webkit.org/show_bug.cgi?id=132290
989
990         broke a newmulticol test (spanner-nested-dynamic) (Requested
991         by thorton on #webkit).
992
993         Reverted changeset:
994
995         "Store the containing region map inside the flow thread"
996         https://bugs.webkit.org/show_bug.cgi?id=131647
997         http://trac.webkit.org/changeset/167871
998
999 2014-04-28  Commit Queue  <commit-queue@webkit.org>
1000
1001         Unreviewed, rolling out r167853.
1002         https://bugs.webkit.org/show_bug.cgi?id=132288
1003
1004         caused crashes+timeouts+layout test failures described in the
1005         bug (Requested by thorton on #webkit).
1006
1007         Reverted changeset:
1008
1009         "Coalesce responses on network process side"
1010         https://bugs.webkit.org/show_bug.cgi?id=132229
1011         http://trac.webkit.org/changeset/167853
1012
1013 2014-04-24  Simon Fraser  <simon.fraser@apple.com>
1014
1015         [iOS WK2] flickery scrolling with overflow-scrolling:touch
1016         https://bugs.webkit.org/show_bug.cgi?id=132150
1017
1018         Reviewed by Tim Horton.
1019
1020         Fix typo in a comment.
1021
1022         * page/scrolling/AsyncScrollingCoordinator.cpp:
1023         (WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):
1024
1025 2014-04-28  Martin Robinson  <mrobinson@igalia.com>
1026
1027         [GTK] Builtin cursors do not properly handle transparency
1028         https://bugs.webkit.org/show_bug.cgi?id=131866
1029
1030         Reviewed by Gustavo Noronha Silva.
1031
1032         Tested by ManualTests/cursor.html.
1033
1034         * platform/gtk/CursorGtk.cpp:
1035         (WebCore::createNamedCursor): Instead of interpreting the source bitmap as an A1 image, use
1036         it as a 1-bit black and white image. We do this by:
1037             1. Painting the result to a full color image with transparency instead of an alpha-only surface.
1038             2. Masking a white background using the cursor alpha surface.
1039             3. Painting the black parts of the cursor by painting the source surface, where black pixels
1040             will be interpreted as full opaque pixels.
1041
1042 2014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1043
1044         Unreviewed. Update GObject DOM bindings symbols file.
1045
1046         * bindings/gobject/webkitdom.symbols: Add missing symbols.
1047
1048 2014-04-28  Manuel Rego Casasnovas  <rego@igalia.com>
1049
1050         OrderIterator refactoring to avoid extra loops
1051         https://bugs.webkit.org/show_bug.cgi?id=119061
1052
1053         Reviewed by Darin Adler.
1054
1055         This patch removes order values Vector and use a Vector of pairs instead. The pairs are formed by a child
1056         (RenderBox) and the index of this child. In addition, OrderIterator code is simplified.
1057
1058         It provides a helper class OrderIteratorPopulator, used for manipulating the Vector directly. Which allows to
1059         consolidate the code into a single implementation across flexbox and grid. OrderIteratorPopulator part is based
1060         on a patch from Blink r153971 by <jchaffraix@chromium.org>.
1061
1062         Current implementation is O(number of children * number of order values). Now it will just do a sort operation
1063         and then a regular loop. So if you have different order values in a flexbox or grid the performance will
1064         improve.
1065
1066         Comparing results of perf-tests:
1067         * Layout/auto-grid-lots-of-data: ~0.5% worse.
1068         * Layout/fixed-grid-lots-of-data: ~0.5% worse.
1069         * Layout/fixed-grid-lots-of-data (setting 100 different order values): ~50% better.
1070         * Layout/flexbox-lots-of-data: ~5% better.
1071
1072         No new tests, already covered by current tests.
1073
1074         * rendering/OrderIterator.cpp:
1075         (WebCore::OrderIterator::currentChild): Return current child according to m_childrenIndex.
1076         (WebCore::OrderIterator::first): Initialize m_childrenIndex and return current child.
1077         (WebCore::OrderIterator::next): Increase m_childrenIndex and return current child.
1078         (WebCore::compareByOrderValueAndIndex): Sorts the Vector by order value and index.
1079         (WebCore::OrderIteratorPopulator::~OrderIteratorPopulator): Calls compareByOrderValueAndIndex() if there is any
1080         child with non default order value.
1081         (WebCore::OrderIteratorPopulator::collectChild): Adds the child and index to the Vector. Update
1082         m_allChildrenHaveDefaultOrderValue accordingly.
1083         (WebCore::OrderIterator::OrderIterator): Deleted.
1084         (WebCore::OrderIterator::setOrderValues): Deleted.
1085         (WebCore::OrderIterator::reset): Deleted.
1086         * rendering/OrderIterator.h:
1087         (WebCore::OrderIteratorPopulator::OrderIteratorPopulator): New helper class to manipulate the Vector.
1088         (WebCore::OrderIterator::currentChild): Deleted.
1089         * rendering/RenderFlexibleBox.cpp:
1090         (WebCore::RenderFlexibleBox::RenderFlexibleBox): Remove OrderIterator intialization.
1091         (WebCore::RenderFlexibleBox::layoutBlock): Remove unneeded code related to old OrderValues vector.
1092         (WebCore::RenderFlexibleBox::prepareOrderIteratorAndMargins): Populate OrderIterator using collectChild().
1093         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): Deleted.
1094         * rendering/RenderFlexibleBox.h: Rename computeMainAxisPreferredSizes() to prepareOrderIteratorAndMargins().
1095         * rendering/RenderGrid.cpp:
1096         (WebCore::RenderGrid::RenderGrid): Remove OrderIterator initialization.
1097         (WebCore::RenderGrid::populateExplicitGridAndOrderIterator): Populate OrderIterator using collectChild().
1098
1099 2014-04-28  Zan Dobersek  <zdobersek@igalia.com>
1100
1101         std::bitset<>::test() does unnecessary bounds checks on CSSPropertyID bitsets
1102         https://bugs.webkit.org/show_bug.cgi?id=131685
1103
1104         Reviewed by Darin Adler.
1105
1106         Use std::bitset<>::operator[]() instead of std::bitset<>::test() to avoid
1107         bounds checks which are not necessary as long as a CSSPropertyID value is used.
1108
1109         * css/CSSParser.cpp:
1110         (WebCore::filterProperties):
1111         * css/StyleProperties.cpp:
1112         (WebCore::StyleProperties::asText):
1113         * css/StyleResolver.cpp:
1114         (WebCore::StyleResolver::CascadedProperties::hasProperty):
1115         (WebCore::StyleResolver::CascadedProperties::set):
1116
1117 2014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1118
1119         [GTK] TextTrack kind and mode attributes are enums since r166180
1120         https://bugs.webkit.org/show_bug.cgi?id=132228
1121
1122         Reviewed by Martin Robinson.
1123
1124         Improve coding style according to review comments, that I forgot
1125         to do before landing previous commit.
1126
1127         * bindings/gobject/WebKitDOMCustom.cpp:
1128         (webkit_dom_text_track_get_kind):
1129         (webkit_dom_text_track_get_mode):
1130         (webkit_dom_text_track_set_mode):
1131
1132 2014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1133
1134         [GTK] TextTrack kind and mode attributes are enums since r166180
1135         https://bugs.webkit.org/show_bug.cgi?id=132228
1136
1137         Reviewed by Martin Robinson.
1138
1139         We don't support enum values yet in GObject DOM bindings, but they
1140         are internally strings anyway, so we can keep the old
1141         implementations using strings as custom functions until we
1142         properly support enums.
1143
1144         * bindings/gobject/WebKitDOMCustom.cpp:
1145         (webkit_dom_text_track_get_kind):
1146         (webkit_dom_text_track_get_mode):
1147         (webkit_dom_text_track_set_mode):
1148         * bindings/gobject/WebKitDOMCustom.h:
1149         * bindings/gobject/WebKitDOMCustom.symbols:
1150
1151 2014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1152
1153         [GTK] TextTrack::addCue can raise an exception since r163974
1154         https://bugs.webkit.org/show_bug.cgi?id=132227
1155
1156         Reviewed by Martin Robinson.
1157
1158         webkit_dom_text_track_add_cue() now receives a GError paramater
1159         which is an API break. Add
1160         webkit_dom_text_track_add_cue_with_error and keep
1161         webkit_dom_text_track_add_cue as deprecated to keep API
1162         compatibility.
1163
1164         * bindings/gobject/WebKitDOMDeprecated.cpp:
1165         (webkit_dom_text_track_add_cue):
1166         * bindings/gobject/WebKitDOMDeprecated.h:
1167         * bindings/gobject/WebKitDOMDeprecated.symbols:
1168         * bindings/gobject/webkitdom.symbols:
1169         * bindings/scripts/CodeGeneratorGObject.pm:
1170         (GetEffectiveFunctionName):
1171
1172 2014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1173
1174         [GTK] TextTrackCue API changed in r163649
1175         https://bugs.webkit.org/show_bug.cgi?id=132226
1176
1177         Reviewed by Martin Robinson.
1178
1179         TextTrackCue is now a base class and part of its API was moved to
1180         the derived class VTTCue. Update the GObject DOM bindings to keep
1181         backwards compatibility.
1182
1183         * PlatformGTK.cmake: Generate bindings for DataCue and VTTCue.
1184         * bindings/gobject/WebKitDOMDeprecated.cpp:
1185         (webkit_dom_text_track_cue_get_cue_as_html): Mark as deprecated in
1186         favor of VTTCue API.
1187         (webkit_dom_text_track_cue_get_vertical): Ditto.
1188         (webkit_dom_text_track_cue_set_vertical): Ditto.
1189         (webkit_dom_text_track_cue_get_snap_to_lines): Ditto.
1190         (webkit_dom_text_track_cue_set_snap_to_lines): Ditto.
1191         (webkit_dom_text_track_cue_get_line): Ditto.
1192         (webkit_dom_text_track_cue_set_line): Ditto.
1193         (webkit_dom_text_track_cue_get_position): Ditto.
1194         (webkit_dom_text_track_cue_set_position): Ditto.
1195         (webkit_dom_text_track_cue_get_size): Ditto.
1196         (webkit_dom_text_track_cue_set_size): Ditto.
1197         (webkit_dom_text_track_cue_get_align): Ditto.
1198         (webkit_dom_text_track_cue_set_align): Ditto.
1199         (webkit_dom_text_track_cue_get_text): Ditto.
1200         (webkit_dom_text_track_cue_set_text): Ditto.
1201         * bindings/gobject/WebKitDOMDeprecated.h:
1202         * bindings/gobject/WebKitDOMDeprecated.symbols: Add new deprecated symbols.
1203         * bindings/gobject/WebKitDOMPrivate.cpp:
1204         (WebKit::wrap): Add generic wrap for TextTrackCue now that it's a
1205         base class to generate DataCue or VTTCue objects.
1206         * bindings/gobject/WebKitDOMPrivate.h:
1207         * bindings/gobject/webkitdom.symbols: Add DataCue symbols.
1208         * bindings/scripts/CodeGeneratorGObject.pm:
1209         (IsPolymorphic): Add TextTrackCue to the list of polymorphic classes.
1210
1211 2014-04-27  Andrei Bucur  <abucur@adobe.com>
1212
1213         Store the containing region map inside the flow thread
1214         https://bugs.webkit.org/show_bug.cgi?id=131647
1215
1216         Reviewed by Mihnea Ovidenie.
1217
1218         The patch moves the containing region map inside the flow thread where
1219         it can be better handled in case the region chain changes and the map
1220         needs to be cleared.
1221
1222         As a result of this move we are able to also cleanup the lines region
1223         information of a block flow when it is removed from the tree.
1224
1225         Test: fast/regions/inline-strike-through.html
1226
1227         * rendering/InlineFlowBox.h:
1228         (WebCore::InlineFlowBox::InlineFlowBox):
1229         * rendering/RenderBlockLineLayout.cpp:
1230         (WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
1231         * rendering/RenderFlowThread.cpp:
1232         (WebCore::RenderFlowThread::removeFlowChildInfo):
1233         (WebCore::RenderFlowThread::invalidateRegions):
1234         (WebCore::RenderFlowThread::removeLineRegionInfo):
1235         (WebCore::RenderFlowThread::checkLinesConsistency):
1236         (WebCore::RenderFlowThread::containingRegionMap):
1237         * rendering/RenderFlowThread.h:
1238         * rendering/RootInlineBox.cpp:
1239         (WebCore::containingRegionMap):
1240         (WebCore::RootInlineBox::~RootInlineBox):
1241         (WebCore::RootInlineBox::paint):
1242         (WebCore::RootInlineBox::containingRegion):
1243         (WebCore::RootInlineBox::clearContainingRegion):
1244         (WebCore::RootInlineBox::setContainingRegion):
1245
1246 2014-04-27  Darin Adler  <darin@apple.com>
1247
1248         REGRESSION (r159345): The hover state for links in the top navigation of Yahoo.com doesn't work
1249         https://bugs.webkit.org/show_bug.cgi?id=132241
1250         rdar://problem/16501924
1251
1252         Reviewed by Andreas Kling.
1253
1254         Test: fast/text/simple-lines-hover-underline.html
1255
1256         Checked that this does not hurt performance by running the
1257         run-perf-tests PerformanceTests/Layout/line-layout.html command before and after.
1258
1259         * rendering/RenderBlockFlow.cpp:
1260         (WebCore::RenderBlockFlow::hitTestInlineChildren): Use simpleLineLayout function rather than
1261         getting at the data member directly.
1262         (WebCore::RenderBlockFlow::firstLineBaseline): Ditto.
1263         (WebCore::RenderBlockFlow::inlineBlockBaseline): Ditto.
1264         (WebCore::RenderBlockFlow::lineCount): Ditto.
1265         (WebCore::RenderBlockFlow::paintInlineChildren): Ditto.
1266         (WebCore::RenderBlockFlow::hasLines): Ditto.
1267         (WebCore::RenderBlockFlow::simpleLineLayout): Added logic to determine which path to use if
1268         m_lineLayoutPath is undetermined, and call createLineBoxes if it's not simple.
1269         (WebCore::RenderBlockFlow::ensureLineBoxes): Factored out most of the code into a new
1270         createLineBoxes function.
1271         (WebCore::RenderBlockFlow::createLineBoxes): Ditto.
1272
1273         * rendering/RenderBlockFlow.h: Made simpleLineLayout function no longer an inline.
1274         Added a private createLineBoxes function.
1275
1276 2014-04-27  Praveen R Jadhav  <praveen.j@samsung.com>
1277
1278         [MediaStream] .ended shouldn't be part of MediaStream IDL
1279         https://bugs.webkit.org/show_bug.cgi?id=132104
1280
1281         Reviewed by Eric Carlson.
1282
1283         .ended attribute is spec'ed out of MediaStream IDL. Instead, .active
1284         is introduced to handle more scenarios. This patch replaces all 'ended'
1285         attribute calls with corresponding 'active' attributes. 
1286
1287         MediaStream-add-remove-tracks.html is updated.
1288
1289         * Modules/mediastream/MediaStream.cpp:
1290         (WebCore::MediaStream::addTrack): Replaced ended() with active().
1291         (WebCore::MediaStream::removeTrack): setEnded() isn't called. setActive()
1292         is retained which propagates oninactive event.
1293         (WebCore::MediaStream::trackDidEnd): setEnded() isn't called.
1294         (WebCore::MediaStream::removeRemoteSource): Replaced ended() with active().
1295         (WebCore::MediaStream::addRemoteTrack): Replaced ended() with active().
1296         (WebCore::MediaStream::removeRemoteTrack): Replaced ended() with active().
1297         (WebCore::MediaStream::ended): Deleted.
1298         (WebCore::MediaStream::setEnded): Deleted.
1299         (WebCore::MediaStream::streamDidEnd): Deleted.
1300         * Modules/mediastream/MediaStream.h:
1301         * Modules/mediastream/MediaStream.idl:
1302         * Modules/mediastream/RTCPeerConnection.cpp:
1303         (WebCore::RTCPeerConnection::didRemoveRemoteStream): Replaced setEnded()
1304         with setActive().
1305         * platform/mediastream/MediaStreamPrivate.cpp:
1306         (WebCore::MediaStreamPrivate::MediaStreamPrivate):
1307         (WebCore::MediaStreamPrivate::setActive): Updated comment from bug 
1308         https://bugs.webkit.org/show_bug.cgi?id=131973
1309         (WebCore::MediaStreamPrivate::setEnded): Deleted.
1310         * platform/mediastream/MediaStreamPrivate.h:
1311         (WebCore::MediaStreamPrivate::ended): Deleted.
1312
1313 2014-04-25  Andy Estes  <aestes@apple.com>
1314
1315         [iOS] Stop creating a WKWebResourceQuickLookDelegate for every WebResourceLoader
1316         https://bugs.webkit.org/show_bug.cgi?id=132215
1317
1318         Reviewed by Dan Bernstein.
1319
1320         * WebCore.exp.in: Moved QuickLook symbols to the USE(QUICK_LOOK) stanza.
1321         * platform/network/ios/QuickLook.h: Changed one of the create() overloads to no longer take a delegate argument.
1322         * platform/network/ios/QuickLook.mm: Moved WKWebResourceQuickLookDelegate to here and renamed to WebResourceLoaderQuickLookDelegate.
1323         (WebCore::QuickLookHandle::create): Created a WebResourceLoaderQuickLookDelegate only if QuickLook can handle the response.
1324
1325 2014-04-27  Sam Weinig  <sam@webkit.org>
1326
1327         [iOS WebKit2] Add support for text autosizing
1328         <rdar://problem/16545245>
1329         https://bugs.webkit.org/show_bug.cgi?id=132237
1330
1331         Reviewed by Tim Horton.
1332
1333         Move text autosizing width from Frame to Page, as it is a Page level concept.
1334
1335         * WebCore.exp.in:
1336         * page/Frame.cpp:
1337         (WebCore::Frame::textAutosizingWidth): Deleted.
1338         (WebCore::Frame::setTextAutosizingWidth): Deleted.
1339         * page/Frame.h:
1340         * page/FrameView.cpp:
1341         (WebCore::FrameView::layout):
1342         * page/Page.cpp:
1343         (WebCore::Page::Page):
1344         * page/Page.h:
1345         (WebCore::Page::textAutosizingWidth):
1346         (WebCore::Page::setTextAutosizingWidth):
1347
1348 2014-04-27  Zan Dobersek  <zdobersek@igalia.com>
1349
1350         Unreviewed. Updating one bindings test baseline after r167855.
1351
1352         * bindings/scripts/test/JS/JSTestCallback.cpp:
1353         (WebCore::JSTestCallback::~JSTestCallback):
1354
1355 2014-04-27  Darin Adler  <darin@apple.com>
1356
1357         Webpages can trigger loads with invalid URLs
1358         https://bugs.webkit.org/show_bug.cgi?id=132224
1359         rdar://problem/16697142
1360
1361         Reviewed by Alexey Proskuryakov.
1362
1363         Invalid URLs can be a way to trick the user about what website they
1364         are looking at.  Still trying to figure out a good way to regression-test this.
1365
1366         * dom/Document.cpp:
1367         (WebCore::Document::processHttpEquiv): Pass a URL rather than a String to
1368         the navigation scheduler.
1369         * loader/FrameLoader.cpp:
1370         (WebCore::FrameLoader::receivedFirstData): Ditto.
1371
1372         * loader/NavigationScheduler.cpp:
1373         (WebCore::ScheduledURLNavigation::ScheduledURLNavigation): Take a URL rather
1374         than a string.
1375         (WebCore::ScheduledURLNavigation::url): Ditto.
1376         (WebCore::ScheduledRedirect::ScheduledRedirect): Ditto.
1377         (WebCore::ScheduledLocationChange::ScheduledLocationChange): Ditto.
1378         (WebCore::ScheduledRefresh::ScheduledRefresh): Ditto.
1379         (WebCore::NavigationScheduler::shouldScheduleNavigation): Added a check that
1380         prevents navigation to any URL that is invalid, except for JavaScript URLs,
1381         which need not be valid.
1382         (WebCore::NavigationScheduler::scheduleRedirect): Use URL instead of String.
1383         (WebCore::NavigationScheduler::scheduleLocationChange): Use URL instead of
1384         String. Also got rid of empty string check since empty URLs are also invalid,
1385         and so shouldScheduleNavigation will take care of it.
1386         (WebCore::NavigationScheduler::scheduleRefresh): Use URL instead of String.
1387
1388         * loader/NavigationScheduler.h: Take URL instead of String. Also removed some
1389         unneeded incldues and uses of WTF_MAKE_NONCOPYABLE. NavigationScheduler is
1390         already noncopyable because it has a reference for a data member, and the
1391         disabler doesn't have any real reason to be noncopyable.
1392
1393         * loader/SubframeLoader.cpp:
1394         (WebCore::SubframeLoader::loadOrRedirectSubframe): Pass a URL rather than a
1395         String to the NavigationScheduler.
1396         * page/DOMWindow.cpp:
1397         (WebCore::DOMWindow::createWindow): Ditto.
1398
1399         * page/SecurityOrigin.cpp:
1400         (WebCore::SecurityOrigin::urlWithUniqueSecurityOrigin): Return a URL instead
1401         of a String.
1402         * page/SecurityOrigin.h: Updated for above change.
1403
1404 2014-04-27  Zan Dobersek  <zdobersek@igalia.com>
1405
1406         ScriptExecutionContext::Task should work well with C++11 lambdas
1407         https://bugs.webkit.org/show_bug.cgi?id=129795
1408
1409         Reviewed by Darin Adler.
1410
1411         Instead of having classes that subclass ScriptExecutionContext::Task and override
1412         the performTask(ScriptExecutionContext*) method, have the ScriptExecutionContext::Task
1413         take in a std::function<void (ScriptExecutionContext*)>-like object trough the constructor
1414         which would contain the code currently kept in the performTask() methods.
1415
1416         This enables inlining C++11 lambdas into ScriptExecutionContext::postTask() calls. For
1417         cleanup tasks, the Task object can be implicitly constructed by using the initializer list
1418         constructor with the first argument being the ScriptExecutionContext::Task::CleanupTask tag.
1419         The ScriptExecutionContext class remains non-copyable and now stores the passed-in invokable
1420         object in the std::function wrapper, along with a boolean member that indicates whether the
1421         task is of cleanup nature.
1422
1423         * Modules/quota/StorageErrorCallback.cpp:
1424         (WebCore::StorageErrorCallback::CallbackTask::CallbackTask):
1425         (WebCore::StorageErrorCallback::CallbackTask::performTask): Deleted.
1426         * Modules/quota/StorageErrorCallback.h:
1427         (WebCore::StorageErrorCallback::CallbackTask::create): Deleted.
1428         * Modules/webdatabase/Database.cpp:
1429         (WebCore::Database::~Database):
1430         (WebCore::Database::runTransaction):
1431         (WebCore::Database::scheduleTransactionCallback):
1432         (WebCore::DerefContextTask::create): Deleted.
1433         (WebCore::DerefContextTask::performTask): Deleted.
1434         (WebCore::DerefContextTask::isCleanupTask): Deleted.
1435         (WebCore::DerefContextTask::DerefContextTask): Deleted.
1436         (WebCore::callTransactionErrorCallback): Deleted.
1437         (WebCore::DeliverPendingCallbackTask::create): Deleted.
1438         (WebCore::DeliverPendingCallbackTask::performTask): Deleted.
1439         (WebCore::DeliverPendingCallbackTask::DeliverPendingCallbackTask): Deleted.
1440         * Modules/webdatabase/DatabaseManager.cpp:
1441         (WebCore::DatabaseManager::openDatabase):
1442         (WebCore::DatabaseCreationCallbackTask::create): Deleted.
1443         (WebCore::DatabaseCreationCallbackTask::performTask): Deleted.
1444         (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask): Deleted.
1445         * Modules/webdatabase/DatabaseSync.cpp:
1446         (WebCore::CloseSyncDatabaseOnContextThreadTask::create): Deleted.
1447         (WebCore::CloseSyncDatabaseOnContextThreadTask::performTask): Deleted.
1448         (WebCore::CloseSyncDatabaseOnContextThreadTask::CloseSyncDatabaseOnContextThreadTask): Deleted.
1449         * Modules/webdatabase/SQLCallbackWrapper.h:
1450         (WebCore::SQLCallbackWrapper::clear):
1451         (WebCore::SQLCallbackWrapper::SafeReleaseTask::create): Deleted.
1452         (WebCore::SQLCallbackWrapper::SafeReleaseTask::performTask): Deleted.
1453         (WebCore::SQLCallbackWrapper::SafeReleaseTask::isCleanupTask): Deleted.
1454         (WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask): Deleted.
1455         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
1456         (WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
1457         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
1458         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
1459         (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
1460         (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
1461         (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
1462         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
1463         (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
1464         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
1465         * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
1466         (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
1467         (WebCore::WorkerThreadableWebSocketChannel::mainThreadDestroy):
1468         (WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
1469         (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::create): Deleted.
1470         (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::~WorkerGlobalScopeDidInitializeTask): Deleted.
1471         (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::WorkerGlobalScopeDidInitializeTask): Deleted.
1472         * Modules/websockets/WorkerThreadableWebSocketChannel.h:
1473         * bindings/js/JSCallbackData.h:
1474         (WebCore::DeleteCallbackDataTask::DeleteCallbackDataTask):
1475         (WebCore::DeleteCallbackDataTask::create): Deleted.
1476         (WebCore::DeleteCallbackDataTask::performTask): Deleted.
1477         (WebCore::DeleteCallbackDataTask::isCleanupTask): Deleted.
1478         * bindings/js/JSDOMGlobalObjectTask.cpp:
1479         (WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
1480         (WebCore::JSGlobalObjectTask::~JSGlobalObjectTask): Deleted.
1481         (WebCore::JSGlobalObjectTask::performTask): Deleted.
1482         * bindings/js/JSDOMGlobalObjectTask.h:
1483         * bindings/js/JSDOMWindowBase.cpp:
1484         (WebCore::JSDOMWindowBase::queueTaskToEventLoop):
1485         * bindings/js/JSWorkerGlobalScopeBase.cpp:
1486         (WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):
1487         * bindings/scripts/CodeGeneratorJS.pm:
1488         (GenerateCallbackImplementation):
1489         * dom/CrossThreadTask.h:
1490         (WebCore::CrossThreadTask1::performTask):
1491         (WebCore::CrossThreadTask2::performTask):
1492         (WebCore::CrossThreadTask3::performTask):
1493         (WebCore::CrossThreadTask4::performTask):
1494         (WebCore::CrossThreadTask5::performTask):
1495         (WebCore::CrossThreadTask6::performTask):
1496         (WebCore::CrossThreadTask7::performTask):
1497         (WebCore::CrossThreadTask8::performTask):
1498         (WebCore::createCallbackTask):
1499         (WebCore::CrossThreadTask1::create): Deleted.
1500         (WebCore::CrossThreadTask2::create): Deleted.
1501         (WebCore::CrossThreadTask3::create): Deleted.
1502         (WebCore::CrossThreadTask4::create): Deleted.
1503         (WebCore::CrossThreadTask5::create): Deleted.
1504         (WebCore::CrossThreadTask6::create): Deleted.
1505         (WebCore::CrossThreadTask7::create): Deleted.
1506         (WebCore::CrossThreadTask8::create): Deleted.
1507         * dom/Document.cpp:
1508         (WebCore::Document::addConsoleMessage):
1509         (WebCore::Document::addMessage):
1510         (WebCore::Document::postTask):
1511         (WebCore::Document::pendingTasksTimerFired):
1512         (WebCore::PerformTaskContext::PerformTaskContext): Deleted.
1513         (WebCore::Document::didReceiveTask): Deleted.
1514         * dom/Document.h:
1515         * dom/ScriptExecutionContext.cpp:
1516         (WebCore::ScriptExecutionContext::processMessagePortMessagesSoon):
1517         (WebCore::ScriptExecutionContext::timerAlignmentInterval):
1518         (WebCore::ProcessMessagesSoonTask::create): Deleted.
1519         (WebCore::ScriptExecutionContext::AddConsoleMessageTask::performTask): Deleted.
1520         (WebCore::ScriptExecutionContext::Task::~Task): Deleted.
1521         * dom/ScriptExecutionContext.h:
1522         (WebCore::ScriptExecutionContext::Task::Task):
1523         (WebCore::ScriptExecutionContext::Task::performTask):
1524         (WebCore::ScriptExecutionContext::Task::isCleanupTask):
1525         (WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
1526         (WebCore::ScriptExecutionContext::AddConsoleMessageTask::create): Deleted.
1527         * dom/StringCallback.cpp:
1528         (WebCore::StringCallback::scheduleCallback):
1529         * loader/appcache/ApplicationCacheGroup.cpp:
1530         (WebCore::ApplicationCacheGroup::postListenerTask):
1531         (WebCore::CallCacheListenerTask::create): Deleted.
1532         (WebCore::CallCacheListenerTask::CallCacheListenerTask): Deleted.
1533         * workers/DefaultSharedWorkerRepository.cpp:
1534         (WebCore::SharedWorkerProxy::postTaskToLoader):
1535         (WebCore::SharedWorkerProxy::postTaskForModeToWorkerGlobalScope):
1536         (WebCore::SharedWorkerConnectTask::SharedWorkerConnectTask):
1537         (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
1538         (WebCore::DefaultSharedWorkerRepository::connectToWorker):
1539         (WebCore::SharedWorkerConnectTask::create): Deleted.
1540         (WebCore::SharedWorkerConnectTask::performTask): Deleted.
1541         * workers/WorkerEventQueue.cpp:
1542         (WebCore::WorkerEventQueue::EventDispatcher::EventDispatcher):
1543         (WebCore::WorkerEventQueue::EventDispatcher::~EventDispatcher):
1544         (WebCore::WorkerEventQueue::EventDispatcher::dispatch):
1545         (WebCore::WorkerEventQueue::enqueueEvent):
1546         (WebCore::WorkerEventQueue::cancelEvent):
1547         (WebCore::WorkerEventQueue::close):
1548         * workers/WorkerEventQueue.h:
1549         * workers/WorkerGlobalScope.cpp:
1550         (WebCore::WorkerGlobalScope::close):
1551         (WebCore::WorkerGlobalScope::postTask):
1552         (WebCore::WorkerGlobalScope::addConsoleMessage):
1553         (WebCore::WorkerGlobalScope::addMessage):
1554         (WebCore::CloseWorkerGlobalScopeTask::create): Deleted.
1555         (WebCore::CloseWorkerGlobalScopeTask::performTask): Deleted.
1556         (WebCore::CloseWorkerGlobalScopeTask::isCleanupTask): Deleted.
1557         * workers/WorkerGlobalScope.h:
1558         * workers/WorkerLoaderProxy.h:
1559         * workers/WorkerMessagingProxy.cpp:
1560         (WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
1561         (WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
1562         (WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope):
1563         (WebCore::WorkerMessagingProxy::postTaskToLoader):
1564         (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
1565         (WebCore::WorkerMessagingProxy::workerThreadCreated):
1566         (WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
1567         (WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyed):
1568         (WebCore::WorkerMessagingProxy::workerGlobalScopeClosed):
1569         (WebCore::WorkerMessagingProxy::postMessageToPageInspector):
1570         (WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject):
1571         (WebCore::WorkerMessagingProxy::reportPendingActivity):
1572         (WebCore::MessageWorkerGlobalScopeTask::create): Deleted.
1573         (WebCore::MessageWorkerGlobalScopeTask::MessageWorkerGlobalScopeTask): Deleted.
1574         (WebCore::MessageWorkerGlobalScopeTask::performTask): Deleted.
1575         (WebCore::MessageWorkerTask::create): Deleted.
1576         (WebCore::MessageWorkerTask::MessageWorkerTask): Deleted.
1577         (WebCore::MessageWorkerTask::performTask): Deleted.
1578         (WebCore::WorkerExceptionTask::create): Deleted.
1579         (WebCore::WorkerExceptionTask::WorkerExceptionTask): Deleted.
1580         (WebCore::WorkerExceptionTask::performTask): Deleted.
1581         (WebCore::WorkerGlobalScopeDestroyedTask::create): Deleted.
1582         (WebCore::WorkerGlobalScopeDestroyedTask::WorkerGlobalScopeDestroyedTask): Deleted.
1583         (WebCore::WorkerGlobalScopeDestroyedTask::performTask): Deleted.
1584         (WebCore::WorkerTerminateTask::create): Deleted.
1585         (WebCore::WorkerTerminateTask::WorkerTerminateTask): Deleted.
1586         (WebCore::WorkerTerminateTask::performTask): Deleted.
1587         (WebCore::WorkerThreadActivityReportTask::create): Deleted.
1588         (WebCore::WorkerThreadActivityReportTask::WorkerThreadActivityReportTask): Deleted.
1589         (WebCore::WorkerThreadActivityReportTask::performTask): Deleted.
1590         (WebCore::PostMessageToPageInspectorTask::create): Deleted.
1591         (WebCore::PostMessageToPageInspectorTask::PostMessageToPageInspectorTask): Deleted.
1592         (WebCore::PostMessageToPageInspectorTask::performTask): Deleted.
1593         (WebCore::NotifyNetworkStateChangeTask::create): Deleted.
1594         (WebCore::NotifyNetworkStateChangeTask::NotifyNetworkStateChangeTask): Deleted.
1595         (WebCore::NotifyNetworkStateChangeTask::performTask): Deleted.
1596         * workers/WorkerMessagingProxy.h:
1597         * workers/WorkerRunLoop.cpp:
1598         (WebCore::WorkerRunLoop::postTask):
1599         (WebCore::WorkerRunLoop::postTaskAndTerminate):
1600         (WebCore::WorkerRunLoop::postTaskForMode):
1601         (WebCore::WorkerRunLoop::Task::create):
1602         (WebCore::WorkerRunLoop::Task::performTask):
1603         (WebCore::WorkerRunLoop::Task::Task):
1604         * workers/WorkerRunLoop.h:
1605         * workers/WorkerThread.cpp:
1606         (WebCore::WorkerThread::stop):
1607         (WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):
1608         (WebCore::WorkerThreadShutdownFinishTask::create): Deleted.
1609         (WebCore::WorkerThreadShutdownFinishTask::performTask): Deleted.
1610         (WebCore::WorkerThreadShutdownFinishTask::isCleanupTask): Deleted.
1611         (WebCore::WorkerThreadShutdownStartTask::create): Deleted.
1612         (WebCore::WorkerThreadShutdownStartTask::performTask): Deleted.
1613         (WebCore::WorkerThreadShutdownStartTask::isCleanupTask): Deleted.
1614
1615 2014-04-27  Antti Koivisto  <antti@apple.com>
1616
1617         Coalesce responses on network process side
1618         https://bugs.webkit.org/show_bug.cgi?id=132229
1619
1620         Reviewed by Andreas Kling.
1621
1622         * WebCore.exp.in:
1623
1624 2014-04-27  David Kilzer  <ddkilzer@apple.com>
1625
1626         Roll out changes not part of the patch reviewed for Bug 132089
1627         <http://webkit.org/b/132089>
1628
1629         * loader/SubframeLoader.cpp:
1630         (WebCore::SubframeLoader::loadOrRedirectSubframe):
1631         * page/DOMWindow.cpp:
1632         (WebCore::DOMWindow::setLocation):
1633         (WebCore::DOMWindow::createWindow):
1634         (WebCore::DOMWindow::open):
1635
1636 2014-04-26  Darin Adler  <darin@apple.com>
1637
1638         Frame and page lifetime fixes in WebCore::createWindow
1639         https://bugs.webkit.org/show_bug.cgi?id=132089
1640
1641         Reviewed by Sam Weinig.
1642
1643         Speculative fix because I was unable to reproduce the crash that was
1644         reported with the test case attached to this bug.
1645
1646         * loader/FrameLoader.cpp:
1647         (WebCore::createWindow): Changed code to remove the assumption that calls
1648         out will not destroy the page or frame. Use RefPtr for the frame, and
1649         added early exits if frame->page() becomes null at any point before we
1650         use a page pointer.
1651
1652 2014-04-26  Alexey Proskuryakov  <ap@apple.com>
1653
1654         Local files should not be allowed to read pasteboard data during drag
1655         https://bugs.webkit.org/show_bug.cgi?id=131767
1656
1657         Reviewed by Sam Weinig.
1658
1659         Test: fast/files/local-file-drag-security.html
1660
1661         * page/DragController.cpp:
1662         (WebCore::DragController::dragExited):
1663         (WebCore::DragController::tryDHTMLDrag):
1664         Make an old Dashboard quirk really Dashboard only.
1665
1666 2014-04-24  Darin Adler  <darin@apple.com>
1667
1668         REGRESSION (r164133): Selection doesn't paint when scrolling some pages
1669         https://bugs.webkit.org/show_bug.cgi?id=132172
1670         rdar://problem/16719473
1671
1672         Reviewed by Brent Fulgham.
1673
1674         Tests: fast/dynamic/remove-invisible-node-inside-selection.html
1675                fast/dynamic/remove-node-inside-selection.html
1676
1677         * editing/FrameSelection.cpp:
1678         (WebCore::clearRenderViewSelection): Changed to take a Node& because having
1679         this take a Position& was unnecessary and strange, when really it just needs
1680         to take a document as an argument.
1681         (WebCore::DragCaretController::nodeWillBeRemoved): Updated for the above.
1682         (WebCore::FrameSelection::respondToNodeModification): Added code to set the
1683         m_pendingSelectionUpdate flag and call RenderView::setNeedsLayout so the
1684         selection will be recomputed after it's temporarily cleared when one of
1685         the selected nodes is removed.
1686
1687 2014-04-25  Ryosuke Niwa  <rniwa@webkit.org>
1688
1689         REGRESSION (r167689): Hovering file name in a file input causes a crash
1690         https://bugs.webkit.org/show_bug.cgi?id=132214
1691
1692         Reviewed by Andreas Kling.
1693
1694         The bug was caused by callDefaultEventHandlersInTheBubblingOrder unconditionally
1695         accessing path.contextAt(0) even if the event path was empty.
1696
1697         Fixed the bug by exiting early when the event path is empty.
1698
1699         Test: fast/events/shadow-event-path-2.html
1700
1701         * dom/EventDispatcher.cpp:
1702         (WebCore::callDefaultEventHandlersInTheBubblingOrder):
1703
1704 2014-04-25  Tim Horton  <timothy_horton@apple.com>
1705
1706         REGRESSION (r167828): http/tests/media/hls/video-controls-live-stream.html fails
1707
1708         * English.lproj/mediaControlsLocalizedStrings.js:
1709         Add 'Live Broadcast' to the localized strings list.
1710
1711 2014-04-25  Brady Eidson  <beidson@apple.com>
1712
1713         Add a selection overlay.
1714         <rdar://problem/16727797> and https://bugs.webkit.org/show_bug.cgi?id=132200
1715
1716         Reviewed by David Hyatt.
1717
1718         No new tests (WK2 feature in development).
1719
1720         * WebCore.xcodeproj/project.pbxproj:
1721
1722         Add a SelectionRectGathterer class.
1723         It creates a Notifier (given a RenderView) then accepts Rects from the RenderView.
1724         When the Notifier is destroyed, the appropriate EditorClient is notified of the gathered rects.
1725         * editing/SelectionRectGatherer.cpp: Added.
1726         (WebCore::SelectionRectGatherer::SelectionRectGatherer):
1727         (WebCore::SelectionRectGatherer::addRect):
1728         (WebCore::SelectionRectGatherer::addRects):
1729         (WebCore::SelectionRectGatherer::Notifier::Notifier):
1730         (WebCore::SelectionRectGatherer::Notifier::~Notifier):
1731         (WebCore::SelectionRectGatherer::clearAndCreateNotifier):
1732         * editing/SelectionRectGatherer.h: Added.
1733
1734         * page/EditorClient.h:
1735         (WebCore::EditorClient::selectionRectsDidChange):
1736
1737         * rendering/RenderView.cpp:
1738         (WebCore::RenderView::RenderView):
1739         (WebCore::RenderView::setSelection): Clear the gatherer’s rects then create a Notifier.
1740         (WebCore::RenderView::setSubtreeSelection): Give all the selection rects to be painted to
1741           the SelectionRectGatherer.
1742         * rendering/RenderView.h:
1743
1744 2014-04-08  Jer Noble  <jer.noble@apple.com>
1745
1746         Support "Live" streams in media controls.
1747         https://bugs.webkit.org/show_bug.cgi?id=131390
1748
1749         Reviewed by Brent Fulgham.
1750
1751         Test: http/tests/media/hls/video-controls-live-stream.html
1752
1753         Support "Live" streams by adding an isLive property to our media controls.
1754
1755         * Modules/mediacontrols/mediaControlsApple.css:
1756         (audio::-webkit-media-controls-status-display):
1757         (video:-webkit-full-screen::-webkit-media-controls-status-display):
1758         * Modules/mediacontrols/mediaControlsApple.js:
1759         (Controller): isLive defaults to false.
1760         (Controller.prototype.setIsLive): Set the isLive property and conditionally reconfigure the controls.
1761         (Controller.prototype.configureInlineControls): Don't add the timeline if we are live.
1762         (Controller.prototype.configureFullScreenControls): Ditto.
1763         (Controller.prototype.updateStatusDisplay): Added.
1764         (Controller.prototype.handleLoadStart): Call updateStatusDisplay().
1765         (Controller.prototype.handleError): Ditto.
1766         (Controller.prototype.handleAbort): Ditto.
1767         (Controller.prototype.handleSuspend): Ditto.
1768         (Controller.prototype.handleStalled): Ditto.
1769         (Controller.prototype.handleWaiting): Ditto.
1770         (Controller.prototype.updateDuration): Ditto.
1771         (Controller.prototype.updateReadyState): Ditto.
1772
1773 2014-04-25  Dean Jackson  <dino@apple.com>
1774
1775         Allow a platform-specific size enumeration to be passed into popup-menu display
1776         https://bugs.webkit.org/show_bug.cgi?id=132195
1777
1778         Reviewed by Brent Fulgham. With some in-person review comments from Sam Weinig.
1779
1780         Platforms like OS X use a set of predefined sizes for built-in controls
1781         used for <select>: normal, small and mini. Expose that information to
1782         the PopupMenuClient via the PopupMenuStyle, allowing it to be passed
1783         into the platform code in WebKitSystemInterface.
1784
1785         * platform/PopupMenuStyle.h: Add a menu size enum.
1786         (WebCore::PopupMenuStyle::PopupMenuStyle):
1787         (WebCore::PopupMenuStyle::menuSize):
1788         * platform/mac/WebCoreSystemInterface.h: Pass in NSControlSize as a parameter
1789         to WKPopupMenu.
1790         * platform/mac/WebCoreSystemInterface.mm: Ditto.
1791         * rendering/RenderMenuList.cpp:
1792         (RenderMenuList::menuStyle): Ask the RenderTheme to calculate the size
1793         of the menu button, so that it can be added to the PopupMenuStyle.
1794         * rendering/RenderTheme.h: New method to retrieve the menu size.
1795         (WebCore::RenderTheme::popupMenuSize): Convert an NSControlSize into a PopupMenuSize.
1796         * rendering/RenderThemeMac.h: Override the base function, and add a
1797         controlSizeForCell helper.
1798         * rendering/RenderThemeMac.mm:
1799         (WebCore::RenderThemeMac::controlSizeForCell): Used by this new
1800         code and the old setControlSizeForCell to calculate the NSControlSize
1801         that would be used for the button.
1802         (WebCore::RenderThemeMac::setControlSize): Call the new helper.
1803         (WebCore::RenderThemeMac::popupMenuSize): Return the value from the helper.
1804
1805 2014-04-25  Javier Fernandez  <jfernandez@igalia.com>
1806
1807         REGRESSION(r167799): ASSERTION in parseGridTemplateShorthand in fast/css-grid-layout/grid-template-shorthand-get-set.html
1808         https://bugs.webkit.org/show_bug.cgi?id=132194
1809
1810         Reviewed by Martin Robinson.
1811
1812         Properly resolving the grid-template shorthand for the corresponding longhand
1813         properties.
1814
1815         No new tests, grid-template-shorthand-get-set.html already covers this case.
1816
1817         * css/StyleProperties.cpp:
1818         (WebCore::StyleProperties::getPropertyValue):
1819         * css/StylePropertyShorthand.cpp:
1820         (WebCore::shorthandForProperty):
1821         (WebCore::matchingShorthandsForLonghand):
1822         * css/StyleResolver.cpp:
1823         (WebCore::StyleResolver::applyProperty):
1824
1825 2014-04-25  David Hyatt  <hyatt@apple.com>
1826
1827         Column rules not respecting scroll offsets.
1828         https://bugs.webkit.org/show_bug.cgi?id=109683
1829
1830         Reviewed by Dean Jackson.
1831
1832         Added fast/multicol/scrolling-column-rules.html
1833
1834         * rendering/RenderBlock.cpp:
1835         (WebCore::RenderBlock::paintColumnRules):
1836         Make paintColumnRules virtual so that it works with both column implementations.
1837
1838         (WebCore::RenderBlock::paintObject):
1839         Changed to call paintColumnRules with the adjusted scroll offset and to do it after
1840         bailing on the root background only check.
1841
1842         * rendering/RenderBlock.h:
1843         paintColumnRules is now virtual.
1844
1845         * rendering/RenderBlockFlow.cpp:
1846         (WebCore::RenderBlockFlow::paintColumnRules):
1847         (WebCore::RenderBlockFlow::paintBoxDecorations): Deleted.
1848         * rendering/RenderBlockFlow.h:
1849         Got rid of paintBoxDecorations override since it failed when hasBoxDecorations was false
1850         anyway. Override paintColumnRules instead to paint at the right time.
1851
1852 2014-04-23  Jon Honeycutt  <jhoneycutt@apple.com>
1853
1854         Crash applying editing commands from iframe onload event
1855
1856         <https://bugs.webkit.org/show_bug.cgi?id=132103>
1857         <rdar://problem/15696351>
1858
1859         This patch merges the Chromium bug workaround from
1860         <http://src.chromium.org/viewvc/blink?revision=162080&view=revision>,
1861         which prevents reentrancy in CompositeEditCommand::apply().
1862
1863         Reviewed by Darin Adler.
1864
1865         Test: editing/apply-style-iframe-crash.html
1866
1867         * editing/CompositeEditCommand.cpp:
1868         (WebCore::HTMLNames::ReentrancyGuard::isRecursiveCall):
1869         (WebCore::HTMLNames::ReentrancyGuard::Scope::Scope):
1870         (WebCore::HTMLNames::ReentrancyGuard::Scope::~Scope):
1871         (WebCore::CompositeEditCommand::apply):
1872         If this is a recursive call, return early.
1873
1874 2014-04-25  David Hyatt  <hyatt@apple.com>
1875
1876         [New Multicolumn] fast/multicol/hit-test-* layout tests all fail
1877         https://bugs.webkit.org/show_bug.cgi?id=132081
1878
1879         Reviewed by Dean Jackson.
1880
1881         Added a bunch of tests in fast/multicol/newmulticol/compare-with-old-impl/hit-test-*.html
1882
1883         * rendering/RenderBlock.h:
1884         Make offsetForContents public, since I need to call it from RenderMultiColumnSet.
1885
1886         * rendering/RenderMultiColumnFlowThread.cpp:
1887         (WebCore::RenderMultiColumnFlowThread::populate):
1888         Stop an ASSERT in the new columns code on the hit tests by making sure layout state is
1889         disabled when moving children around.
1890
1891         * rendering/RenderMultiColumnSet.cpp:
1892         (WebCore::RenderMultiColumnSet::positionForPoint):
1893         Refactor this function to call a helper function instead, translateRegionPointToFlowThread.
1894
1895         (WebCore::RenderMultiColumnSet::translateRegionPointToFlowThread):
1896         This function is logical (unlike the mistaken physical function I first implemented in
1897         positionForPoint).
1898
1899         (WebCore::RenderMultiColumnSet::updateHitTestResult):
1900         * rendering/RenderMultiColumnSet.h:
1901         Overridden to fill in the correct local coordinate when the HTML document is inside a paginated
1902         RenderView. Note that column spans don't actually work, but once we move over to a 
1903         non-column based pagination API, that will become irrelevant.
1904
1905 2014-04-25  Andreas Kling  <akling@apple.com>
1906
1907         Mark some things with WTF_MAKE_FAST_ALLOCATED.
1908         <https://webkit.org/b/132198>
1909
1910         Use FastMalloc for more things.
1911
1912         Reviewed by Anders Carlsson.
1913
1914         * bindings/js/ScriptController.h:
1915         * dom/DocumentOrderedMap.h:
1916         * inspector/InspectorCSSAgent.h:
1917         * inspector/InspectorDOMAgent.h:
1918         * inspector/InspectorDOMDebuggerAgent.h:
1919         * inspector/InspectorDOMStorageAgent.h:
1920         * inspector/InspectorDatabaseAgent.h:
1921         * inspector/InspectorLayerTreeAgent.h:
1922         * inspector/InspectorPageAgent.h:
1923         * inspector/InspectorResourceAgent.h:
1924         * inspector/InspectorTimelineAgent.h:
1925         * inspector/InspectorWorkerAgent.h:
1926         * inspector/PageRuntimeAgent.h:
1927         * loader/HistoryController.h:
1928         * page/DeviceClient.h:
1929         * page/DeviceController.h:
1930         * page/EventHandler.h:
1931         * page/Page.h:
1932         * page/scrolling/ScrollingStateNode.h:
1933         * platform/graphics/FontGenericFamilies.h:
1934         * platform/graphics/FontPlatformData.h:
1935
1936 2014-04-25  Radu Stavila  <stavila@adobe.com>
1937
1938         [CSS Regions] Rename objectShouldPaintInFlowRegion to something more clear
1939         https://bugs.webkit.org/show_bug.cgi?id=132050
1940
1941         Reviewed by Andreas Kling.
1942
1943         The objectShouldPaintInFlowRegion is no longer used only by the painting process
1944         but also for hit-testing, so it was renamed to something more generic (objectShouldFragmentInFlowRegion).
1945
1946         No new tests required, it's just a method rename.
1947
1948         * rendering/RenderBlock.cpp:
1949         (WebCore::RenderBlock::paint):
1950         (WebCore::RenderBlock::selectionGaps):
1951         (WebCore::RenderBlock::nodeAtPoint):
1952         * rendering/RenderBox.cpp:
1953         (WebCore::RenderBox::positionForPoint):
1954         * rendering/RenderFlowThread.cpp:
1955         (WebCore::RenderFlowThread::objectShouldFragmentInFlowRegion):
1956         (WebCore::RenderFlowThread::objectShouldPaintInFlowRegion): Deleted.
1957         * rendering/RenderFlowThread.h:
1958         * rendering/RenderLayer.cpp:
1959         (WebCore::RenderLayer::paintLayer):
1960         (WebCore::RenderLayer::hitTestLayer):
1961         * rendering/RenderRegion.cpp:
1962         (WebCore::RenderRegion::ensureOverflowForBox):
1963         * rendering/RenderReplaced.cpp:
1964         (WebCore::RenderReplaced::shouldPaint):
1965
1966 2014-04-25  Enrica Casucci  <enrica@apple.com>
1967
1968         iOS build fix after http://trac.webkit.org/changeset/167803
1969         Unreviewed.
1970
1971         * page/Frame.cpp:
1972         (WebCore::Frame::checkOverflowScroll):
1973         * rendering/RenderBlock.cpp:
1974         (WebCore::positionForPointRespectingEditingBoundaries):
1975
1976 2014-04-24  David Hyatt  <hyatt@apple.com>
1977
1978         [New Multicolumn] Add support for offsetLeft and offsetTop.
1979         https://bugs.webkit.org/show_bug.cgi?id=132080
1980
1981         Reviewed by Andrei Bucur.
1982
1983         Added fast/multicol/client-spanners-complex.html and offset-top-left.html
1984
1985         * rendering/RenderBoxModelObject.cpp:
1986         (WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
1987         Patch the offsetLeft/Top loop to handle calling into RenderMultiColumnFlowThread
1988         in order to adjust the coordinates for the new multicolumn layout.
1989
1990         * rendering/RenderMultiColumnFlowThread.cpp:
1991         (WebCore::RenderMultiColumnFlowThread::mapFromFlowToRegion):
1992         Modified to use a helper that can be shared by offsetLeft/Top code. This code
1993         ran for client rects, and I'm moving/refactoring it for more sharing.
1994
1995         (WebCore::RenderMultiColumnFlowThread::physicalTranslationOffsetFromFlowToRegion):
1996         (WebCore::RenderMultiColumnFlowThread::physicalTranslationFromFlowToRegion):
1997         * rendering/RenderMultiColumnFlowThread.h:
1998         New functions that beef up what was in mapFromFlowToRegion and fix some bugs
1999         with the translation code.
2000
2001         * rendering/RenderMultiColumnSet.cpp:
2002         (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
2003         Patched to factor in the flow thread portion rect of the specific multicolumn set.
2004
2005         * rendering/RenderObject.h:
2006         (WebCore::RenderObject::isRenderMultiColumnFlowThread):
2007         Added for toRenderMultiColumnFlowThread capability.
2008
2009 2014-04-25  Brent Fulgham  <bfulgham@apple.com>
2010
2011         ScrollingCoordinator is unaware of topContentInset
2012         https://bugs.webkit.org/show_bug.cgi?id=132158
2013         <rdar://problem/16706152>
2014
2015         Reviewed by Darin Adler.
2016
2017         Test: platform/mac/fast/scrolling/scroll-select-bottom-test.html
2018
2019         The calculation of non-fast-scrollable regions does not currently take
2020         the topContentOffset into account. Consequently, the logic that decides
2021         whether to stay on the scrolling thread, or drop down to an individual
2022         page element, can make the wrong choice. This is especially true for
2023         small scrollable regions (such as <select> elements), where the
2024         topContentInset may be quite close to the size of the scrollable
2025          element itself.
2026
2027         * page/scrolling/ScrollingCoordinator.cpp:
2028         (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion): Also
2029         include the topContentInset value in our calculation.
2030
2031 2014-04-25  Javier Fernandez  <jfernandez@igalia.com>
2032
2033         REGRESSION(r167799): Breaks debug build
2034         https://bugs.webkit.org/show_bug.cgi?id=132194
2035
2036         Reviewed by Andrei Bucur.
2037
2038         Fix the debug bots after r167799
2039
2040         No new tests, no new functionality.
2041
2042         * css/CSSParser.cpp:
2043         (WebCore::CSSParser::parseGridTemplateShorthand):
2044
2045 2014-04-25  Miyoung Shin  <myid.shin@samsung.com>
2046
2047         Web process is crashed during dispatching touchEvent created by JS.
2048         https://bugs.webkit.org/show_bug.cgi?id=113225
2049
2050         Reviewed by Benjamin Poulain.
2051
2052         TouchEvent created by JS should have the necessary attributes
2053         of touches, targetTouches and changedTouches.
2054         It should be verified weather there are touchLists before dispatching touch event.
2055
2056         Test: fast/events/touch/create-touch-event-without-touchList.html
2057
2058         * dom/EventDispatcher.cpp:
2059         (WebCore::EventDispatcher::dispatchEvent):
2060         (WebCore::EventPath::updateTouchLists):
2061         (WebCore::addRelatedNodeResolversForTouchList): Deleted.
2062
2063 2014-04-25  Philippe Normand  <pnormand@igalia.com>
2064
2065         [GTK] File webkitRelativePath attribute was removed in r163483
2066         https://bugs.webkit.org/show_bug.cgi?id=132193
2067
2068         Reviewed by Carlos Garcia Campos.
2069
2070         Add the removed getter as deprecated API to keep backwards compatibility.
2071
2072         * bindings/gobject/WebKitDOMDeprecated.cpp:
2073         (webkit_dom_file_get_webkit_relative_path):
2074         * bindings/gobject/WebKitDOMDeprecated.h:
2075         * bindings/gobject/WebKitDOMDeprecated.symbols:
2076
2077 2014-04-25  Radu Stavila  <stavila@adobe.com>
2078
2079         [CSS Regions] Overflow selection doesn't work properly
2080         https://bugs.webkit.org/show_bug.cgi?id=130715
2081
2082         Reviewed by David Hyatt.
2083
2084         When hit-testing, painting block selection gaps and searching for the node at a specific point inside a flow thread,
2085         the region range of the box being checked must be validated in order to not return false positives. Otherwise, hit-testing
2086         at the top of region B could hit elements that overflow the bottom of region A.
2087
2088         Tests: fast/regions/selection-in-overflow-hit-testing.html
2089                fast/regions/selection-in-overflow.html
2090                fast/regions/selection-in-text-after-overflow-hit-testing.html
2091
2092         * accessibility/AccessibilityRenderObject.cpp:
2093         (WebCore::AccessibilityRenderObject::visiblePositionRangeForLine):
2094         (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
2095         * dom/Document.cpp:
2096         (WebCore::Document::caretRangeFromPoint):
2097         * editing/FrameSelection.cpp:
2098         (WebCore::FrameSelection::contains):
2099         * editing/VisibleUnits.cpp:
2100         (WebCore::previousLinePosition):
2101         (WebCore::nextLinePosition):
2102         * page/EventHandler.cpp:
2103         (WebCore::EventHandler::selectClosestWordFromHitTestResult):
2104         (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
2105         (WebCore::EventHandler::handleMousePressEventTripleClick):
2106         (WebCore::EventHandler::handleMousePressEventSingleClick):
2107         (WebCore::selectionExtentRespectingEditingBoundary):
2108         (WebCore::EventHandler::updateSelectionForMouseDrag):
2109         (WebCore::EventHandler::handleMouseReleaseEvent):
2110         * page/Frame.cpp:
2111         (WebCore::Frame::visiblePositionForPoint):
2112         * rendering/RenderBlock.cpp:
2113         (WebCore::RenderBlock::selectionGaps):
2114         (WebCore::RenderBlock::nodeAtPoint):
2115         (WebCore::positionForPointRespectingEditingBoundaries):
2116         (WebCore::RenderBlock::positionForPointWithInlineChildren):
2117         (WebCore::isChildHitTestCandidate):
2118         (WebCore::RenderBlock::positionForPoint):
2119         * rendering/RenderBlock.h:
2120         * rendering/RenderBlockFlow.cpp:
2121         (WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
2122         (WebCore::RenderBlockFlow::positionForPoint):
2123         * rendering/RenderBlockFlow.h:
2124         * rendering/RenderBox.cpp:
2125         (WebCore::RenderBox::positionForPoint):
2126         * rendering/RenderBox.h:
2127         * rendering/RenderFileUploadControl.cpp:
2128         (WebCore::RenderFileUploadControl::positionForPoint):
2129         * rendering/RenderFileUploadControl.h:
2130         * rendering/RenderInline.cpp:
2131         (WebCore::RenderInline::positionForPoint):
2132         * rendering/RenderInline.h:
2133         * rendering/RenderLineBreak.cpp:
2134         (WebCore::RenderLineBreak::positionForPoint):
2135         * rendering/RenderLineBreak.h:
2136         * rendering/RenderMultiColumnSet.cpp:
2137         (WebCore::RenderMultiColumnSet::positionForPoint):
2138         * rendering/RenderMultiColumnSet.h:
2139         * rendering/RenderObject.cpp:
2140         (WebCore::RenderObject::positionForPoint):
2141         * rendering/RenderObject.h:
2142         * rendering/RenderRegion.cpp:
2143         (WebCore::RenderRegion::positionForPoint):
2144         * rendering/RenderRegion.h:
2145         * rendering/RenderReplaced.cpp:
2146         (WebCore::RenderReplaced::positionForPoint):
2147         * rendering/RenderReplaced.h:
2148         * rendering/RenderText.cpp:
2149         (WebCore::RenderText::positionForPoint):
2150         * rendering/RenderText.h:
2151         * rendering/svg/RenderSVGInlineText.cpp:
2152         (WebCore::RenderSVGInlineText::positionForPoint):
2153         * rendering/svg/RenderSVGInlineText.h:
2154         * rendering/svg/RenderSVGText.cpp:
2155         (WebCore::RenderSVGText::positionForPoint):
2156         * rendering/svg/RenderSVGText.h:
2157
2158 2014-04-25  Philippe Normand  <pnormand@igalia.com>
2159
2160         [GTK] Iframe seamless support was removed in r163427
2161         https://bugs.webkit.org/show_bug.cgi?id=132192
2162
2163         Reviewed by Carlos Garcia Campos.
2164
2165         Add the removed get and set methods as deprecated API to keep
2166         backwards compatibility.
2167
2168         * bindings/gobject/WebKitDOMDeprecated.cpp:
2169         (webkit_dom_processing_instruction_set_data):
2170         (webkit_dom_html_iframe_element_get_seamless):
2171         (webkit_dom_html_iframe_element_set_seamless):
2172         * bindings/gobject/WebKitDOMDeprecated.h:
2173         * bindings/gobject/WebKitDOMDeprecated.symbols:
2174
2175 2014-04-25  Philippe Normand  <pnormand@igalia.com>
2176
2177         [GTK] HTMLInputElement webkitdirectory property was removed in r163483
2178         https://bugs.webkit.org/show_bug.cgi?id=132191
2179
2180         Reviewed by Carlos Garcia Campos.
2181
2182         Add the removed get and set methods as deprecated API to keep
2183         backwards compatibility.
2184
2185         * bindings/gobject/WebKitDOMDeprecated.cpp:
2186         (webkit_dom_html_input_element_get_webkitdirectory):
2187         (webkit_dom_html_input_element_set_webkitdirectory):
2188         * bindings/gobject/WebKitDOMDeprecated.h:
2189         * bindings/gobject/WebKitDOMDeprecated.symbols:
2190
2191 2014-04-25  Javier Fernandez  <jfernandez@igalia.com>
2192
2193         [CSS Grid Layout] Implementation of the grid-template shorthand.
2194         https://bugs.webkit.org/show_bug.cgi?id=128980
2195
2196         Reviewed by Darin Adler.
2197
2198         This shorthand sets the values for the grid-template-columns,
2199         grid-template-rows and grid-template-areas, so the implementation
2200         tries to reuse as much available parsing functions as possible.
2201
2202         The "parsingGridTrackList" was refactored to return a CSSValue and
2203         let the "parseValue" function to assign the property value. The
2204         "forwardSlash" operator is now valid when the track-list clause is
2205         part of a shorthand. The "parseValue" function checkouts that only
2206         additional clauses are allowed when processing shorthands; the
2207         grid-columns-rows-get-set.html tests was modified to verify this.
2208
2209         The "parseGridTemplateAreas" was refactored too, in order to
2210         process single areas's rows. This is very useful for the
2211         gris-template secondary syntax, which mixes areas and rows values.
2212
2213         Finally, the "parseGirdLineNames" function was modified as well by
2214         defining an new argument to concatenate head/tail custom-ident
2215         elements and ensure the identList is at the heading index, since
2216         it's now possible the parseList was rewound.
2217
2218         The implementation of the grid-template shorthand tries first to
2219         match the <grid-template-columns> / <grid-template-rows> syntax,
2220         failing back to the secondary syntax if needed.  This approach
2221         requires to rewind the parseList but it produces a clearer code.
2222
2223         Test: fast/css-grid-layout/grid-template-shorthand-get-set.html
2224
2225         * css/CSSComputedStyleDeclaration.cpp:
2226         (WebCore::ComputedStyleExtractor::propertyValue):
2227         * css/CSSParser.cpp:
2228         (WebCore::CSSParser::parseValue):
2229         (WebCore::CSSParser::parseGridTemplateRowsAndAreas):
2230         (WebCore::CSSParser::parseGridTemplateShorthand):
2231         (WebCore::CSSParser::parseGridLineNames):
2232         (WebCore::CSSParser::parseGridTrackList):
2233         (WebCore::CSSParser::parseGridTemplateAreasRow):
2234         (WebCore::CSSParser::parseGridTemplateAreas):
2235         * css/CSSParser.h:
2236         * css/CSSParserValues.h:
2237         (WebCore::CSSParserValueList::setCurrentIndex):
2238         * css/CSSPropertyNames.in:
2239         * css/StylePropertyShorthand.cpp:
2240         (WebCore::webkitGridTemplateShorthand):
2241         * css/StylePropertyShorthand.h:
2242
2243 2014-04-25  Andreas Kling  <akling@apple.com>
2244
2245         Remove two unused SVGDocument functions.
2246         <https://webkit.org/b/132178>
2247
2248         Reviewed by Antti Koivisto.
2249
2250         * svg/SVGDocument.cpp:
2251         (WebCore::SVGDocument::dispatchZoomEvent): Deleted.
2252         (WebCore::SVGDocument::dispatchScrollEvent): Deleted.
2253         * svg/SVGDocument.h:
2254
2255 2014-04-25  Ion Rosca  <rosca@adobe.com>
2256
2257         Incomplete body painting when using blend modes
2258         https://bugs.webkit.org/show_bug.cgi?id=131889
2259
2260         The incomplete painting was caused by the transparency layer created for
2261         the root renderer. We can safely skip creating this transparency layer at
2262         the root level, as there is nothing else being painted behind this layer that
2263         could be used erroneously as a backdrop.
2264
2265         Reviewed by Simon Fraser.
2266
2267         Test: css3/compositing/blend-mode-with-body.html
2268
2269         * rendering/RenderLayer.h:
2270         Changing RenderLayer::paintsWithTransparency so that it will not
2271         return true when the root renderer needs to isolate blending.
2272
2273 2014-04-25  Darin Adler  <darin@apple.com>
2274
2275         ASSERTION FAILED: "!m_isolatedWorld->isNormal() || m_wrapper || !m_jsFunction" in svg/custom/use-instanceRoot-event-listeners.xhtml
2276         https://bugs.webkit.org/show_bug.cgi?id=132148
2277
2278         Reviewed by Andreas Kling.
2279
2280         Changed how JSCustomMarkFunction generation works. Instead of leaving out
2281         the generated visitChildren function, just generate a call to visitAdditionalChildren.
2282         This eliminates the need to repeat boilerplate.
2283
2284         The fix for the above bug was to correct mistaken logic where JSSVGElementInstance
2285         had a visitChildren that did not properly mark event listeners because it explicitly
2286         did not call through to the base class visitChildren. The new arrangement makes that
2287         mistake impossible.
2288
2289         * bindings/js/JSAttrCustom.cpp:
2290         (WebCore::JSAttr::visitAdditionalChildren): Use this instead of visitChildren.
2291         * bindings/js/JSAudioTrackCustom.cpp:
2292         (WebCore::JSAudioTrack::visitAdditionalChildren): Ditto.
2293         * bindings/js/JSAudioTrackListCustom.cpp:
2294         (WebCore::JSAudioTrackList::visitAdditionalChildren): Ditto.
2295         * bindings/js/JSCSSRuleCustom.cpp:
2296         (WebCore::JSCSSRule::visitAdditionalChildren): Ditto.
2297         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
2298         (WebCore::JSCSSStyleDeclaration::visitAdditionalChildren): Ditto.
2299         * bindings/js/JSCanvasRenderingContextCustom.cpp:
2300         (WebCore::JSCanvasRenderingContext::visitAdditionalChildren): Ditto.
2301         * bindings/js/JSCryptoKeyPairCustom.cpp:
2302         (WebCore::JSCryptoKeyPair::visitAdditionalChildren): Ditto.
2303         * bindings/js/JSDOMWindowCustom.cpp:
2304         (WebCore::JSDOMWindow::visitAdditionalChildren): Ditto.
2305         * bindings/js/JSMessageChannelCustom.cpp:
2306         (WebCore::JSMessageChannel::visitAdditionalChildren): Ditto.
2307         * bindings/js/JSMessagePortCustom.cpp:
2308         (WebCore::JSMessagePort::visitAdditionalChildren): Ditto.
2309         * bindings/js/JSNodeCustom.cpp:
2310         (WebCore::JSNode::visitAdditionalChildren): Ditto.
2311         * bindings/js/JSNodeFilterCustom.cpp:
2312         (WebCore::JSNodeFilter::visitAdditionalChildren): Ditto.
2313         * bindings/js/JSNodeIteratorCustom.cpp:
2314         (WebCore::JSNodeIterator::visitAdditionalChildren): Ditto.
2315         * bindings/js/JSSVGElementInstanceCustom.cpp:
2316         (WebCore::JSSVGElementInstance::visitAdditionalChildren): Ditto.
2317         * bindings/js/JSSharedWorkerCustom.cpp:
2318         (WebCore::JSSharedWorker::visitAdditionalChildren): Ditto.
2319         * bindings/js/JSStyleSheetCustom.cpp:
2320         (WebCore::JSStyleSheet::visitAdditionalChildren): Ditto.
2321         * bindings/js/JSTextTrackCueCustom.cpp:
2322         (WebCore::JSTextTrackCue::visitAdditionalChildren): Ditto.
2323         * bindings/js/JSTextTrackCustom.cpp:
2324         (WebCore::JSTextTrack::visitAdditionalChildren): Ditto.
2325         * bindings/js/JSTextTrackListCustom.cpp:
2326         (WebCore::JSTextTrackList::visitAdditionalChildren): Ditto.
2327         * bindings/js/JSTreeWalkerCustom.cpp:
2328         (WebCore::JSTreeWalker::visitAdditionalChildren): Ditto.
2329         * bindings/js/JSVideoTrackCustom.cpp:
2330         (WebCore::JSVideoTrack::visitAdditionalChildren): Ditto.
2331         * bindings/js/JSVideoTrackListCustom.cpp:
2332         (WebCore::JSVideoTrackList::visitAdditionalChildren): Ditto.
2333         * bindings/js/JSWebGLRenderingContextCustom.cpp:
2334         (WebCore::JSWebGLRenderingContext::visitAdditionalChildren): Ditto.
2335         * bindings/js/JSWorkerGlobalScopeCustom.cpp:
2336         (WebCore::JSWorkerGlobalScope::visitAdditionalChildren): Ditto.
2337         * bindings/js/JSXMLHttpRequestCustom.cpp:
2338         (WebCore::JSXMLHttpRequest::visitAdditionalChildren): Ditto.
2339         * bindings/js/JSXPathResultCustom.cpp:
2340         (WebCore::JSXPathResult::visitAdditionalChildren): Ditto.
2341
2342         * bindings/js/JSDOMGlobalObject.cpp:
2343         (WebCore::JSDOMGlobalObject::visitChildren): Rewrote to use modern for loops.
2344
2345         * bindings/scripts/CodeGeneratorJS.pm:
2346         (GenerateHeader): Generate declaration of visitAdditionalChildren.
2347         (GenerateImplementation): Generate call to visitAdditionalChildren.
2348
2349 2014-04-24  Andreas Kling  <akling@apple.com>
2350
2351         [iOS WebKit2] Enable optimization to mmap downloaded resources once they become file-backed.
2352         <https://webkit.org/b/132171>
2353         <rdar://problem/16720733>
2354
2355         Add a missing export for the USE(CFNETWORK) + WebKit2 combo.
2356
2357         Reviewed by Antti Koivisto.
2358
2359         * WebCore.exp.in:
2360
2361 2014-04-24  Darin Adler  <darin@apple.com>
2362
2363         FrameLoader::checkCompleted can hit the "ref'ing while destroyed" assertion
2364         https://bugs.webkit.org/show_bug.cgi?id=132163
2365         rdar://problem/16720640
2366
2367         Reviewed by Brady Eidson.
2368
2369         Couldn't find a way to test this yet. Would be nice to have a test.
2370
2371         * loader/FrameLoader.cpp:
2372         (WebCore::FrameLoader::checkCompleted): Move protector until after we check
2373         if the frame is already complete. That can happen in practice when this is
2374         called from within the frame's destructor. All the code that runs before the
2375         protector simply checks state and does not require protection.
2376
2377 2014-04-24  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2378
2379         Mark Supplement instead of RefCountedSupplement in NavigatorContentUtils 
2380         https://bugs.webkit.org/show_bug.cgi?id=132151
2381
2382         Reviewed by Darin Adler.
2383
2384         Though Original goal was to make it sharable across navigator instances, the NavigatorContentUtils
2385         has used RefCountedSupplement<Page> instead of RefCountedSupplement<Navigator>. This patch makes it
2386         use Supplement<Page> because there is no scenario which needs to be shared across navigator instances.
2387
2388         Blink merge from https://src.chromium.org/viewvc/blink?view=rev&revision=171403.
2389
2390         No new tests, no behavior changes.
2391
2392         * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
2393         (WebCore::NavigatorContentUtils::from):
2394         (WebCore::NavigatorContentUtils::create):
2395         (WebCore::provideNavigatorContentUtilsTo):
2396         * Modules/navigatorcontentutils/NavigatorContentUtils.h:
2397
2398 2014-04-24  Commit Queue  <commit-queue@webkit.org>
2399
2400         Unreviewed, rolling out r167700.
2401         https://bugs.webkit.org/show_bug.cgi?id=132142
2402
2403         Incorrectly reverted the change in r167547 for
2404         webkit.org/b/131898 (Requested by rniwa on #webkit).
2405
2406         Reverted changeset:
2407
2408         "Cursor doesn't change back to pointer when leaving the Safari
2409         window"
2410         https://bugs.webkit.org/show_bug.cgi?id=132038
2411         http://trac.webkit.org/changeset/167700
2412
2413 2014-04-24  Brady Eidson  <beidson@apple.com>
2414
2415         Rename "IMAGE_CONTROLS" feature to "SERVICE_CONTROLS"
2416         https://bugs.webkit.org/show_bug.cgi?id=132155
2417
2418         Reviewed by Tim Horton.
2419
2420         No new tests (No change in behavior).
2421
2422         * Configurations/FeatureDefines.xcconfig:
2423         * DerivedSources.make:
2424         * WebCore.exp.in:
2425         * css/CSSDefaultStyleSheets.cpp:
2426         (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
2427         * css/CSSPrimitiveValueMappings.h:
2428         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2429         * css/CSSValueKeywords.in:
2430         * dom/Node.h:
2431         * html/HTMLImageElement.cpp:
2432         (WebCore::HTMLImageElement::HTMLImageElement):
2433         (WebCore::HTMLImageElement::parseAttribute):
2434         (WebCore::HTMLImageElement::didAttachRenderers):
2435         * html/HTMLImageElement.h:
2436         * html/shadow/ImageControlsRootElement.cpp:
2437         * html/shadow/ImageControlsRootElement.h:
2438         * html/shadow/mac/ImageControlsButtonElementMac.cpp:
2439         * html/shadow/mac/ImageControlsButtonElementMac.h:
2440         * html/shadow/mac/ImageControlsRootElementMac.cpp:
2441         * html/shadow/mac/ImageControlsRootElementMac.h:
2442         * page/ContextMenuContext.cpp:
2443         (WebCore::ContextMenuContext::ContextMenuContext):
2444         * page/ContextMenuContext.h:
2445         * page/ContextMenuController.cpp:
2446         (WebCore::ContextMenuController::maybeCreateContextMenu):
2447         (WebCore::ContextMenuController::populate):
2448         * page/ContextMenuController.h:
2449         * page/Settings.in:
2450         * platform/ThemeTypes.h:
2451         * rendering/RenderImage.cpp:
2452         (WebCore::RenderImage::canHaveChildren):
2453         * rendering/RenderTheme.cpp:
2454         (WebCore::RenderTheme::adjustStyle):
2455         (WebCore::RenderTheme::paint):
2456         (WebCore::RenderTheme::paintBorderOnly):
2457         (WebCore::RenderTheme::paintDecorations):
2458         * rendering/RenderTheme.h:
2459         * rendering/RenderThemeMac.h:
2460         * rendering/RenderThemeMac.mm:
2461         (WebCore::RenderThemeMac::servicesRolloverButtonCell):
2462         (WebCore::RenderThemeMac::paintImageControlsButton):
2463         (WebCore::RenderThemeMac::imageControlsButtonSize):
2464
2465 2014-04-24  Timothy Hatcher  <timothy@apple.com>
2466
2467         Web Inspector: Restore PageDebuggerAgent::enable / disable
2468         https://bugs.webkit.org/show_bug.cgi?id=132156
2469
2470         Restore functions that were eroniously removed in r167530.
2471
2472         Reviewed by Joseph Pecoraro.
2473
2474         * inspector/PageDebuggerAgent.cpp:
2475         (WebCore::PageDebuggerAgent::enable): Added.
2476         (WebCore::PageDebuggerAgent::disable): Added.
2477         * inspector/PageDebuggerAgent.h:
2478
2479 2014-04-24  Alexey Proskuryakov  <ap@apple.com>
2480
2481         Dropzone effects don't work in non-file documents
2482         https://bugs.webkit.org/show_bug.cgi?id=131770
2483
2484         Reviewed by Darin Adler.
2485
2486         File documents have two quirks that were making dropzone work in these before:
2487         1. An ancient hack for Dashboard allows pasteboard access from JS.
2488         2. On Mac, sandbox doesn't prevent File object creation, as we already have the access.
2489
2490         * dom/DataTransfer.cpp:
2491         (WebCore::DataTransfer::hasFileOfType):
2492         (WebCore::DataTransfer::hasStringOfType):
2493         * dom/DataTransfer.h:
2494         Moved these functions from EventHandler to DataTransfer. We can't create a DataTransfer
2495         with Files while dragging, security doesn't permit us to. But we can get the file name.
2496
2497         * fileapi/File.cpp:
2498         (WebCore::createBlobDataForFile):
2499         (WebCore::createBlobDataForFileWithName):
2500         (WebCore::File::contentTypeFromFilePath):
2501         (WebCore::getContentTypeFromFileName): Deleted.
2502         * fileapi/File.h:
2503         Exposed a function to get file type from path without creating a File first.
2504         This is much cheaper than creating a File, and works even when sandbox disallows
2505         read access to content, such as when dragging over a target.
2506
2507         * page/EventHandler.cpp:
2508         (WebCore::hasDropZoneType):
2509         (WebCore::hasFileOfType): Deleted.
2510         (WebCore::hasStringOfType): Deleted.
2511
2512 2014-04-24  Commit Queue  <commit-queue@webkit.org>
2513
2514         Unreviewed, rolling out r167441.
2515         https://bugs.webkit.org/show_bug.cgi?id=132152
2516
2517         Caused full screen regressions on vimeo, youtube, and others.
2518         (Requested by jernoble on #webkit).
2519
2520         Reverted changeset:
2521
2522         "Fullscreen media controls are unusable in pagination mode"
2523         https://bugs.webkit.org/show_bug.cgi?id=131705
2524         http://trac.webkit.org/changeset/167441
2525
2526 2014-04-24  Adenilson Cavalcanti  <cavalcantii@gmail.com>
2527
2528         Unused class forward declarations in Page
2529         https://bugs.webkit.org/show_bug.cgi?id=132141
2530
2531         Reviewed by Benjamin Poulain.
2532
2533         No new tests, no change on behavior.
2534
2535         * page/Page.h:
2536
2537 2014-04-24  Eric Carlson  <eric.carlson@apple.com>
2538
2539         [Mac] don't ask for AVAssetTrack properties before they are available
2540         https://bugs.webkit.org/show_bug.cgi?id=131902
2541         <rdar://problem/16505076>
2542
2543         Reviewed by Brent Fulgham.
2544
2545         No new tests, the behavior this changes can not be tested with a layout test.
2546
2547         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2548         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2549         (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize
2550             m_cachedTotalBytes.
2551         (WebCore::MediaPlayerPrivateAVFoundationObjC::beginLoadingMetadata): Don't report that
2552             metadata has been loaded until the track properties we need have been loaded too.
2553         (WebCore::MediaPlayerPrivateAVFoundationObjC::totalBytes): Cache totalBytes instead
2554             of recalculating it every time.
2555         (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange): Invalidate cached
2556             total bytes.
2557         (WebCore::assetTrackMetadataKeyNames): Array of AVAssetTrack properties we use.
2558
2559 2014-04-24  Myles C. Maxfield  <mmaxfield@apple.com>
2560
2561         Unify platformWidthForGlyph across OS X and iOS
2562         https://bugs.webkit.org/show_bug.cgi?id=132036
2563
2564         Reviewed by Darin Adler.
2565
2566         This patch creates on shared SimpleFontData::platformWidthForGlyph() function for both OS X and iOS.
2567
2568         No new tests are necessary because there should be no behavior changes.
2569
2570         * platform/graphics/SimpleFontData.h: Signatures for two helper functions
2571         * platform/graphics/ios/SimpleFontDataIOS.mm: Replace iOS implementation of platformWidthForGlyph() with
2572         implementations of only the two helper functions
2573         (WebCore::SimpleFontData::getRenderingStyle): Compute style argument to CGFontGetGlyphAdvancesForStyle()
2574         (WebCore::SimpleFontData::advanceForColorBitmapFont): iOS doesn't have color bitmap fonts
2575         (WebCore::SimpleFontData::platformWidthForGlyph): Deleted.
2576         * platform/graphics/mac/SimpleFontDataMac.mm:
2577         (WebCore::SimpleFontData::getRenderingStyle): Compute style argument to CGFontGetGlyphAdvancesForStyle()
2578         (WebCore::SimpleFontData::advanceForColorBitmapFont): Use [NSFont advancementForGlyph] to compute the advance
2579         (WebCore::hasCustomTracking): Removed #if
2580         (WebCore::isEmoji): Only relevant on iOS
2581         (WebCore::SimpleFontData::platformWidthForGlyph): Shared implementation. Calls helper functions.
2582
2583 2014-04-24  Zalan Bujtas  <zalan@apple.com>
2584
2585         Subpixel rendering: Clipping on text areas when shifted by one device pixel.
2586         https://bugs.webkit.org/show_bug.cgi?id=132008
2587
2588         Reviewed by Darin Adler.
2589
2590         Make RenderTheme paint* functions LayoutRect aware. Textarea is device pixel snapped, while
2591         other theme controls are still on integral size/positions.
2592
2593         Test: fast/forms/hidpi-textarea-on-subpixel-position.html
2594
2595         * rendering/RenderBox.cpp:
2596         (WebCore::RenderBox::paintBoxDecorations):
2597         * rendering/RenderTheme.cpp:
2598         (WebCore::RenderTheme::paint):
2599         (WebCore::RenderTheme::paintBorderOnly):
2600         (WebCore::RenderTheme::paintDecorations):
2601         * rendering/RenderTheme.h:
2602         (WebCore::RenderTheme::paintTextField):
2603         (WebCore::RenderTheme::paintTextFieldDecorations):
2604         (WebCore::RenderTheme::paintTextArea):
2605         (WebCore::RenderTheme::paintTextAreaDecorations):
2606         * rendering/RenderThemeIOS.h:
2607         * rendering/RenderThemeIOS.mm:
2608         (WebCore::RenderThemeIOS::paintTextFieldDecorations):
2609         (WebCore::RenderThemeIOS::paintTextAreaDecorations):
2610         * rendering/RenderThemeMac.h:
2611         * rendering/RenderThemeMac.mm:
2612         (WebCore::RenderThemeMac::paintTextField):
2613         (WebCore::RenderThemeMac::paintTextArea):
2614
2615 2014-04-24  Myles C. Maxfield  <mmaxfield@apple.com>
2616
2617         FontCache::fontCache() never returns nullptr so it can be made to return a reference instead
2618         https://bugs.webkit.org/show_bug.cgi?id=132110
2619
2620         Reviewed by Tim Horton.
2621
2622         Updates callers to use '.' instead of '->'.
2623
2624         No new tests are necessary because there should be no behavior change.
2625
2626         * css/CSSFontFaceSource.cpp:
2627         (WebCore::CSSFontFaceSource::getFontData):
2628         * css/CSSFontSelector.cpp:
2629         (WebCore::CSSFontSelector::CSSFontSelector):
2630         (WebCore::CSSFontSelector::~CSSFontSelector):
2631         (WebCore::CSSFontSelector::addFontFaceRule):
2632         (WebCore::fontDataForGenericFamily):
2633         (WebCore::CSSFontSelector::getFallbackFontData):
2634         * platform/MemoryPressureHandler.cpp:
2635         (WebCore::MemoryPressureHandler::releaseMemory):
2636         * platform/graphics/FontCache.cpp:
2637         (WebCore::fontCache): Return a reference
2638         * platform/graphics/FontCache.h:
2639         (WebCore::FontCachePurgePreventer::FontCachePurgePreventer):
2640         (WebCore::FontCachePurgePreventer::~FontCachePurgePreventer):
2641         * platform/graphics/FontGlyphs.cpp:
2642         (WebCore::FontGlyphs::FontGlyphs):
2643         (WebCore::FontGlyphs::releaseFontData):
2644         (WebCore::FontGlyphs::realizeFontDataAt):
2645         (WebCore::FontGlyphs::glyphDataAndPageForCharacter):
2646         * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
2647         (WebCore::FontPlatformData::verticalData):
2648         * platform/graphics/ios/SimpleFontDataIOS.mm:
2649         (WebCore::SimpleFontData::platformCreateScaledFontData):
2650         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
2651         (WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
2652         * platform/graphics/mac/FontCacheMac.mm:
2653         (WebCore::invalidateFontCache):
2654         (WebCore::fontCacheRegisteredFontsChangedNotificationCallback):
2655         * platform/graphics/mac/SimpleFontDataMac.mm:
2656         (WebCore::SimpleFontData::platformDestroy):
2657         (WebCore::SimpleFontData::platformCreateScaledFontData):
2658         * platform/graphics/win/FontCacheWin.cpp:
2659         (WebCore::getCJKCodePageMasks):
2660         * platform/graphics/win/SimpleFontDataWin.cpp:
2661         (WebCore::SimpleFontData::containsCharacters):
2662         * platform/graphics/wince/FontCacheWinCE.cpp:
2663         (WebCore::getCJKCodePageMasks):
2664         * platform/graphics/wince/FontPlatformData.cpp:
2665         (WebCore::FontFamilyCodePageInfo::codePages):
2666         (WebCore::FixedSizeFontData::create):
2667         * platform/graphics/wince/GlyphPageTreeNodeWinCE.cpp:
2668         (WebCore::GlyphPage::fill):
2669         * platform/graphics/wince/SimpleFontDataWinCE.cpp:
2670         (WebCore::SimpleFontData::platformCreateScaledFontData):
2671         (WebCore::SimpleFontData::containsCharacters):
2672
2673 2014-04-24  Eric Carlson  <eric.carlson@apple.com>
2674
2675         [iOS] Manage AudioSession category according to media type
2676         https://bugs.webkit.org/show_bug.cgi?id=132096
2677
2678         Reviewed by Jer Noble.
2679
2680         * WebCore.exp.in: Export setting.
2681
2682         * html/HTMLMediaSession.cpp:
2683         (WebCore::HTMLMediaSession::HTMLMediaSession):
2684         (WebCore::initializeAudioSession): Deleted.
2685
2686         * page/Settings.cpp:
2687         * page/Settings.h:
2688         (WebCore::Settings::setShouldManageAudioSession): New.
2689         (WebCore::Settings::shouldManageAudioSession): Ditto.
2690
2691         * platform/audio/ios/AudioDestinationIOS.cpp:
2692         (WebCore::AudioDestinationIOS::AudioDestinationIOS): Use a MediaSession instead of inheriting
2693             from AudioListener and calling the AudioSession directly.
2694         (WebCore::AudioDestinationIOS::~AudioDestinationIOS): Ditto.
2695         (WebCore::AudioDestinationIOS::start): Notify session.
2696         (WebCore::AudioDestinationIOS::stop): Ditto.
2697         (WebCore::AudioDestinationIOS::beganAudioInterruption): Deleted.
2698         (WebCore::AudioDestinationIOS::endedAudioInterruption): Deleted.
2699         * platform/audio/ios/AudioDestinationIOS.h:
2700         (WebCore::AudioDestinationIOS::mediaType):
2701         (WebCore::AudioDestinationIOS::canReceiveRemoteControlCommands):
2702         (WebCore::AudioDestinationIOS::didReceiveRemoteControlCommand):
2703         (WebCore::AudioDestinationIOS::isPlaying): Deleted.
2704
2705         * platform/audio/ios/AudioSessionIOS.mm:
2706         (WebCore::categoryName): Debug-only logging function.
2707         (WebCore::AudioSession::setCategory): Don't stick with "media" once it is set.
2708
2709         * platform/audio/ios/MediaSessionManagerIOS.mm:
2710         (WebCore::MediaSessionManageriOS::resetRestrictions): Set up restrictions for WebAudio.
2711         (WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Don't set invalid start time.
2712
2713         * platform/audio/mac/MediaSessionManagerMac.cpp:
2714         (MediaSessionManager::updateSessionState): Manage AudioSession.active when WebAudio clients
2715             come and go. Manage AudioSession.category according to the number of WebAudio and
2716             HTMLMediaElement clients.
2717
2718 2014-04-24  David Hyatt  <hyatt@apple.com>
2719
2720         [New Multicolumn] Client rects don't work with column spans.
2721         https://bugs.webkit.org/show_bug.cgi?id=132131
2722
2723         Reviewed by Dean Jackson.
2724         
2725         Don't factor in the offset of the multicolumn set from the top
2726         of the multicolumn block. This was added already, and it doesn't
2727         need to be a part of columnTranslationForOffset.
2728
2729         Added fast/multicol/client-rects-spanners.html
2730
2731         * rendering/RenderMultiColumnSet.cpp:
2732         (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
2733
2734 2014-04-24  Praveen R Jadhav  <praveen.j@samsung.com>
2735
2736         [EFL] WebKit build fails when MEDIA_SOURCE is enabled
2737         https://bugs.webkit.org/show_bug.cgi?id=132118
2738
2739         Reviewed by Brent Fulgham.
2740
2741         Files MediaSourceGStreamer.cpp, SourceBufferPrivateGStreamer.cpp and
2742         WebKitMediaSourceGStreamer.cpp are included for EFL port build.
2743
2744         No new tests. No change in behaviour.
2745
2746         * PlatformEfl.cmake: MediaSourceGStreamer.cpp, SourceBufferPrivateGStreamer.cpp
2747         and WebKitMediaSourceGStreamer.cpp are included for compilation.
2748
2749 2014-04-24  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
2750
2751         ASSERTION FAILED: !begin.isIndefinite() in WebCore::SVGSMILElement::resolveFirstInterval.
2752         https://bugs.webkit.org/show_bug.cgi?id=131097
2753
2754         Reviewed by Darin Adler.
2755
2756         According to smil animation reference, max attribute cannot be 0.
2757
2758         Test: svg/animations/smil-animation-max-attribute-zero-crash.svg
2759
2760         * svg/animation/SVGSMILElement.cpp:
2761         (WebCore::SVGSMILElement::maxValue):
2762           changed (result < 0) to (result <= 0)
2763
2764 2014-04-24  Ryuan Choi  <ryuan.choi@samsung.com>
2765
2766         Remove screenColorProfile()
2767         https://bugs.webkit.org/show_bug.cgi?id=132035
2768
2769         Reviewed by Darin Adler.
2770
2771         Only chromium used screenColorProfile() since r120789.
2772
2773         * platform/PlatformScreen.h:
2774         * platform/efl/PlatformScreenEfl.cpp:
2775         (WebCore::screenColorProfile): Deleted.
2776         * platform/gtk/PlatformScreenGtk.cpp:
2777         (WebCore::screenColorProfile): Deleted.
2778         * platform/image-decoders/ImageDecoder.h:
2779         (WebCore::ImageDecoder::qcmsOutputDeviceProfile):
2780         * platform/ios/PlatformScreenIOS.mm:
2781         (WebCore::screenColorProfile): Deleted.
2782         * platform/mac/PlatformScreenMac.mm:
2783         (WebCore::screenColorProfile): Deleted.
2784         * platform/win/PlatformScreenWin.cpp:
2785         (WebCore::screenColorProfile): Deleted.
2786
2787 2014-04-24  Zalan Bujtas  <zalan@apple.com>
2788
2789         One more unreviewed build fix after r167755.
2790
2791         * html/shadow/mac/ImageControlsButtonElementMac.cpp:
2792         (WebCore::RenderImageControlsButton::updateLogicalWidth):
2793         (WebCore::RenderImageControlsButton::computeLogicalHeight):
2794
2795 2014-04-24  Zalan Bujtas  <zalan@apple.com>
2796
2797         Unreviewed build fix after r167755.
2798
2799         * rendering/RenderThemeMac.h:
2800
2801 2014-04-24  Zalan Bujtas  <zalan@apple.com>
2802
2803         Transition RenderTheme API from RenderObject* to const RenderObject&
2804         https://bugs.webkit.org/show_bug.cgi?id=132037
2805
2806         Reviewed by Andreas Kling.
2807
2808         Using const references provides better encapsulation and improve security.
2809
2810         No change in behavior.
2811
2812         * accessibility/AccessibilityObject.cpp:
2813         (WebCore::AccessibilityObject::boundingBoxForQuads):
2814         * dom/Element.cpp:
2815         (WebCore::Element::setActive):
2816         (WebCore::Element::setHovered):
2817         * editing/FrameSelection.cpp:
2818         (WebCore::FrameSelection::focusedOrActiveStateChanged):
2819         * html/HTMLFormControlElement.cpp:
2820         (WebCore::HTMLFormControlElement::disabledStateChanged):
2821         (WebCore::HTMLFormControlElement::readOnlyAttributeChanged):
2822         * html/HTMLInputElement.cpp:
2823         (WebCore::HTMLInputElement::setChecked):
2824         (WebCore::HTMLInputElement::setIndeterminate):
2825         * html/HTMLOptionElement.cpp:
2826         (WebCore::HTMLOptionElement::parseAttribute):
2827         * rendering/RenderBlock.cpp:
2828         (WebCore::RenderBlock::addVisualOverflowFromTheme):
2829         (WebCore::RenderBlock::baselinePosition):
2830         * rendering/RenderBox.cpp:
2831         (WebCore::RenderBox::paintBoxDecorations):
2832         * rendering/RenderButton.cpp:
2833         (WebCore::RenderButton::styleDidChange):
2834         * rendering/RenderFileUploadControl.cpp:
2835         (WebCore::RenderFileUploadControl::paintObject):
2836         * rendering/RenderFlowThread.cpp:
2837         (WebCore::RenderFlowThread::addRegionsVisualOverflowFromTheme):
2838         * rendering/RenderObject.cpp:
2839         (WebCore::RenderObject::drawLineForBoxSide):
2840         * rendering/RenderObject.h:
2841         * rendering/RenderProgress.cpp:
2842         (WebCore::RenderProgress::computeLogicalHeight):
2843         * rendering/RenderTextControlSingleLine.cpp:
2844         (WebCore::RenderTextControlSingleLine::paint):
2845         * rendering/RenderTheme.cpp:
2846         (WebCore::RenderTheme::paint):
2847         (WebCore::RenderTheme::paintBorderOnly):
2848         (WebCore::RenderTheme::paintDecorations):
2849         (WebCore::RenderTheme::baselinePosition):
2850         (WebCore::RenderTheme::adjustRepaintRect):
2851         (WebCore::RenderTheme::stateChanged):
2852         (WebCore::RenderTheme::updateControlStatesForRenderer):
2853         (WebCore::RenderTheme::extractControlStatesForRenderer):
2854         (WebCore::RenderTheme::isActive):
2855         (WebCore::RenderTheme::isChecked):
2856         (WebCore::RenderTheme::isIndeterminate):
2857         (WebCore::RenderTheme::isEnabled):
2858         (WebCore::RenderTheme::isFocused):
2859         (WebCore::RenderTheme::isPressed):
2860         (WebCore::RenderTheme::isSpinUpButtonPartPressed):
2861         (WebCore::RenderTheme::isReadOnlyControl):
2862         (WebCore::RenderTheme::isHovered):
2863         (WebCore::RenderTheme::isSpinUpButtonPartHovered):
2864         (WebCore::RenderTheme::isDefault):
2865         (WebCore::RenderTheme::paintInputFieldSpeechButton):
2866         (WebCore::RenderTheme::paintMeter):
2867         (WebCore::RenderTheme::paintSliderTicks):
2868         (WebCore::RenderTheme::progressBarRectForBounds):
2869         * rendering/RenderTheme.h:
2870         (WebCore::RenderTheme::controlSupportsTints):
2871         (WebCore::RenderTheme::paintCapsLockIndicator):
2872         (WebCore::RenderTheme::paintFileUploadIconDecorations):
2873         (WebCore::RenderTheme::imageControlsButtonSize):
2874         (WebCore::RenderTheme::paintCheckbox):
2875         (WebCore::RenderTheme::paintRadio):
2876         (WebCore::RenderTheme::paintButton):
2877         (WebCore::RenderTheme::paintInnerSpinButton):
2878         (WebCore::RenderTheme::paintCheckboxDecorations):
2879         (WebCore::RenderTheme::paintRadioDecorations):
2880         (WebCore::RenderTheme::paintButtonDecorations):
2881         (WebCore::RenderTheme::paintTextField):
2882         (WebCore::RenderTheme::paintTextFieldDecorations):
2883         (WebCore::RenderTheme::paintTextArea):
2884         (WebCore::RenderTheme::paintTextAreaDecorations):
2885         (WebCore::RenderTheme::paintMenuList):
2886         (WebCore::RenderTheme::paintMenuListDecorations):
2887         (WebCore::RenderTheme::paintMenuListButtonDecorations):
2888         (WebCore::RenderTheme::paintPushButtonDecorations):
2889         (WebCore::RenderTheme::paintSquareButtonDecorations):
2890         (WebCore::RenderTheme::paintProgressBar):
2891         (WebCore::RenderTheme::paintSliderTrack):
2892         (WebCore::RenderTheme::paintSliderThumb):
2893         (WebCore::RenderTheme::paintSliderThumbDecorations):
2894         (WebCore::RenderTheme::paintSearchField):
2895         (WebCore::RenderTheme::paintSearchFieldDecorations):
2896         (WebCore::RenderTheme::paintSearchFieldCancelButton):
2897         (WebCore::RenderTheme::paintSearchFieldDecorationPart):
2898         (WebCore::RenderTheme::paintSearchFieldResultsDecorationPart):
2899         (WebCore::RenderTheme::paintSearchFieldResultsButton):
2900         (WebCore::RenderTheme::paintMediaFullscreenButton):
2901         (WebCore::RenderTheme::paintMediaPlayButton):
2902         (WebCore::RenderTheme::paintMediaOverlayPlayButton):
2903         (WebCore::RenderTheme::paintMediaMuteButton):
2904         (WebCore::RenderTheme::paintMediaSeekBackButton):
2905         (WebCore::RenderTheme::paintMediaSeekForwardButton):
2906         (WebCore::RenderTheme::paintMediaSliderTrack):
2907         (WebCore::RenderTheme::paintMediaSliderThumb):
2908         (WebCore::RenderTheme::paintMediaVolumeSliderContainer):
2909         (WebCore::RenderTheme::paintMediaVolumeSliderTrack):
2910         (WebCore::RenderTheme::paintMediaVolumeSliderThumb):
2911         (WebCore::RenderTheme::paintMediaRewindButton):
2912         (WebCore::RenderTheme::paintMediaReturnToRealtimeButton):
2913         (WebCore::RenderTheme::paintMediaToggleClosedCaptionsButton):
2914         (WebCore::RenderTheme::paintMediaControlsBackground):
2915         (WebCore::RenderTheme::paintMediaCurrentTime):
2916         (WebCore::RenderTheme::paintMediaTimeRemaining):
2917         (WebCore::RenderTheme::paintMediaFullScreenVolumeSliderTrack):
2918         (WebCore::RenderTheme::paintMediaFullScreenVolumeSliderThumb):
2919         (WebCore::RenderTheme::paintSnapshottedPluginOverlay):
2920         (WebCore::RenderTheme::paintImageControlsButton):
2921         * rendering/RenderThemeIOS.h:
2922         * rendering/RenderThemeIOS.mm:
2923         (WebCore::RenderThemeIOS::addRoundedBorderClip):
2924         (WebCore::RenderThemeIOS::paintCheckboxDecorations):
2925         (WebCore::RenderThemeIOS::baselinePosition):
2926         (WebCore::RenderThemeIOS::paintRadioDecorations):
2927         (WebCore::RenderThemeIOS::paintTextFieldDecorations):
2928         (WebCore::RenderThemeIOS::paintTextAreaDecorations):
2929         (WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
2930         (WebCore::RenderThemeIOS::paintSliderTrack):
2931         (WebCore::RenderThemeIOS::paintSliderThumbDecorations):
2932         (WebCore::RenderThemeIOS::paintProgressBar):
2933         (WebCore::RenderThemeIOS::paintSearchFieldDecorations):
2934         (WebCore::RenderThemeIOS::paintButtonDecorations):
2935         (WebCore::RenderThemeIOS::paintPushButtonDecorations):
2936         (WebCore::RenderThemeIOS::paintFileUploadIconDecorations):
2937         * rendering/RenderThemeMac.h:
2938         (WebCore::RenderThemeMac::updateActiveState):
2939         * rendering/RenderThemeMac.mm:
2940         (WebCore::RenderThemeMac::documentViewFor):
2941         (WebCore::RenderThemeMac::adjustRepaintRect):
2942         (WebCore::RenderThemeMac::convertToPaintingRect):
2943         (WebCore::RenderThemeMac::updateCheckedState):
2944         (WebCore::RenderThemeMac::updateEnabledState):
2945         (WebCore::RenderThemeMac::updateFocusedState):
2946         (WebCore::RenderThemeMac::updatePressedState):
2947         (WebCore::RenderThemeMac::controlSupportsTints):
2948         (WebCore::RenderThemeMac::paintTextField):
2949         (WebCore::RenderThemeMac::paintCapsLockIndicator):
2950         (WebCore::RenderThemeMac::paintTextArea):
2951         (WebCore::RenderThemeMac::paintMenuList):
2952         (WebCore::RenderThemeMac::paintMeter):
2953         (WebCore::RenderThemeMac::progressBarRectForBounds):
2954         (WebCore::RenderThemeMac::paintProgressBar):
2955         (WebCore::RenderThemeMac::paintMenuListButtonGradients):
2956         (WebCore::RenderThemeMac::paintMenuListButtonDecorations):
2957         (WebCore::RenderThemeMac::setPopupButtonCellState):
2958         (WebCore::RenderThemeMac::paintSliderTrack):
2959         (WebCore::RenderThemeMac::paintSliderThumb):
2960         (WebCore::RenderThemeMac::paintSearchField):
2961         (WebCore::RenderThemeMac::setSearchCellState):
2962         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
2963         (WebCore::RenderThemeMac::paintSearchFieldDecorationPart):
2964         (WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart):
2965         (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
2966         (WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):
2967         (WebCore::RenderThemeMac::paintImageControlsButton):
2968         (WebCore::RenderThemeMac::imageControlsButtonSize):
2969
2970 2014-04-23  Carlos Garcia Campos  <cgarcia@igalia.com>
2971
2972         [GTK] HTML Media capture attribute is a boolean since r163958
2973         https://bugs.webkit.org/show_bug.cgi?id=132061
2974
2975         Reviewed by Gustavo Noronha Silva.
2976
2977         Add new methods webkit_dom_html_input_element_get_capture_enabled
2978         and webkit_dom_html_input_element_set_capture_enabled using a
2979         boolean and deprecate the old methods.
2980
2981         * bindings/gobject/WebKitDOMDeprecated.cpp:
2982         (webkit_dom_html_input_element_get_capture):
2983         (webkit_dom_html_input_element_set_capture):
2984         * bindings/gobject/WebKitDOMDeprecated.h:
2985         * bindings/gobject/WebKitDOMDeprecated.symbols:
2986         * bindings/gobject/webkitdom.symbols:
2987         * bindings/scripts/CodeGeneratorGObject.pm:
2988         (GetEffectiveFunctionName): Helper function to rename API methods
2989         for special cases.
2990         (GenerateFunction): Use GetEffectiveFunctionName().
2991
2992 2014-04-23  Praveen R Jadhav  <praveen.j@samsung.com>
2993
2994         [MediaStream] Implement MediaStream active attribute
2995         https://bugs.webkit.org/show_bug.cgi?id=131973
2996
2997         Reviewed by Eric Carlson.
2998
2999         MediaStream .active attribute are introduced which will replace
3000         .ended attribute. This patch implements the newly introduced attributes.
3001
3002         MediaStream-add-remove-tracks.html is updated to handle this scenario.
3003
3004         * Modules/mediastream/MediaStream.cpp:
3005         (WebCore::MediaStream::active): Added.
3006         (WebCore::MediaStream::setActive): Added.
3007         (WebCore::MediaStream::addTrack): Propagates 'onactive' event when required.
3008         (WebCore::MediaStream::removeTrack): Propagates 'oninactive' event when required.
3009         (WebCore::MediaStream::trackDidEnd): Propagates 'oninactive' event when required.
3010         (WebCore::MediaStream::streamDidEnd):
3011         (WebCore::MediaStream::setStreamIsActive): Added.
3012         * Modules/mediastream/MediaStream.h:
3013         * Modules/mediastream/MediaStream.idl:
3014         * dom/EventNames.h:
3015         * platform/mediastream/MediaStreamPrivate.cpp:
3016         (WebCore::MediaStreamPrivate::MediaStreamPrivate): Initialize .active attribute
3017         (WebCore::MediaStreamPrivate::setEnded):
3018         (WebCore::MediaStreamPrivate::setActive): Added.
3019         * platform/mediastream/MediaStreamPrivate.h:
3020         (WebCore::MediaStreamPrivate::active): Added.
3021
3022 2014-04-23  Darin Adler  <darin@apple.com>
3023
3024         [Cocoa] fix CF leaks found by code inspection
3025         https://bugs.webkit.org/show_bug.cgi?id=132106
3026
3027         Reviewed by Andreas Kling.
3028
3029         * page/CaptionUserPreferencesMediaAF.cpp:
3030         (WebCore::trackDisplayName): Added a missing adoptCF.
3031
3032         * platform/Language.cpp:
3033         (WebCore::displayNameForLanguageLocale): Added a missing adoptCF.
3034
3035         * platform/graphics/FontPlatformData.cpp:
3036         (WebCore::FontPlatformData::openTypeTable): Added a missing adoptCF.
3037
3038         * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:
3039         (WebCore::InbandTextTrackPrivateAVCF::label): Added two missing adoptCF.
3040
3041         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
3042         (WebCore::AVFWrapper::createImageForTimeInRect): Added two missing adoptCF.
3043
3044         * platform/graphics/cg/PDFDocumentImage.cpp:
3045         (WebCore::PDFDocumentImage::createPDFDocument): Added missing adoptCF.
3046
3047         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
3048         (WebCore::cascadeToLastResortFontDescriptor): Added two missing adoptCF.
3049
3050         * platform/graphics/mac/FontMac.mm:
3051         (WebCore::Font::primaryFontDataIsSystemFont): Added missing adoptCF.
3052
3053         * platform/graphics/mac/SimpleFontDataMac.mm:
3054         (WebCore::hasCustomTracking): Added missing adoptCF.
3055
3056         * platform/image-decoders/ImageDecoder.h:
3057         (WebCore::ImageDecoder::qcmsOutputDeviceProfile): Added CFRelease.
3058
3059         * plugins/mac/PluginPackageMac.cpp:
3060         (WebCore::readPListFile): Added two missing adoptCF.
3061
3062 2014-04-23  Ryosuke Niwa  <rniwa@webkit.org>
3063
3064         REGRESSION (r157328): popover to check into flight ba.com dismisses instantly when focusing form
3065         https://bugs.webkit.org/show_bug.cgi?id=131949
3066
3067         Address the review comment.
3068
3069         * dom/EventDispatcher.cpp:
3070         (WebCore::EventRelatedNodeResolver::findHostOfTreeScopeInTargetTreeScope):
3071
3072 2014-04-23  Andreas Kling  <akling@apple.com>
3073
3074         CachedResourceLoader hoards URLs indefinitely for no good reason.
3075         <https://webkit.org/b/132102>
3076         <rdar://problem/16708265>
3077
3078         Since we don't care about CachedResourceLoader::m_validatedURL's after
3079         the Document has finished dispatching its initial load event, clear the
3080         set at that point, and don't add any new URLs to it.
3081
3082         Reviewed by Anders Carlsson.
3083
3084         * dom/Document.cpp:
3085         (WebCore::Document::dispatchWindowLoadEvent):
3086         * loader/cache/CachedResourceLoader.cpp:
3087         (WebCore::CachedResourceLoader::requestResource):
3088         (WebCore::CachedResourceLoader::documentDidFinishLoadEvent):
3089         * loader/cache/CachedResourceLoader.h:
3090
3091 2014-04-23  Andreas Kling  <akling@apple.com>
3092
3093         Canvas cache of clean URLs can grow without bounds.
3094         <https://webkit.org/b/132091>
3095         <rdar://problem/16695665>
3096
3097         Remove a silly "optimization" that kept a cache of clean URLs
3098         that can be drawn into a canvas without tainting it, all to avoid
3099         the "expensive" checks to determine whether it would taint.
3100
3101         Reviewed by Benjamin Poulain.
3102
3103         * html/canvas/CanvasRenderingContext.cpp:
3104         (WebCore::CanvasRenderingContext::wouldTaintOrigin):
3105         * html/canvas/CanvasRenderingContext.h:
3106
3107 2014-04-23  Benjamin Poulain  <bpoulain@apple.com>
3108
3109         [iOS][WK2] Fix a few mistakes affecting the initial layout and the initial unobscured rect
3110         https://bugs.webkit.org/show_bug.cgi?id=132093
3111
3112         Reviewed by Tim Horton.
3113
3114         Change the minimum layout size to float point values to account for size defined on retina displays.
3115         The minimum layout size supports half-pixels, the value is rounded later when computing the layout size
3116         in document coordinates.
3117
3118         * WebCore.exp.in:
3119         * page/ViewportConfiguration.cpp:
3120         (WebCore::ViewportConfiguration::ViewportConfiguration):
3121         Setting the initial content size is incorrect. The layout size computation already take into account
3122         empty size for the first layout.
3123
3124         Setting the content size upfront make the first computation incorrect when the viewport arguments specify
3125         the initial scale.
3126
3127         (WebCore::ViewportConfiguration::setMinimumLayoutSize):
3128         * page/ViewportConfiguration.h:
3129         (WebCore::ViewportConfiguration::minimumLayoutSize):
3130
3131 2014-04-23  Brent Fulgham  <bfulgham@apple.com>
3132
3133         [Mac, iOS] Stop buffering media when on an inactive tab. 
3134         https://bugs.webkit.org/show_bug.cgi?id=132077
3135
3136         Reviewed by Eric Carlson.
3137
3138         * html/HTMLMediaElement.cpp: Rename 'm_isDisplaySleepDisablingSuspended'
3139         to 'm_elementIsHidden'.
3140         (WebCore::HTMLMediaElement::HTMLMediaElement):
3141         (WebCore::HTMLMediaElement::visibilityStatusChanged): Notify the
3142         media session that the element is (or is not) hidden.
3143         (WebCore::HTMLMediaElement::setShouldBufferData): Added.
3144         * html/HTMLMediaElement.h:
3145         * platform/audio/MediaSession.cpp:
3146         (WebCore::MediaSession::clientWillBeginPlayback): Tell media to
3147         buffer if not hidden or playing.
3148         (WebCore::MediaSession::clientWillPausePlayback): Ditto.
3149         (WebCore::MediaSession::visibilityChanged): Added. Client API, just relays call
3150         to updateClientDataBuffering.
3151         (WebCore::MediaSession::updateClientDataBuffering): Tell client it should only
3152         buffer data if it's currently playing, or not hidden.
3153         * platform/audio/MediaSession.h:
3154         * platform/graphics/MediaPlayer.cpp:
3155         (WebCore::MediaPlayer::setShouldBufferData): Added: Just relays to
3156         MediaPlayerPrivate object.
3157         * platform/graphics/MediaPlayer.h:
3158         * platform/graphics/MediaPlayerPrivate.h:
3159         (WebCore::MediaPlayerPrivateInterface::setShouldBufferData):
3160         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
3161         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3162         (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
3163         (WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldBufferData): Added.
3164         Detach the player item from the player if we don't want to continue
3165         buffering or other background tasks.
3166
3167 2014-04-23  Alexey Proskuryakov  <ap@apple.com>
3168
3169         Eliminate internals.setMockScrollbarsEnabled()
3170         https://bugs.webkit.org/show_bug.cgi?id=132085
3171
3172         Reviewed by Tim Horton.
3173
3174         This was essentially unused, and also didnt work.
3175
3176         * testing/InternalSettings.cpp:
3177         (WebCore::InternalSettings::Backup::restoreTo):
3178         (WebCore::InternalSettings::setMockScrollbarsEnabled): Deleted.
3179         * testing/InternalSettings.h:
3180         * testing/InternalSettings.idl:
3181
3182 2014-04-23  Anders Carlsson  <andersca@apple.com>
3183
3184         Don't migrate the WKView.h header from WebCore to WebKit
3185         https://bugs.webkit.org/show_bug.cgi?id=132086
3186
3187         Reviewed by Dan Bernstein.
3188
3189         * WebCore.xcodeproj/project.pbxproj:
3190         Add WAKViewInternal.h.
3191
3192         * platform/WAKViewInternal.h: Added.
3193
3194         * platform/ios/wak/WAKClipView.m:
3195         Import WAKViewInternal.h instead of WAKViewPrivate.h.
3196
3197         * platform/ios/wak/WAKScrollView.mm:
3198         Import WAKViewInternal.h instead of WAKViewPrivate.h.
3199
3200         * platform/ios/wak/WAKView.h:
3201         Move ivars to a class extension in WAKViewInternal.h and remove WKView.h import.
3202
3203         * platform/ios/wak/WAKView.mm:
3204         Import WAKViewInternal.h instead of WAKViewPrivate.h.
3205
3206         * platform/ios/wak/WAKViewPrivate.h:
3207         Import WKViewPrivate.h.
3208
3209 2014-04-23  David Hyatt  <hyatt@apple.com>
3210
3211         [New Multicolumn] fast/multicol/fixed-column-percent-logical-height-orthogonal-writing-mode.html fails
3212         https://bugs.webkit.org/show_bug.cgi?id=132078
3213
3214         Reviewed by Anders Carlsson.
3215
3216         * rendering/RenderBox.cpp:
3217         (WebCore::RenderBox::skipContainingBlockForPercentHeightCalculation):
3218         Add a parameter to test for orthogonal writing modes. If we're perpendicular,
3219         then we should not skip the flow thread, since we resolve relative to the column width,
3220         and that is always set.
3221
3222         (WebCore::RenderBox::computePercentageLogicalHeight):
3223         Patched to pass in whether or not the box and the ancestor block are perpendicular.
3224
3225         * rendering/RenderBox.h:
3226         Patched the signature of skipContainingBlockForPercentHeightCalculation
3227
3228 2014-04-23  Myles C. Maxfield  <mmaxfield@apple.com>
3229
3230         [OS X] Make checking if a font is the system font more robust
3231         https://bugs.webkit.org/show_bug.cgi?id=132030
3232
3233         Reviewed by Dean Jackson.
3234
3235         Instead of inspecting a font's name to determine if it is a system font,
3236         on OS X we can ask the system directly.
3237
3238         This patch also moves a platform-specific check into platform-specific
3239         code, so that other platforms don't check for OS X-specific behavior.
3240
3241         Covered by existing tests.
3242
3243         * platform/graphics/Font.cpp:
3244         (WebCore::Font::hasValidAverageCharWidth):
3245         * platform/graphics/Font.h:
3246         * platform/graphics/mac/FontMac.mm:
3247         (WebCore::Font::primaryFontDataIsSystemFont):
3248
3249 2014-04-23  David Hyatt  <hyatt@apple.com>
3250
3251         [New Multicolumn] Assertion failure in huge-column-count.html
3252         https://bugs.webkit.org/show_bug.cgi?id=132071
3253
3254         Reviewed by Dean Jackson.
3255
3256         * rendering/RenderBlock.cpp:
3257         (WebCore::RenderBlock::regionAtBlockOffset):
3258         Back out this change, since it wasn't general enough.
3259
3260         * rendering/RenderFlowThread.cpp:
3261         (WebCore::RenderFlowThread::getRegionRangeForBox):
3262         The real issue was that this loop needed to consider the actual box
3263         rather than starting from the parent. This was a non-issue for normal
3264         regions (which cannot have nested flow threads), but for columns, you 
3265         have to consider the fact that the box could itself be a flow thread.
3266
3267 2014-04-23  Andreas Kling  <akling@apple.com>
3268
3269         [iOS] Memory pressure notification should fire on main thread.
3270         <https://webkit.org/b/132074>
3271
3272         Rejig the memory pressure notification to fire on the main queue
3273         directly instead of rerouting it manually.
3274
3275         Reviewed by Mark Rowe.
3276
3277         * platform/cocoa/MemoryPressureHandlerCocoa.mm:
3278         (WebCore::MemoryPressureHandler::install):
3279
3280 2014-04-23  Commit Queue  <commit-queue@webkit.org>
3281
3282         Unreviewed, rolling out r167720.
3283         https://bugs.webkit.org/show_bug.cgi?id=132075
3284
3285         broke eight newmulticol tests (Requested by thorton on
3286         #webkit).
3287
3288         Reverted changeset:
3289
3290         "[New Multicolumn] Assertion failure in huge-column-
3291         count.html"
3292         https://bugs.webkit.org/show_bug.cgi?id=132071
3293         http://trac.webkit.org/changeset/167720
3294
3295 2014-04-23  David Hyatt  <hyatt@apple.com>
3296
3297         [New Multicolumn] Assertion failure in huge-column-count.html
3298         https://bugs.webkit.org/show_bug.cgi?id=132071
3299
3300         Reviewed by Dean Jackson.
3301
3302         * rendering/RenderBlock.cpp:
3303         (WebCore::RenderBlock::regionAtBlockOffset):
3304         Remove the code that returned 0 here, since we're going to patch a lower-level
3305         function to catch all cases.
3306
3307         * rendering/RenderFlowThread.cpp:
3308         (WebCore::RenderFlowThread::getRegionRangeForBox):
3309         Don't allow in-flow RenderFlowThreads to ever have a region range. The sets
3310         are what should have ranges... the flow thread needs to just be ignored.
3311
3312 2014-04-23  David Hyatt  <hyatt@apple.com>
3313
3314         [New Multicolumn] Crasher when clearing out a flow thread in multicolumn layout.
3315         https://bugs.webkit.org/show_bug.cgi?id=132069
3316
3317         Reviewed by Dean Jackson.
3318
3319         This is imported from a patch Morten did for Blink, but I had to change it a fair
3320         bit. deleteLines() is used to handle simple line box layout instead of just calling
3321         deleteLineBoxTree.
3322         
3323         I also had to disable the layout state to stop asserts on repaint when the children
3324         get moved. Not sure why Blink didn't hit this, but it's simple enough to add a
3325         LayoutStateDisabler to stop the assert.
3326
3327         Added fast/multicol/inline-children-crash.html
3328
3329         * rendering/RenderMultiColumnFlowThread.cpp:
3330         (WebCore::RenderMultiColumnFlowThread::evacuateAndDestroy):
3331
3332 2014-04-23  Andreas Kling  <akling@apple.com>
3333
3334         [iOS WebKit2] IOSurfacePool should force CA to actually garbage collect surfaces.
3335         <https://webkit.org/b/132065>
3336         <rdar://problem/16110687>
3337
3338         Add a platformGarbageCollectNow() helper function to IOSurfacePool that
3339         triggers a sweep of the IOSurfaces. Call this from collectionTimerFired()
3340         and discardAllSurfaces().
3341
3342         This lets us drop all otherwise-unused 420f surfaces on memory pressure.
3343
3344         Reviewed by Tim Horton.
3345
3346         * WebCore.xcodeproj/project.pbxproj:
3347         * platform/graphics/cg/IOSurfacePool.cpp:
3348         (WebCore::IOSurfacePool::collectionTimerFired):
3349         (WebCore::IOSurfacePool::discardAllSurfaces):
3350         * platform/graphics/cg/IOSurfacePool.h:
3351         * platform/graphics/cocoa/IOSurfacePoolCocoa.mm: Added.
3352         (WebCore::IOSurfacePool::platformGarbageCollectNow):
3353
3354 2014-04-23  Morten Stenshorne  <mstensho@opera.com>
3355
3356         REGRESSION (Safari 6 - ToT): Incorrectly assumes that RenderStyle data can be shared
3357         https://bugs.webkit.org/show_bug.cgi?id=113058
3358
3359         Reviewed by David Hyatt.
3360
3361         Before sharing CSS properties with an element in the cache, we need to
3362         check that the new element is suitable for this, just like we check
3363         elements before inserting them into the cache.
3364
3365         Test: fast/css/identical-logical-height-decl.html
3366
3367         * css/StyleResolver.cpp:
3368         (WebCore::StyleResolver::applyMatchedProperties):
3369
3370 2014-04-23  Commit Queue  <commit-queue@webkit.org>
3371
3372         Unreviewed, rolling out r167713.
3373         https://bugs.webkit.org/show_bug.cgi?id=132070
3374
3375         broke hundreds of tests (Requested by thorton on #webkit).
3376
3377         Reverted changeset:
3378
3379         "[OS X] Make checking if a font is the system font more
3380         robust"
3381         https://bugs.webkit.org/show_bug.cgi?id=132030
3382         http://trac.webkit.org/changeset/167713
3383
3384 2014-04-22  David Hyatt  <hyatt@apple.com>
3385
3386         [New Multicolumn] Nested columns not working at all.
3387         https://bugs.webkit.org/show_bug.cgi?id=131805
3388
3389         Reviewed by Dean Jackson.
3390
3391         Add support for nested pagination contexts, allowing for an arbitrary level
3392         of nesting of multicolumn layouts. There were a number of things that had to
3393         be patched in order for this to work.
3394
3395         * rendering/RenderBlock.cpp:
3396         (WebCore::RenderBlock::regionAtBlockOffset):
3397         Make sure RenderMultiColumnFlowThreads just return null for regions at any
3398         block offset. Individual region sets will be created as you cross ancestor
3399         regions eventually, so this is just getting in the way.
3400
3401         * rendering/RenderLayer.cpp:
3402         (WebCore::RenderLayer::enclosingPaginationLayerInSubtree):
3403         Add a new helper method for obtaining an enclosingPaginationLayer when
3404         constrained by some root. This function ensures you don't accidentally
3405         cross your subtree root when looking for enclosing pagination layers.
3406
3407         (WebCore::RenderLayer::collectFragments):
3408         Patch collectFragments to know how to recur to collect ancestor fragments
3409         in order to apply nested splitting as you cross pagination boundaries.
3410
3411         (WebCore::RenderLayer::updatePaintingInfoForFragments):
3412         (WebCore::RenderLayer::calculateClipRects):
3413         * rendering/RenderLayer.h:
3414         (WebCore::LayerFragment::LayerFragment):
3415         (WebCore::LayerFragment::setRects):
3416         (WebCore::LayerFragment::moveBy):
3417         (WebCore::LayerFragment::intersect):
3418         Improve the LayerFragment so that it caches transformed bounding boxes as
3419         well. This is needed to fix intersectsDamageRect so that it doesn't grab
3420         the wrong bounding box when checking inline layers that are paginated.
3421
3422         * rendering/RenderMultiColumnFlowThread.cpp:
3423         (WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
3424         Ignore inserted flow threads inside an ancestor flow thread, since we only
3425         care about what the sets do.
3426         
3427         * rendering/RenderObject.cpp:
3428         (WebCore::RenderObject::insertedIntoTree):
3429         Make sure that nested flow thread layers return themselves when a child
3430         is inserted directly under them.
3431
3432 2014-04-22  Myles C. Maxfield  <mmaxfield@apple.com>
3433
3434         [OS X] Make checking if a font is the system font more robust
3435         https://bugs.webkit.org/show_bug.cgi?id=132030
3436
3437         Reviewed by Dean Jackson.
3438
3439         Instead of inspecting a font's name to determine if it is a system font,
3440         on OS X we can ask the system directly.
3441
3442         This patch also moves a platform-specific check into platform-specific