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