1 2014-04-29 Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com>
3 Move removeEquivalentProperties functions to EditingStyle
4 https://bugs.webkit.org/show_bug.cgi?id=131093
6 Reviewed by Darin Adler.
8 Moved the removeEquivalentProperties functions
9 from StyleProperties to EditingStyle class.
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:
22 2014-04-29 David Hyatt <hyatt@apple.com>
24 [New Multicolumn] Implement support for compositing
25 https://bugs.webkit.org/show_bug.cgi?id=132298
27 Reviewed by Simon Fraser.
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.
34 * rendering/RenderLayerBacking.cpp:
35 (WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread):
36 Make sure this code only runs for named flow threads.
38 * rendering/RenderLayerCompositor.cpp:
39 (WebCore::RenderLayerCompositor::canBeComposited):
40 Turn on compositing support for in-flow RenderFlowThreads instead of always returning
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.
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.
55 (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
56 Don't factor in the overall flow thread portion, since this is handled by the callers
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.
65 2014-04-29 Mark Hahnenberg <mhahnenberg@apple.com>
67 JSProxies should be cacheable
68 https://bugs.webkit.org/show_bug.cgi?id=132351
70 Reviewed by Geoffrey Garen.
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.
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.
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.
84 * bindings/js/JSDOMWindowShell.h:
85 (WebCore::JSDOMWindowShell::createStructure):
87 2014-04-29 Brent Fulgham <bfulgham@apple.com>
89 [Mac, iOS] Support caption activation via JS webkitHasClosedCaptions method
90 https://bugs.webkit.org/show_bug.cgi?id=132320
92 Reviewed by Eric Carlson.
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:
107 2014-04-28 Roger Fong <roger_fong@apple.com>
109 Plugins hidden by images should autoplay.
110 https://bugs.webkit.org/show_bug.cgi?id=132222.
111 <rdar://problem/16653536>
113 Reviewed by Jon Lee and Darin Adler.
115 * WebCore.exp.in: Add exports needed by WK2.
117 2014-04-29 Filip Pizlo <fpizlo@apple.com>
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
122 Rubber stamped by Geoffrey Garen.
124 It already has a lot of tests.
126 * Configurations/FeatureDefines.xcconfig:
128 2014-04-29 Brady Eidson <beidson@apple.com>
130 Change Image Controls replacement to use selection and paste
131 <rdar://problem/16302722> and https://bugs.webkit.org/show_bug.cgi?id=131992
133 Reviewed by Tim Horton.
135 * WebCore.exp.in: Remove deleted symbol.
137 * html/shadow/mac/ImageControlsButtonElementMac.cpp:
138 (WebCore::ImageControlsButtonElementMac::defaultEventHandler):
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:
146 2014-04-29 Jer Noble <jer.noble@apple.com>
148 [iOS] Remove workaround for <rdar://problem/16578727>.
149 https://bugs.webkit.org/show_bug.cgi?id=132338
151 Reviewed by Darin Adler.
153 Now that <rdar://problem/16578727> is fixed, remove the workaround by replacing the
154 call to -_updatePlaybackControlsViewController with one to -layoutIfNeeded.
156 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
157 (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
159 2014-04-29 Zan Dobersek <zdobersek@igalia.com>
161 ScriptExecutionContext::Task should work well with C++11 lambdas
162 https://bugs.webkit.org/show_bug.cgi?id=129795
164 Reviewed by Darin Adler.
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.
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.
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.
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.
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.
372 2014-04-29 Manuel Rego Casasnovas <rego@igalia.com>
374 REGRESSION (r167879): Heap-use-after-free in WebCore::RenderFlexibleBox
375 https://bugs.webkit.org/show_bug.cgi?id=132337
377 Reviewed by Simon Fraser.
379 From Blink r154582 by <jchaffraix@chromium.org>
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.
386 The solution is simple: just clear the memory when we remove a child.
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.
392 Test: fast/flexbox/order-iterator-crash.html
394 * rendering/OrderIterator.cpp:
395 (WebCore::OrderIterator::invalidate): Clear m_children Vector.
396 * rendering/OrderIterator.h:
397 (WebCore::OrderIteratorPopulator::OrderIteratorPopulator): Use
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.
406 2014-04-29 Enrica Casucci <enrica@apple.com>
408 iOS build fix after http://trac.webkit.org/changeset/167937.
411 * rendering/RenderThemeIOS.mm:
412 (WebCore::RenderThemeIOS::adjustButtonStyle):
414 2014-04-29 Hans Muller <hmuller@adobe.com>
416 [CSS Shapes] off-by-one error in Shape::createRasterShape()
417 https://bugs.webkit.org/show_bug.cgi?id=132154
419 Reviewed by Bem Jones-Bey.
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
429 Two existing tests were revised to account for this change.
431 * rendering/shapes/RasterShape.cpp:
432 (WebCore::RasterShape::getExcludedIntervals):
433 * rendering/shapes/Shape.cpp:
434 (WebCore::Shape::createRasterShape):
436 2014-04-29 Bem Jones-Bey <bjonesbe@adobe.com>
438 Wrap CSS length conversion arguments in an object
439 https://bugs.webkit.org/show_bug.cgi?id=131552
441 Reviewed by Andreas Kling.
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
451 Note that the zoom argument, which was previously a float in some
452 places and a double in others is now a float.
454 This is a port of a Blink patch by timloh@chromium.org.
456 No new tests, no behavior change.
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):
591 2014-04-29 Zoltan Horvath <zoltan@webkit.org>
593 [CSS Shapes] complex calc args for inset round vanish
594 https://bugs.webkit.org/show_bug.cgi?id=132293
596 Reviewed by Bem Jones-Bey.
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.
603 I've added new parsing test.
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):
615 2014-04-29 Zoltan Horvath <zoltan@webkit.org>
617 [CSS Shapes] complex calc values for shape-margin return null for computed style
618 https://bugs.webkit.org/show_bug.cgi?id=132313
620 Reviewed by Bem Jones-Bey.
622 We need to pass RenderStyle* to the cssValuePool when parsing
623 shape-margin in order to use calc() as a parameter.
625 I've added the new test case to parsing-shape-margin.html
627 * css/CSSComputedStyleDeclaration.cpp:
628 (WebCore::ComputedStyleExtractor::propertyValue):
630 2014-04-29 Chris Fleizach <cfleizach@apple.com>
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
635 Reviewed by Mario Sanchez Prada.
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.
641 Test: accessibility/table-with-footer-section-above-body.html
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):
654 2014-04-29 Chris Fleizach <cfleizach@apple.com>
656 AX: SpeechSynthesisUtterance cannot addEventListener
657 https://bugs.webkit.org/show_bug.cgi?id=132321
659 Reviewed by Mario Sanchez Prada.
661 Modified an existing test (speech-synthesis-speak.html) to use addEventTarget.
663 * Modules/speech/SpeechSynthesisUtterance.idl:
665 2014-04-29 Hans Muller <hmuller@adobe.com>
667 [CSS Shapes] shape-outside polygon fails when first vertex is 0,0
668 https://bugs.webkit.org/show_bug.cgi?id=132132
670 Reviewed by Bem Jones-Bey.
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.
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
682 Test: fast/shapes/shape-outside-floats/shape-outside-polygon-zero-vertex.html
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):
700 2014-04-29 Andrei Bucur <abucur@adobe.com>
702 [CSS Regions] Fix getClientRects() for content nodes
703 https://bugs.webkit.org/show_bug.cgi?id=117407
705 Reviewed by David Hyatt.
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.
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
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
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):
759 2014-04-29 Andrei Bucur <abucur@adobe.com>
761 Store the containing region map inside the flow thread
762 https://bugs.webkit.org/show_bug.cgi?id=131647
764 Reviewed by Mihnea Ovidenie.
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
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.
773 Test: fast/regions/inline-strike-through.html
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):
794 2014-04-28 Benjamin Poulain <benjamin@webkit.org>
796 SelectorCodeGenerator::generateElementIsNthChild() leaks the parent register :nth-child() is non-filtering
797 https://bugs.webkit.org/show_bug.cgi?id=132311
799 Reviewed by Andreas Kling.
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).
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.
808 Test: fast/selectors/several-nth-child.html
810 * cssjit/SelectorCompiler.cpp:
811 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
813 2014-04-28 Yusuke Suzuki <utatane.tea@gmail.com>
815 CSS JIT: backtracking with current / parent element for child
816 https://bugs.webkit.org/show_bug.cgi?id=132057
818 Reviewed by Benjamin Poulain.
820 Calculate appropriate backtracking start height from the closest
821 descendant. And at first, we use it for a simple optimization.
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.
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
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):
853 2014-04-28 Benjamin Poulain <bpoulain@apple.com>
855 [iOS][WK2] Restore the scroll position and scale from the HistoryItem (mostly)
856 https://bugs.webkit.org/show_bug.cgi?id=132307
858 Reviewed by Simon Fraser.
862 2014-04-28 Beth Dakin <bdakin@apple.com>
864 Scrollbars do not update properly when topContentInset changes dynamically
865 https://bugs.webkit.org/show_bug.cgi?id=132309
867 <rdar://problem/16642232>
869 Reviewed by Tim Horton.
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):
877 2014-04-28 David Hyatt <hyatt@apple.com>
879 [New Multicolumn] event.offsetX/offsetY don't work correctly
880 https://bugs.webkit.org/show_bug.cgi?id=132284
882 Reviewed by Simon Fraser.
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
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
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.
901 2014-04-28 Commit Queue <commit-queue@webkit.org>
903 Unreviewed, rolling out r167857.
904 https://bugs.webkit.org/show_bug.cgi?id=132305
906 the change was rolled out, roll out the new expectations as
907 well (Requested by thorton on #webkit).
911 "Unreviewed. Updating one bindings test baseline after
913 http://trac.webkit.org/changeset/167857
915 2014-04-28 Dean Jackson <dino@apple.com>
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>
921 Reviewed by Beth Dakin.
923 Like setState, there is an animated version of setHighlighted available.
925 * platform/mac/ThemeMac.mm:
926 (WebCore::updateStates): Use private version of _setHighlighted where possible.
928 2014-04-28 Commit Queue <commit-queue@webkit.org>
930 Unreviewed, rolling out r167855.
931 https://bugs.webkit.org/show_bug.cgi?id=132301
933 Broke the windows build (Requested by bfulgham on #webkit).
937 "ScriptExecutionContext::Task should work well with C++11
939 https://bugs.webkit.org/show_bug.cgi?id=129795
940 http://trac.webkit.org/changeset/167855
942 2014-04-24 Andy Estes <aestes@apple.com>
944 [iOS] Implement WebQuickLookHandleClient for WebKit2
945 https://bugs.webkit.org/show_bug.cgi?id=132157
947 Reviewed by Darin Adler.
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.
955 2014-04-28 Chris Fleizach <cfleizach@apple.com>
957 REGRESSION: Intermittent crash in SpeechSynthesis::didFinishSpeaking
958 https://bugs.webkit.org/show_bug.cgi?id=111613
960 Reviewed by Mark Lam.
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.
965 * platform/mock/PlatformSpeechSynthesizerMock.cpp:
966 (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
968 2014-04-28 Commit Queue <commit-queue@webkit.org>
970 Unreviewed, rolling out r167871.
971 https://bugs.webkit.org/show_bug.cgi?id=132290
973 broke a newmulticol test (spanner-nested-dynamic) (Requested
974 by thorton on #webkit).
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
982 2014-04-28 Commit Queue <commit-queue@webkit.org>
984 Unreviewed, rolling out r167853.
985 https://bugs.webkit.org/show_bug.cgi?id=132288
987 caused crashes+timeouts+layout test failures described in the
988 bug (Requested by thorton on #webkit).
992 "Coalesce responses on network process side"
993 https://bugs.webkit.org/show_bug.cgi?id=132229
994 http://trac.webkit.org/changeset/167853
996 2014-04-24 Simon Fraser <simon.fraser@apple.com>
998 [iOS WK2] flickery scrolling with overflow-scrolling:touch
999 https://bugs.webkit.org/show_bug.cgi?id=132150
1001 Reviewed by Tim Horton.
1003 Fix typo in a comment.
1005 * page/scrolling/AsyncScrollingCoordinator.cpp:
1006 (WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):
1008 2014-04-28 Martin Robinson <mrobinson@igalia.com>
1010 [GTK] Builtin cursors do not properly handle transparency
1011 https://bugs.webkit.org/show_bug.cgi?id=131866
1013 Reviewed by Gustavo Noronha Silva.
1015 Tested by ManualTests/cursor.html.
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.
1025 2014-04-28 Carlos Garcia Campos <cgarcia@igalia.com>
1027 Unreviewed. Update GObject DOM bindings symbols file.
1029 * bindings/gobject/webkitdom.symbols: Add missing symbols.
1031 2014-04-28 Manuel Rego Casasnovas <rego@igalia.com>
1033 OrderIterator refactoring to avoid extra loops
1034 https://bugs.webkit.org/show_bug.cgi?id=119061
1036 Reviewed by Darin Adler.
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.
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>.
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
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.
1055 No new tests, already covered by current tests.
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().
1082 2014-04-28 Zan Dobersek <zdobersek@igalia.com>
1084 std::bitset<>::test() does unnecessary bounds checks on CSSPropertyID bitsets
1085 https://bugs.webkit.org/show_bug.cgi?id=131685
1087 Reviewed by Darin Adler.
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.
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):
1100 2014-04-28 Carlos Garcia Campos <cgarcia@igalia.com>
1102 [GTK] TextTrack kind and mode attributes are enums since r166180
1103 https://bugs.webkit.org/show_bug.cgi?id=132228
1105 Reviewed by Martin Robinson.
1107 Improve coding style according to review comments, that I forgot
1108 to do before landing previous commit.
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):
1115 2014-04-28 Carlos Garcia Campos <cgarcia@igalia.com>
1117 [GTK] TextTrack kind and mode attributes are enums since r166180
1118 https://bugs.webkit.org/show_bug.cgi?id=132228
1120 Reviewed by Martin Robinson.
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.
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:
1134 2014-04-28 Carlos Garcia Campos <cgarcia@igalia.com>
1136 [GTK] TextTrack::addCue can raise an exception since r163974
1137 https://bugs.webkit.org/show_bug.cgi?id=132227
1139 Reviewed by Martin Robinson.
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
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):
1155 2014-04-28 Carlos Garcia Campos <cgarcia@igalia.com>
1157 [GTK] TextTrackCue API changed in r163649
1158 https://bugs.webkit.org/show_bug.cgi?id=132226
1160 Reviewed by Martin Robinson.
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.
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.
1194 2014-04-27 Andrei Bucur <abucur@adobe.com>
1196 Store the containing region map inside the flow thread
1197 https://bugs.webkit.org/show_bug.cgi?id=131647
1199 Reviewed by Mihnea Ovidenie.
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.
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.
1208 Test: fast/regions/inline-strike-through.html
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):
1229 2014-04-27 Darin Adler <darin@apple.com>
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
1235 Reviewed by Andreas Kling.
1237 Test: fast/text/simple-lines-hover-underline.html
1239 Checked that this does not hurt performance by running the
1240 run-perf-tests PerformanceTests/Layout/line-layout.html command before and after.
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.
1256 * rendering/RenderBlockFlow.h: Made simpleLineLayout function no longer an inline.
1257 Added a private createLineBoxes function.
1259 2014-04-27 Praveen R Jadhav <praveen.j@samsung.com>
1261 [MediaStream] .ended shouldn't be part of MediaStream IDL
1262 https://bugs.webkit.org/show_bug.cgi?id=132104
1264 Reviewed by Eric Carlson.
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.
1270 MediaStream-add-remove-tracks.html is updated.
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()
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.
1296 2014-04-25 Andy Estes <aestes@apple.com>
1298 [iOS] Stop creating a WKWebResourceQuickLookDelegate for every WebResourceLoader
1299 https://bugs.webkit.org/show_bug.cgi?id=132215
1301 Reviewed by Dan Bernstein.
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.
1308 2014-04-27 Sam Weinig <sam@webkit.org>
1310 [iOS WebKit2] Add support for text autosizing
1311 <rdar://problem/16545245>
1312 https://bugs.webkit.org/show_bug.cgi?id=132237
1314 Reviewed by Tim Horton.
1316 Move text autosizing width from Frame to Page, as it is a Page level concept.
1320 (WebCore::Frame::textAutosizingWidth): Deleted.
1321 (WebCore::Frame::setTextAutosizingWidth): Deleted.
1323 * page/FrameView.cpp:
1324 (WebCore::FrameView::layout):
1326 (WebCore::Page::Page):
1328 (WebCore::Page::textAutosizingWidth):
1329 (WebCore::Page::setTextAutosizingWidth):
1331 2014-04-27 Zan Dobersek <zdobersek@igalia.com>
1333 Unreviewed. Updating one bindings test baseline after r167855.
1335 * bindings/scripts/test/JS/JSTestCallback.cpp:
1336 (WebCore::JSTestCallback::~JSTestCallback):
1338 2014-04-27 Darin Adler <darin@apple.com>
1340 Webpages can trigger loads with invalid URLs
1341 https://bugs.webkit.org/show_bug.cgi?id=132224
1342 rdar://problem/16697142
1344 Reviewed by Alexey Proskuryakov.
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.
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.
1355 * loader/NavigationScheduler.cpp:
1356 (WebCore::ScheduledURLNavigation::ScheduledURLNavigation): Take a URL rather
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.
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.
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.
1382 * page/SecurityOrigin.cpp:
1383 (WebCore::SecurityOrigin::urlWithUniqueSecurityOrigin): Return a URL instead
1385 * page/SecurityOrigin.h: Updated for above change.
1387 2014-04-27 Zan Dobersek <zdobersek@igalia.com>
1389 ScriptExecutionContext::Task should work well with C++11 lambdas
1390 https://bugs.webkit.org/show_bug.cgi?id=129795
1392 Reviewed by Darin Adler.
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.
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.
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.
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.
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.
1598 2014-04-27 Antti Koivisto <antti@apple.com>
1600 Coalesce responses on network process side
1601 https://bugs.webkit.org/show_bug.cgi?id=132229
1603 Reviewed by Andreas Kling.
1607 2014-04-27 David Kilzer <ddkilzer@apple.com>
1609 Roll out changes not part of the patch reviewed for Bug 132089
1610 <http://webkit.org/b/132089>
1612 * loader/SubframeLoader.cpp:
1613 (WebCore::SubframeLoader::loadOrRedirectSubframe):
1614 * page/DOMWindow.cpp:
1615 (WebCore::DOMWindow::setLocation):
1616 (WebCore::DOMWindow::createWindow):
1617 (WebCore::DOMWindow::open):
1619 2014-04-26 Darin Adler <darin@apple.com>
1621 Frame and page lifetime fixes in WebCore::createWindow
1622 https://bugs.webkit.org/show_bug.cgi?id=132089
1624 Reviewed by Sam Weinig.
1626 Speculative fix because I was unable to reproduce the crash that was
1627 reported with the test case attached to this bug.
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
1635 2014-04-26 Alexey Proskuryakov <ap@apple.com>
1637 Local files should not be allowed to read pasteboard data during drag
1638 https://bugs.webkit.org/show_bug.cgi?id=131767
1640 Reviewed by Sam Weinig.
1642 Test: fast/files/local-file-drag-security.html
1644 * page/DragController.cpp:
1645 (WebCore::DragController::dragExited):
1646 (WebCore::DragController::tryDHTMLDrag):
1647 Make an old Dashboard quirk really Dashboard only.
1649 2014-04-24 Darin Adler <darin@apple.com>
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
1655 Reviewed by Brent Fulgham.
1657 Tests: fast/dynamic/remove-invisible-node-inside-selection.html
1658 fast/dynamic/remove-node-inside-selection.html
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.
1670 2014-04-25 Ryosuke Niwa <rniwa@webkit.org>
1672 REGRESSION (r167689): Hovering file name in a file input causes a crash
1673 https://bugs.webkit.org/show_bug.cgi?id=132214
1675 Reviewed by Andreas Kling.
1677 The bug was caused by callDefaultEventHandlersInTheBubblingOrder unconditionally
1678 accessing path.contextAt(0) even if the event path was empty.
1680 Fixed the bug by exiting early when the event path is empty.
1682 Test: fast/events/shadow-event-path-2.html
1684 * dom/EventDispatcher.cpp:
1685 (WebCore::callDefaultEventHandlersInTheBubblingOrder):
1687 2014-04-25 Tim Horton <timothy_horton@apple.com>
1689 REGRESSION (r167828): http/tests/media/hls/video-controls-live-stream.html fails
1691 * English.lproj/mediaControlsLocalizedStrings.js:
1692 Add 'Live Broadcast' to the localized strings list.
1694 2014-04-25 Brady Eidson <beidson@apple.com>
1696 Add a selection overlay.
1697 <rdar://problem/16727797> and https://bugs.webkit.org/show_bug.cgi?id=132200
1699 Reviewed by David Hyatt.
1701 No new tests (WK2 feature in development).
1703 * WebCore.xcodeproj/project.pbxproj:
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.
1717 * page/EditorClient.h:
1718 (WebCore::EditorClient::selectionRectsDidChange):
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:
1727 2014-04-08 Jer Noble <jer.noble@apple.com>
1729 Support "Live" streams in media controls.
1730 https://bugs.webkit.org/show_bug.cgi?id=131390
1732 Reviewed by Brent Fulgham.
1734 Test: http/tests/media/hls/video-controls-live-stream.html
1736 Support "Live" streams by adding an isLive property to our media controls.
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.
1756 2014-04-25 Dean Jackson <dino@apple.com>
1758 Allow a platform-specific size enumeration to be passed into popup-menu display
1759 https://bugs.webkit.org/show_bug.cgi?id=132195
1761 Reviewed by Brent Fulgham. With some in-person review comments from Sam Weinig.
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.
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
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.
1788 2014-04-25 Javier Fernandez <jfernandez@igalia.com>
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
1793 Reviewed by Martin Robinson.
1795 Properly resolving the grid-template shorthand for the corresponding longhand
1798 No new tests, grid-template-shorthand-get-set.html already covers this case.
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):
1808 2014-04-25 David Hyatt <hyatt@apple.com>
1810 Column rules not respecting scroll offsets.
1811 https://bugs.webkit.org/show_bug.cgi?id=109683
1813 Reviewed by Dean Jackson.
1815 Added fast/multicol/scrolling-column-rules.html
1817 * rendering/RenderBlock.cpp:
1818 (WebCore::RenderBlock::paintColumnRules):
1819 Make paintColumnRules virtual so that it works with both column implementations.
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.
1825 * rendering/RenderBlock.h:
1826 paintColumnRules is now virtual.
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.
1835 2014-04-23 Jon Honeycutt <jhoneycutt@apple.com>
1837 Crash applying editing commands from iframe onload event
1839 <https://bugs.webkit.org/show_bug.cgi?id=132103>
1840 <rdar://problem/15696351>
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().
1846 Reviewed by Darin Adler.
1848 Test: editing/apply-style-iframe-crash.html
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.
1857 2014-04-25 David Hyatt <hyatt@apple.com>
1859 [New Multicolumn] fast/multicol/hit-test-* layout tests all fail
1860 https://bugs.webkit.org/show_bug.cgi?id=132081
1862 Reviewed by Dean Jackson.
1864 Added a bunch of tests in fast/multicol/newmulticol/compare-with-old-impl/hit-test-*.html
1866 * rendering/RenderBlock.h:
1867 Make offsetForContents public, since I need to call it from RenderMultiColumnSet.
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.
1874 * rendering/RenderMultiColumnSet.cpp:
1875 (WebCore::RenderMultiColumnSet::positionForPoint):
1876 Refactor this function to call a helper function instead, translateRegionPointToFlowThread.
1878 (WebCore::RenderMultiColumnSet::translateRegionPointToFlowThread):
1879 This function is logical (unlike the mistaken physical function I first implemented in
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.
1888 2014-04-25 Andreas Kling <akling@apple.com>
1890 Mark some things with WTF_MAKE_FAST_ALLOCATED.
1891 <https://webkit.org/b/132198>
1893 Use FastMalloc for more things.
1895 Reviewed by Anders Carlsson.
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:
1915 * page/scrolling/ScrollingStateNode.h:
1916 * platform/graphics/FontGenericFamilies.h:
1917 * platform/graphics/FontPlatformData.h:
1919 2014-04-25 Radu Stavila <stavila@adobe.com>
1921 [CSS Regions] Rename objectShouldPaintInFlowRegion to something more clear
1922 https://bugs.webkit.org/show_bug.cgi?id=132050
1924 Reviewed by Andreas Kling.
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).
1929 No new tests required, it's just a method rename.
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):
1949 2014-04-25 Enrica Casucci <enrica@apple.com>
1951 iOS build fix after http://trac.webkit.org/changeset/167803
1955 (WebCore::Frame::checkOverflowScroll):
1956 * rendering/RenderBlock.cpp:
1957 (WebCore::positionForPointRespectingEditingBoundaries):
1959 2014-04-24 David Hyatt <hyatt@apple.com>
1961 [New Multicolumn] Add support for offsetLeft and offsetTop.
1962 https://bugs.webkit.org/show_bug.cgi?id=132080
1964 Reviewed by Andrei Bucur.
1966 Added fast/multicol/client-spanners-complex.html and offset-top-left.html
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.
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.
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.
1984 * rendering/RenderMultiColumnSet.cpp:
1985 (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
1986 Patched to factor in the flow thread portion rect of the specific multicolumn set.
1988 * rendering/RenderObject.h:
1989 (WebCore::RenderObject::isRenderMultiColumnFlowThread):
1990 Added for toRenderMultiColumnFlowThread capability.
1992 2014-04-25 Brent Fulgham <bfulgham@apple.com>
1994 ScrollingCoordinator is unaware of topContentInset
1995 https://bugs.webkit.org/show_bug.cgi?id=132158
1996 <rdar://problem/16706152>
1998 Reviewed by Darin Adler.
2000 Test: platform/mac/fast/scrolling/scroll-select-bottom-test.html
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
2010 * page/scrolling/ScrollingCoordinator.cpp:
2011 (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion): Also
2012 include the topContentInset value in our calculation.
2014 2014-04-25 Javier Fernandez <jfernandez@igalia.com>
2016 REGRESSION(r167799): Breaks debug build
2017 https://bugs.webkit.org/show_bug.cgi?id=132194
2019 Reviewed by Andrei Bucur.
2021 Fix the debug bots after r167799
2023 No new tests, no new functionality.
2025 * css/CSSParser.cpp:
2026 (WebCore::CSSParser::parseGridTemplateShorthand):
2028 2014-04-25 Miyoung Shin <myid.shin@samsung.com>
2030 Web process is crashed during dispatching touchEvent created by JS.
2031 https://bugs.webkit.org/show_bug.cgi?id=113225
2033 Reviewed by Benjamin Poulain.
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.
2039 Test: fast/events/touch/create-touch-event-without-touchList.html
2041 * dom/EventDispatcher.cpp:
2042 (WebCore::EventDispatcher::dispatchEvent):
2043 (WebCore::EventPath::updateTouchLists):
2044 (WebCore::addRelatedNodeResolversForTouchList): Deleted.
2046 2014-04-25 Philippe Normand <pnormand@igalia.com>
2048 [GTK] File webkitRelativePath attribute was removed in r163483
2049 https://bugs.webkit.org/show_bug.cgi?id=132193
2051 Reviewed by Carlos Garcia Campos.
2053 Add the removed getter as deprecated API to keep backwards compatibility.
2055 * bindings/gobject/WebKitDOMDeprecated.cpp:
2056 (webkit_dom_file_get_webkit_relative_path):
2057 * bindings/gobject/WebKitDOMDeprecated.h:
2058 * bindings/gobject/WebKitDOMDeprecated.symbols:
2060 2014-04-25 Radu Stavila <stavila@adobe.com>
2062 [CSS Regions] Overflow selection doesn't work properly
2063 https://bugs.webkit.org/show_bug.cgi?id=130715
2065 Reviewed by David Hyatt.
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.
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
2075 * accessibility/AccessibilityRenderObject.cpp:
2076 (WebCore::AccessibilityRenderObject::visiblePositionRangeForLine):
2077 (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
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):
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:
2141 2014-04-25 Philippe Normand <pnormand@igalia.com>
2143 [GTK] Iframe seamless support was removed in r163427
2144 https://bugs.webkit.org/show_bug.cgi?id=132192
2146 Reviewed by Carlos Garcia Campos.
2148 Add the removed get and set methods as deprecated API to keep
2149 backwards compatibility.
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:
2158 2014-04-25 Philippe Normand <pnormand@igalia.com>
2160 [GTK] HTMLInputElement webkitdirectory property was removed in r163483
2161 https://bugs.webkit.org/show_bug.cgi?id=132191
2163 Reviewed by Carlos Garcia Campos.
2165 Add the removed get and set methods as deprecated API to keep
2166 backwards compatibility.
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:
2174 2014-04-25 Javier Fernandez <jfernandez@igalia.com>
2176 [CSS Grid Layout] Implementation of the grid-template shorthand.
2177 https://bugs.webkit.org/show_bug.cgi?id=128980
2179 Reviewed by Darin Adler.
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.
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.
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.
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.
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.
2206 Test: fast/css-grid-layout/grid-template-shorthand-get-set.html
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):
2219 * css/CSSParserValues.h:
2220 (WebCore::CSSParserValueList::setCurrentIndex):
2221 * css/CSSPropertyNames.in:
2222 * css/StylePropertyShorthand.cpp:
2223 (WebCore::webkitGridTemplateShorthand):
2224 * css/StylePropertyShorthand.h:
2226 2014-04-25 Andreas Kling <akling@apple.com>
2228 Remove two unused SVGDocument functions.
2229 <https://webkit.org/b/132178>
2231 Reviewed by Antti Koivisto.
2233 * svg/SVGDocument.cpp:
2234 (WebCore::SVGDocument::dispatchZoomEvent): Deleted.
2235 (WebCore::SVGDocument::dispatchScrollEvent): Deleted.
2236 * svg/SVGDocument.h:
2238 2014-04-25 Ion Rosca <rosca@adobe.com>
2240 Incomplete body painting when using blend modes
2241 https://bugs.webkit.org/show_bug.cgi?id=131889
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.
2248 Reviewed by Simon Fraser.
2250 Test: css3/compositing/blend-mode-with-body.html
2252 * rendering/RenderLayer.h:
2253 Changing RenderLayer::paintsWithTransparency so that it will not
2254 return true when the root renderer needs to isolate blending.
2256 2014-04-25 Darin Adler <darin@apple.com>
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
2261 Reviewed by Andreas Kling.
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.
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
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.
2325 * bindings/js/JSDOMGlobalObject.cpp:
2326 (WebCore::JSDOMGlobalObject::visitChildren): Rewrote to use modern for loops.
2328 * bindings/scripts/CodeGeneratorJS.pm:
2329 (GenerateHeader): Generate declaration of visitAdditionalChildren.
2330 (GenerateImplementation): Generate call to visitAdditionalChildren.
2332 2014-04-24 Andreas Kling <akling@apple.com>
2334 [iOS WebKit2] Enable optimization to mmap downloaded resources once they become file-backed.
2335 <https://webkit.org/b/132171>
2336 <rdar://problem/16720733>
2338 Add a missing export for the USE(CFNETWORK) + WebKit2 combo.
2340 Reviewed by Antti Koivisto.
2344 2014-04-24 Darin Adler <darin@apple.com>
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
2350 Reviewed by Brady Eidson.
2352 Couldn't find a way to test this yet. Would be nice to have a test.
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.
2360 2014-04-24 Gyuyoung Kim <gyuyoung.kim@samsung.com>
2362 Mark Supplement instead of RefCountedSupplement in NavigatorContentUtils
2363 https://bugs.webkit.org/show_bug.cgi?id=132151
2365 Reviewed by Darin Adler.
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.
2371 Blink merge from https://src.chromium.org/viewvc/blink?view=rev&revision=171403.
2373 No new tests, no behavior changes.
2375 * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
2376 (WebCore::NavigatorContentUtils::from):
2377 (WebCore::NavigatorContentUtils::create):
2378 (WebCore::provideNavigatorContentUtilsTo):
2379 * Modules/navigatorcontentutils/NavigatorContentUtils.h:
2381 2014-04-24 Commit Queue <commit-queue@webkit.org>
2383 Unreviewed, rolling out r167700.
2384 https://bugs.webkit.org/show_bug.cgi?id=132142
2386 Incorrectly reverted the change in r167547 for
2387 webkit.org/b/131898 (Requested by rniwa on #webkit).
2391 "Cursor doesn't change back to pointer when leaving the Safari
2393 https://bugs.webkit.org/show_bug.cgi?id=132038
2394 http://trac.webkit.org/changeset/167700
2396 2014-04-24 Brady Eidson <beidson@apple.com>
2398 Rename "IMAGE_CONTROLS" feature to "SERVICE_CONTROLS"
2399 https://bugs.webkit.org/show_bug.cgi?id=132155
2401 Reviewed by Tim Horton.
2403 No new tests (No change in behavior).
2405 * Configurations/FeatureDefines.xcconfig:
2406 * DerivedSources.make:
2408 * css/CSSDefaultStyleSheets.cpp:
2409 (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
2410 * css/CSSPrimitiveValueMappings.h:
2411 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2412 * css/CSSValueKeywords.in:
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:
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):
2448 2014-04-24 Timothy Hatcher <timothy@apple.com>
2450 Web Inspector: Restore PageDebuggerAgent::enable / disable
2451 https://bugs.webkit.org/show_bug.cgi?id=132156
2453 Restore functions that were eroniously removed in r167530.
2455 Reviewed by Joseph Pecoraro.
2457 * inspector/PageDebuggerAgent.cpp:
2458 (WebCore::PageDebuggerAgent::enable): Added.
2459 (WebCore::PageDebuggerAgent::disable): Added.
2460 * inspector/PageDebuggerAgent.h:
2462 2014-04-24 Alexey Proskuryakov <ap@apple.com>
2464 Dropzone effects don't work in non-file documents
2465 https://bugs.webkit.org/show_bug.cgi?id=131770
2467 Reviewed by Darin Adler.
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.
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.
2481 (WebCore::createBlobDataForFile):
2482 (WebCore::createBlobDataForFileWithName):
2483 (WebCore::File::contentTypeFromFilePath):
2484 (WebCore::getContentTypeFromFileName): Deleted.
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.
2490 * page/EventHandler.cpp:
2491 (WebCore::hasDropZoneType):
2492 (WebCore::hasFileOfType): Deleted.
2493 (WebCore::hasStringOfType): Deleted.
2495 2014-04-24 Commit Queue <commit-queue@webkit.org>
2497 Unreviewed, rolling out r167441.
2498 https://bugs.webkit.org/show_bug.cgi?id=132152
2500 Caused full screen regressions on vimeo, youtube, and others.
2501 (Requested by jernoble on #webkit).
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
2509 2014-04-24 Adenilson Cavalcanti <cavalcantii@gmail.com>
2511 Unused class forward declarations in Page
2512 https://bugs.webkit.org/show_bug.cgi?id=132141
2514 Reviewed by Benjamin Poulain.
2516 No new tests, no change on behavior.
2520 2014-04-24 Eric Carlson <eric.carlson@apple.com>
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>
2526 Reviewed by Brent Fulgham.
2528 No new tests, the behavior this changes can not be tested with a layout test.
2530 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2531 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2532 (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize
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
2540 (WebCore::assetTrackMetadataKeyNames): Array of AVAssetTrack properties we use.
2542 2014-04-24 Myles C. Maxfield <mmaxfield@apple.com>
2544 Unify platformWidthForGlyph across OS X and iOS
2545 https://bugs.webkit.org/show_bug.cgi?id=132036
2547 Reviewed by Darin Adler.
2549 This patch creates on shared SimpleFontData::platformWidthForGlyph() function for both OS X and iOS.
2551 No new tests are necessary because there should be no behavior changes.
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.
2566 2014-04-24 Zalan Bujtas <zalan@apple.com>
2568 Subpixel rendering: Clipping on text areas when shifted by one device pixel.
2569 https://bugs.webkit.org/show_bug.cgi?id=132008
2571 Reviewed by Darin Adler.
2573 Make RenderTheme paint* functions LayoutRect aware. Textarea is device pixel snapped, while
2574 other theme controls are still on integral size/positions.
2576 Test: fast/forms/hidpi-textarea-on-subpixel-position.html
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):
2598 2014-04-24 Myles C. Maxfield <mmaxfield@apple.com>
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
2603 Reviewed by Tim Horton.
2605 Updates callers to use '.' instead of '->'.
2607 No new tests are necessary because there should be no behavior change.
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):
2656 2014-04-24 Eric Carlson <eric.carlson@apple.com>
2658 [iOS] Manage AudioSession category according to media type
2659 https://bugs.webkit.org/show_bug.cgi?id=132096
2661 Reviewed by Jer Noble.
2663 * WebCore.exp.in: Export setting.
2665 * html/HTMLMediaSession.cpp:
2666 (WebCore::HTMLMediaSession::HTMLMediaSession):
2667 (WebCore::initializeAudioSession): Deleted.
2669 * page/Settings.cpp:
2671 (WebCore::Settings::setShouldManageAudioSession): New.
2672 (WebCore::Settings::shouldManageAudioSession): Ditto.
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.
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.
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.
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.
2701 2014-04-24 David Hyatt <hyatt@apple.com>
2703 [New Multicolumn] Client rects don't work with column spans.
2704 https://bugs.webkit.org/show_bug.cgi?id=132131
2706 Reviewed by Dean Jackson.
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.
2712 Added fast/multicol/client-rects-spanners.html
2714 * rendering/RenderMultiColumnSet.cpp:
2715 (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
2717 2014-04-24 Praveen R Jadhav <praveen.j@samsung.com>
2719 [EFL] WebKit build fails when MEDIA_SOURCE is enabled
2720 https://bugs.webkit.org/show_bug.cgi?id=132118
2722 Reviewed by Brent Fulgham.
2724 Files MediaSourceGStreamer.cpp, SourceBufferPrivateGStreamer.cpp and
2725 WebKitMediaSourceGStreamer.cpp are included for EFL port build.
2727 No new tests. No change in behaviour.
2729 * PlatformEfl.cmake: MediaSourceGStreamer.cpp, SourceBufferPrivateGStreamer.cpp
2730 and WebKitMediaSourceGStreamer.cpp are included for compilation.
2732 2014-04-24 Tamas Gergely <tgergely.u-szeged@partner.samsung.com>
2734 ASSERTION FAILED: !begin.isIndefinite() in WebCore::SVGSMILElement::resolveFirstInterval.
2735 https://bugs.webkit.org/show_bug.cgi?id=131097
2737 Reviewed by Darin Adler.
2739 According to smil animation reference, max attribute cannot be 0.
2741 Test: svg/animations/smil-animation-max-attribute-zero-crash.svg
2743 * svg/animation/SVGSMILElement.cpp:
2744 (WebCore::SVGSMILElement::maxValue):
2745 changed (result < 0) to (result <= 0)
2747 2014-04-24 Ryuan Choi <ryuan.choi@samsung.com>
2749 Remove screenColorProfile()
2750 https://bugs.webkit.org/show_bug.cgi?id=132035
2752 Reviewed by Darin Adler.
2754 Only chromium used screenColorProfile() since r120789.
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.
2770 2014-04-24 Zalan Bujtas <zalan@apple.com>
2772 One more unreviewed build fix after r167755.
2774 * html/shadow/mac/ImageControlsButtonElementMac.cpp:
2775 (WebCore::RenderImageControlsButton::updateLogicalWidth):
2776 (WebCore::RenderImageControlsButton::computeLogicalHeight):
2778 2014-04-24 Zalan Bujtas <zalan@apple.com>
2780 Unreviewed build fix after r167755.
2782 * rendering/RenderThemeMac.h:
2784 2014-04-24 Zalan Bujtas <zalan@apple.com>
2786 Transition RenderTheme API from RenderObject* to const RenderObject&
2787 https://bugs.webkit.org/show_bug.cgi?id=132037
2789 Reviewed by Andreas Kling.
2791 Using const references provides better encapsulation and improve security.
2793 No change in behavior.
2795 * accessibility/AccessibilityObject.cpp:
2796 (WebCore::AccessibilityObject::boundingBoxForQuads):
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):
2953 2014-04-23 Carlos Garcia Campos <cgarcia@igalia.com>
2955 [GTK] HTML Media capture attribute is a boolean since r163958
2956 https://bugs.webkit.org/show_bug.cgi?id=132061
2958 Reviewed by Gustavo Noronha Silva.
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.
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
2973 (GenerateFunction): Use GetEffectiveFunctionName().
2975 2014-04-23 Praveen R Jadhav <praveen.j@samsung.com>
2977 [MediaStream] Implement MediaStream active attribute
2978 https://bugs.webkit.org/show_bug.cgi?id=131973
2980 Reviewed by Eric Carlson.
2982 MediaStream .active attribute are introduced which will replace
2983 .ended attribute. This patch implements the newly introduced attributes.
2985 MediaStream-add-remove-tracks.html is updated to handle this scenario.
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:
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.
3005 2014-04-23 Darin Adler <darin@apple.com>
3007 [Cocoa] fix CF leaks found by code inspection
3008 https://bugs.webkit.org/show_bug.cgi?id=132106
3010 Reviewed by Andreas Kling.
3012 * page/CaptionUserPreferencesMediaAF.cpp:
3013 (WebCore::trackDisplayName): Added a missing adoptCF.
3015 * platform/Language.cpp:
3016 (WebCore::displayNameForLanguageLocale): Added a missing adoptCF.
3018 * platform/graphics/FontPlatformData.cpp:
3019 (WebCore::FontPlatformData::openTypeTable): Added a missing adoptCF.
3021 * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:
3022 (WebCore::InbandTextTrackPrivateAVCF::label): Added two missing adoptCF.
3024 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
3025 (WebCore::AVFWrapper::createImageForTimeInRect): Added two missing adoptCF.
3027 * platform/graphics/cg/PDFDocumentImage.cpp:
3028 (WebCore::PDFDocumentImage::createPDFDocument): Added missing adoptCF.
3030 * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
3031 (WebCore::cascadeToLastResortFontDescriptor): Added two missing adoptCF.
3033 * platform/graphics/mac/FontMac.mm:
3034 (WebCore::Font::primaryFontDataIsSystemFont): Added missing adoptCF.
3036 * platform/graphics/mac/SimpleFontDataMac.mm:
3037 (WebCore::hasCustomTracking): Added missing adoptCF.
3039 * platform/image-decoders/ImageDecoder.h:
3040 (WebCore::ImageDecoder::qcmsOutputDeviceProfile): Added CFRelease.
3042 * plugins/mac/PluginPackageMac.cpp:
3043 (WebCore::readPListFile): Added two missing adoptCF.
3045 2014-04-23 Ryosuke Niwa <rniwa@webkit.org>
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
3050 Address the review comment.
3052 * dom/EventDispatcher.cpp:
3053 (WebCore::EventRelatedNodeResolver::findHostOfTreeScopeInTargetTreeScope):
3055 2014-04-23 Andreas Kling <akling@apple.com>
3057 CachedResourceLoader hoards URLs indefinitely for no good reason.
3058 <https://webkit.org/b/132102>
3059 <rdar://problem/16708265>
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.
3065 Reviewed by Anders Carlsson.
3068 (WebCore::Document::dispatchWindowLoadEvent):
3069 * loader/cache/CachedResourceLoader.cpp:
3070 (WebCore::CachedResourceLoader::requestResource):
3071 (WebCore::CachedResourceLoader::documentDidFinishLoadEvent):
3072 * loader/cache/CachedResourceLoader.h:
3074 2014-04-23 Andreas Kling <akling@apple.com>
3076 Canvas cache of clean URLs can grow without bounds.
3077 <https://webkit.org/b/132091>
3078 <rdar://problem/16695665>
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.
3084 Reviewed by Benjamin Poulain.
3086 * html/canvas/CanvasRenderingContext.cpp:
3087 (WebCore::CanvasRenderingContext::wouldTaintOrigin):
3088 * html/canvas/CanvasRenderingContext.h:
3090 2014-04-23 Benjamin Poulain <bpoulain@apple.com>
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
3095 Reviewed by Tim Horton.
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.
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.
3107 Setting the content size upfront make the first computation incorrect when the viewport arguments specify
3110 (WebCore::ViewportConfiguration::setMinimumLayoutSize):
3111 * page/ViewportConfiguration.h:
3112 (WebCore::ViewportConfiguration::minimumLayoutSize):
3114 2014-04-23 Brent Fulgham <bfulgham@apple.com>
3116 [Mac, iOS] Stop buffering media when on an inactive tab.
3117 https://bugs.webkit.org/show_bug.cgi?id=132077
3119 Reviewed by Eric Carlson.
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.
3150 2014-04-23 Alexey Proskuryakov <ap@apple.com>
3152 Eliminate internals.setMockScrollbarsEnabled()
3153 https://bugs.webkit.org/show_bug.cgi?id=132085
3155 Reviewed by Tim Horton.
3157 This was essentially unused, and also didnt work.
3159 * testing/InternalSettings.cpp:
3160 (WebCore::InternalSettings::Backup::restoreTo):
3161 (WebCore::InternalSettings::setMockScrollbarsEnabled): Deleted.
3162 * testing/InternalSettings.h:
3163 * testing/InternalSettings.idl:
3165 2014-04-23 Anders Carlsson <andersca@apple.com>
3167 Don't migrate the WKView.h header from WebCore to WebKit
3168 https://bugs.webkit.org/show_bug.cgi?id=132086
3170 Reviewed by Dan Bernstein.
3172 * WebCore.xcodeproj/project.pbxproj:
3173 Add WAKViewInternal.h.
3175 * platform/WAKViewInternal.h: Added.
3177 * platform/ios/wak/WAKClipView.m:
3178 Import WAKViewInternal.h instead of WAKViewPrivate.h.
3180 * platform/ios/wak/WAKScrollView.mm:
3181 Import WAKViewInternal.h instead of WAKViewPrivate.h.
3183 * platform/ios/wak/WAKView.h:
3184 Move ivars to a class extension in WAKViewInternal.h and remove WKView.h import.
3186 * platform/ios/wak/WAKView.mm:
3187 Import WAKViewInternal.h instead of WAKViewPrivate.h.
3189 * platform/ios/wak/WAKViewPrivate.h:
3190 Import WKViewPrivate.h.
3192 2014-04-23 David Hyatt <hyatt@apple.com>
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
3197 Reviewed by Anders Carlsson.
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.
3205 (WebCore::RenderBox::computePercentageLogicalHeight):
3206 Patched to pass in whether or not the box and the ancestor block are perpendicular.
3208 * rendering/RenderBox.h:
3209 Patched the signature of skipContainingBlockForPercentHeightCalculation
3211 2014-04-23 Myles C. Maxfield <mmaxfield@apple.com>
3213 [OS X] Make checking if a font is the system font more robust
3214 https://bugs.webkit.org/show_bug.cgi?id=132030
3216 Reviewed by Dean Jackson.
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.
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.
3224 Covered by existing tests.
3226 * platform/graphics/Font.cpp:
3227 (WebCore::Font::hasValidAverageCharWidth):
3228 * platform/graphics/Font.h:
3229 * platform/graphics/mac/FontMac.mm:
3230 (WebCore::Font::primaryFontDataIsSystemFont):
3232 2014-04-23 David Hyatt <hyatt@apple.com>
3234 [New Multicolumn] Assertion failure in huge-column-count.html
3235 https://bugs.webkit.org/show_bug.cgi?id=132071
3237 Reviewed by Dean Jackson.
3239 * rendering/RenderBlock.cpp:
3240 (WebCore::RenderBlock::regionAtBlockOffset):
3241 Back out this change, since it wasn't general enough.
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.
3250 2014-04-23 Andreas Kling <akling@apple.com>
3252 [iOS] Memory pressure notification should fire on main thread.
3253 <https://webkit.org/b/132074>
3255 Rejig the memory pressure notification to fire on the main queue
3256 directly instead of rerouting it manually.
3258 Reviewed by Mark Rowe.
3260 * platform/cocoa/MemoryPressureHandlerCocoa.mm:
3261 (WebCore::MemoryPressureHandler::install):
3263 2014-04-23 Commit Queue <commit-queue@webkit.org>
3265 Unreviewed, rolling out r167720.
3266 https://bugs.webkit.org/show_bug.cgi?id=132075
3268 broke eight newmulticol tests (Requested by thorton on
3273 "[New Multicolumn] Assertion failure in huge-column-
3275 https://bugs.webkit.org/show_bug.cgi?id=132071
3276 http://trac.webkit.org/changeset/167720
3278 2014-04-23 David Hyatt <hyatt@apple.com>
3280 [New Multicolumn] Assertion failure in huge-column-count.html
3281 https://bugs.webkit.org/show_bug.cgi?id=132071
3283 Reviewed by Dean Jackson.
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.
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.
3295 2014-04-23 David Hyatt <hyatt@apple.com>
3297 [New Multicolumn] Crasher when clearing out a flow thread in multicolumn layout.
3298 https://bugs.webkit.org/show_bug.cgi?id=132069
3300 Reviewed by Dean Jackson.
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
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.
3310 Added fast/multicol/inline-children-crash.html
3312 * rendering/RenderMultiColumnFlowThread.cpp:
3313 (WebCore::RenderMultiColumnFlowThread::evacuateAndDestroy):
3315 2014-04-23 Andreas Kling <akling@apple.com>
3317 [iOS WebKit2] IOSurfacePool should force CA to actually garbage collect surfaces.
3318 <https://webkit.org/b/132065>
3319 <rdar://problem/16110687>
3321 Add a platformGarbageCollectNow() helper function to IOSurfacePool that
3322 triggers a sweep of the IOSurfaces. Call this from collectionTimerFired()
3323 and discardAllSurfaces().
3325 This lets us drop all otherwise-unused 420f surfaces on memory pressure.
3327 Reviewed by Tim Horton.
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):
3337 2014-04-23 Morten Stenshorne <mstensho@opera.com>
3339 REGRESSION (Safari 6 - ToT): Incorrectly assumes that RenderStyle data can be shared
3340 https://bugs.webkit.org/show_bug.cgi?id=113058
3342 Reviewed by David Hyatt.
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.
3348 Test: fast/css/identical-logical-height-decl.html
3350 * css/StyleResolver.cpp:
3351 (WebCore::StyleResolver::applyMatchedProperties):
3353 2014-04-23 Commit Queue <commit-queue@webkit.org>
3355 Unreviewed, rolling out r167713.
3356 https://bugs.webkit.org/show_bug.cgi?id=132070
3358 broke hundreds of tests (Requested by thorton on #webkit).
3362 "[OS X] Make checking if a font is the system font more
3364 https://bugs.webkit.org/show_bug.cgi?id=132030
3365 http://trac.webkit.org/changeset/167713
3367 2014-04-22 David Hyatt <hyatt@apple.com>
3369 [New Multicolumn] Nested columns not working at all.
3370 https://bugs.webkit.org/show_bug.cgi?id=131805
3372 Reviewed by Dean Jackson.
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.
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.
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.
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.
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.
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.
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.
3415 2014-04-22 Myles C. Maxfield <mmaxfield@apple.com>
3417 [OS X] Make checking if a font is the system font more robust
3418 https://bugs.webkit.org/show_bug.cgi?id=132030
3420 Reviewed by Dean Jackson.
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.
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.
3428 Covered by existing tests.
3430 * platform/graphics/Font.cpp:
3431 (WebCore::Font::hasValidAverageCharWidth):
3432 * platform/graphics/Font.h:
3433 * platform/graphics/mac/FontMac.mm:
3434 (WebCore::Font::primaryFontDataIsSystemFont):
3436 2014-04-23 Philippe Normand <pnormand@igalia.com>
3438 [GTK] Focus management API was moved from HTMLDocument to Document in r166668
3439 https://bugs.webkit.org/show_bug.cgi?id=132060
3441 Reviewed by Carlos Garcia Campos.