1 2015-03-09 Conrad Shultz <conrad_shultz@apple.com>
3 Allow clients to selectively disable plug-ins
4 https://bugs.webkit.org/show_bug.cgi?id=142506
6 Reviewed by Anders Carlsson.
8 Add new functionality allow clients to declaratively disable individual plug-ins (in a manner that conceals them
9 from the page). As part of this:
11 1) Introduce the concept of web-visible plug-ins and related concepts, as distinct from the real underlying
14 2) Where applicable, plumb additional information about plug-ins (specifically, bundle identification) deeper
17 3) Add generic functionality to PluginStrategy to support filtering plug-ins for visibility and introduce
18 a concrete implementation thereof in WebPlatformStrategies in WebKit2.
20 4) Add messaging infrastructure to allow clients to set and clear plug-in policies.
22 While currently only used in a very limited manner, the new declarative plug-in policies are written generically
23 so that they could be easily used in the future to reduce synchronous messaging to the client when loading plug-ins.
25 * dom/DOMImplementation.cpp:
26 (WebCore::DOMImplementation::createDocument):
27 Update to reflect function rename.
29 * loader/SubframeLoader.cpp:
30 (WebCore::findPluginMIMETypeFromURL):
31 Adopt getWebVisibleMimesAndPluginIndices().
32 (WebCore::logPluginRequest):
33 Update to reflect function rename.
34 (WebCore::SubframeLoader::shouldUsePlugin):
37 * platform/PlatformStrategies.h:
38 Export platformStrategies(), since it is now used in WebProcess.cpp.
40 * plugins/DOMMimeType.cpp:
41 (WebCore::DOMMimeType::type):
42 (WebCore::DOMMimeType::description):
43 (WebCore::DOMMimeType::mimeClassInfo):
44 Adopt getWebVisibleMimesAndPluginIndices().
45 (WebCore::DOMMimeType::enabledPlugin):
48 * plugins/DOMMimeType.h:
49 Don't return references in a few places where it is no longer safe to do so.
50 (WebCore::DOMMimeType::mimeClassInfo): Deleted.
52 * plugins/DOMMimeTypeArray.cpp:
53 (WebCore::DOMMimeTypeArray::length):
54 Adopt getWebVisibleMimesAndPluginIndices().
55 (WebCore::DOMMimeTypeArray::item):
57 (WebCore::DOMMimeTypeArray::canGetItemsForName):
59 (WebCore::DOMMimeTypeArray::namedItem):
62 * plugins/DOMPlugin.cpp:
63 (WebCore::DOMPlugin::pluginInfo):
64 Adopt getWebVisiblePlugins().
65 (WebCore::DOMPlugin::item):
66 Adopt getWebVisibleMimesAndPluginIndices().
67 (WebCore::DOMPlugin::canGetItemsForName):
69 (WebCore::DOMPlugin::namedItem):
72 * plugins/DOMPlugin.h:
73 (WebCore::DOMPlugin::pluginInfo): Deleted.
75 * plugins/DOMPluginArray.cpp:
76 (WebCore::DOMPluginArray::length):
77 Adopt getWebVisiblePlugins().
78 (WebCore::DOMPluginArray::item):
80 (WebCore::DOMPluginArray::canGetItemsForName):
82 (WebCore::DOMPluginArray::namedItem):
85 * plugins/PluginData.cpp:
86 (WebCore::PluginData::PluginData):
87 Stash the passed-in Page and call initPlugins().
88 (WebCore::PluginData::getWebVisiblePlugins):
89 New member function; call through to PluginStrategy::getWebVisiblePluginInfo().
90 (WebCore::PluginData::getWebVisibleMimesAndPluginIndices):
91 New member function; build up the mimes and mimePluginIndices vectors in the same manner as before, but
92 limited to the web-visible plug-ins.
93 (WebCore::PluginData::supportsWebVisibleMimeType):
94 Renamed from supportsMimeType(); update to work in terms of web-visible plug-ins.
95 (WebCore::PluginData::pluginInfoForWebVisibleMimeType):
96 Renamed from pluginInfoForMimeType(); ditto.
97 (WebCore::PluginData::pluginNameForWebVisibleMimeType):
98 Renamed from pluginNameForMimeType(); ditto.
99 (WebCore::PluginData::pluginFileForWebVisibleMimeType):
100 Renamed from pluginFileForMimeType(); ditto.
101 (WebCore::PluginData::initPlugins):
102 (WebCore::PluginData::supportsMimeType): Deleted.
103 (WebCore::PluginData::pluginInfoForMimeType): Deleted.
104 (WebCore::PluginData::pluginNameForMimeType): Deleted.
105 (WebCore::PluginData::pluginFileForMimeType): Deleted.
107 * plugins/PluginData.h:
108 Add a member variable for the associate Page; declare the PluginLoadClientPolicy enumeration; add
109 new members to PluginInfo for the clientLoadPolicy and bundle information.
110 (WebCore::PluginData::PluginData):
111 Replace some member functions with new ones that will hide plug-ins upon request from the client;
112 (WebCore::PluginData::mimes): Deleted.
113 (WebCore::PluginData::mimePluginIndices): Deleted.
115 * plugins/PluginStrategy.h:
116 Declare new member functions for retrieving web-visible plug-ins and setting/clearing plug-in policies.
118 * replay/SerializationMethods.cpp:
119 (JSC::EncodingTraits<PluginData>::encodeValue):
120 Remove now-obsolete code for handling MIME types and add a FIXME.
121 (JSC::DeserializedPluginData::DeserializedPluginData):
122 (JSC::EncodingTraits<PluginData>::decodeValue):
124 (JSC::EncodingTraits<PluginInfo>::encodeValue):
125 Handle the new members in PluginInfo.
126 (JSC::EncodingTraits<PluginInfo>::decodeValue):
129 * replay/WebInputs.json:
130 Teach Replay about PluginLoadClientPolicy.
132 2015-03-13 Chris Dumez <cdumez@apple.com>
134 XMLHttpRequests should not prevent a page from entering PageCache
135 https://bugs.webkit.org/show_bug.cgi?id=142612
136 <rdar://problem/19923085>
138 Reviewed by Alexey Proskuryakov.
140 Make XMLHttpRequest ActiveDOMObjects suspendable in most cases to
141 drastically improve the likelihood of pages using them to enter
142 PageCache. XMLHttpRequest used to be only suspendable when not
143 loading. After this patch, if the XMLHttpRequest is loading when
144 navigating away from the page, it will be aborted and the page
145 will enter the PageCache. Upon restoring the page from PageCache,
146 the XMLHttpRequests' error handlers will be executed to give them
147 a chance to reload if they want to.
149 Test: http/tests/navigation/page-cache-xhr.html
151 * history/PageCache.cpp:
152 (WebCore::logCanCacheFrameDecision):
153 (WebCore::PageCache::canCachePageContainingThisFrame):
154 Do not prevent a page to enter the page cache ff the main document has
155 an error that is a cancellation and all remaining subresource loaders
156 are for XHR. We extend the pre-existing mechanism used on iOS, which
157 allowed PageCaching if the remaining resource loads are for images.
159 * loader/DocumentLoader.cpp:
160 (WebCore::areAllLoadersPageCacheAcceptable):
161 Mark XHR loaders as PageCache acceptable.
163 * loader/DocumentThreadableLoader.cpp:
164 (WebCore::DocumentThreadableLoader::isXMLHttpRequest):
165 * loader/DocumentThreadableLoader.h:
166 * loader/ThreadableLoader.h:
167 * loader/cache/CachedResource.cpp:
168 (WebCore::CachedResource::areAllClientsXMLHttpRequests):
169 * loader/cache/CachedResource.h:
170 * loader/cache/CachedResourceClient.h:
171 (WebCore::CachedResourceClient::isXMLHttpRequest):
172 * xml/XMLHttpRequest.cpp:
173 (WebCore::XMLHttpRequest::XMLHttpRequest):
174 (WebCore::XMLHttpRequest::createRequest):
175 (WebCore::XMLHttpRequest::canSuspend):
176 Report that we can suspend XMLHttpRequests as long as the window load
177 event has already fired. If the window load event has not fired yet,
178 it would be unsafe to cancel the load in suspend() as it would
179 potentially cause arbitrary JS execution while suspending.
181 (WebCore::XMLHttpRequest::suspend):
182 If suspending for PageCache and the request is currently loading, abort
183 the load and mark that we should fire the error event upon restoring
186 (WebCore::XMLHttpRequest::resume):
187 (WebCore::XMLHttpRequest::resumeTimerFired):
188 Upon resuming, fire the error event in a timer if the load was aborted
189 for suspending. We need to do this in a timer because we are not allowed
190 to execute arbitrary JS inside resume().
192 (WebCore::XMLHttpRequest::stop):
193 Add a assertion to make sure we are not firing event inside stop() as
194 this would potentially cause arbitrary JS execution and it would be
195 unsafe. It seems to me that our code is currently unsafe but the
196 assertion does not seem to be hit by our current layout tests. I am
197 adding the assertion as it would make it clear we have a bug and we
200 * xml/XMLHttpRequest.h:
202 2015-03-13 Joonghun Park <jh718.park@samsung.com>
204 Fix Debug build error 'comparison is always true due to limited range of data type [-Werror=type-limits]'
205 https://bugs.webkit.org/show_bug.cgi?id=142652
207 Reviewed by Csaba Osztrogonác.
209 No new tests, no behavior changes.
211 Now CSSPropertyID type is uint16_t, so propertyID >= 0 check is needed no more.
213 * css/CSSPrimitiveValue.cpp:
214 (WebCore::propertyName):
217 2015-03-12 Zan Dobersek <zdobersek@igalia.com>
220 https://bugs.webkit.org/show_bug.cgi?id=142641
222 Reviewed by Darin Adler.
224 Remove the DrawingBuffer class. Objects of this type were only held in the
225 WebGLRenderingContext (later renamed to WebGLRenderingContextBase) on the
226 Chromium port, with the relevant code removed in r147888. Since then, the
227 m_drawingBuffer member variable has always been null.
232 * WebCore.vcxproj/WebCore.vcxproj:
233 * WebCore.vcxproj/WebCore.vcxproj.filters:
234 * WebCore.xcodeproj/project.pbxproj:
235 * html/canvas/WebGL2RenderingContext.cpp:
236 (WebCore::WebGL2RenderingContext::copyTexImage2D):
237 * html/canvas/WebGLRenderingContext.cpp:
238 (WebCore::WebGLRenderingContext::copyTexImage2D):
239 * html/canvas/WebGLRenderingContextBase.cpp:
240 (WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
241 (WebCore::WebGLRenderingContextBase::initializeNewContext):
242 (WebCore::WebGLRenderingContextBase::destroyGraphicsContext3D):
243 (WebCore::WebGLRenderingContextBase::markContextChanged):
244 (WebCore::WebGLRenderingContextBase::clearIfComposited):
245 (WebCore::WebGLRenderingContextBase::paintRenderingResultsToCanvas):
246 (WebCore::WebGLRenderingContextBase::paintRenderingResultsToImageData):
247 (WebCore::WebGLRenderingContextBase::reshape):
248 (WebCore::WebGLRenderingContextBase::drawingBufferWidth):
249 (WebCore::WebGLRenderingContextBase::drawingBufferHeight):
250 (WebCore::WebGLRenderingContextBase::activeTexture):
251 (WebCore::WebGLRenderingContextBase::bindFramebuffer):
252 (WebCore::WebGLRenderingContextBase::bindTexture):
253 (WebCore::WebGLRenderingContextBase::copyTexSubImage2D):
254 (WebCore::WebGLRenderingContextBase::deleteFramebuffer):
255 (WebCore::WebGLRenderingContextBase::disable):
256 (WebCore::WebGLRenderingContextBase::enable):
257 (WebCore::WebGLRenderingContextBase::getContextAttributes):
258 (WebCore::WebGLRenderingContextBase::readPixels):
259 (WebCore::WebGLRenderingContextBase::loseContextImpl):
260 (WebCore::WebGLRenderingContextBase::getBoundFramebufferWidth):
261 (WebCore::WebGLRenderingContextBase::getBoundFramebufferHeight):
262 (WebCore::WebGLRenderingContextBase::maybeRestoreContext):
263 * html/canvas/WebGLRenderingContextBase.h:
264 (WebCore::ScopedDrawingBufferBinder::ScopedDrawingBufferBinder): Deleted.
265 (WebCore::ScopedDrawingBufferBinder::~ScopedDrawingBufferBinder): Deleted.
266 * platform/graphics/GraphicsContext.h:
267 * platform/graphics/GraphicsContext3D.h:
268 * platform/graphics/cairo/DrawingBufferCairo.cpp: Removed.
269 * platform/graphics/gpu/DrawingBuffer.cpp: Removed.
270 * platform/graphics/gpu/DrawingBuffer.h: Removed.
271 * platform/graphics/gpu/mac/DrawingBufferMac.mm: Removed.
272 * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
273 (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
274 (WebCore::GraphicsContext3D::paintRenderingResultsToImageData):
276 2015-03-12 Ryosuke Niwa <rniwa@webkit.org>
278 REGRESSION(r180726): Removing an empty line at the end of textarea clears the entire texture
279 https://bugs.webkit.org/show_bug.cgi?id=142646
281 Reviewed by Darin Adler.
283 The bug was caused by TypingCommand::deleteKeyPressed erroneously determining the editable root to be empty because
284 Position::atStartOfTree returns true when it's anchored at a BR that is immediately below the root editable element.
286 Fixed the bug by replacing the use of the deprecated atFirstEditingPositionForNode by a code that understands modern
287 position types such as PositionIsBeforeAnchor in atStartOfTree and atEndOfTree. These two functions will no longer
288 return true when anchored before or after BR after this patch.
290 Test: editing/deleting/delete-empty-line-breaks-at-end-of-textarea.html
293 (WebCore::Position::atStartOfTree):
294 (WebCore::Position::atEndOfTree):
296 2015-03-12 Yusuke Suzuki <utatane.tea@gmail.com>
298 Integrate MapData into JSMap and JSSet
299 https://bugs.webkit.org/show_bug.cgi?id=142556
301 Reviewed by Filip Pizlo.
303 Now Set has SetData and it's different from MapData.
304 And MapData/SetData are completely integrated into JSSet and JSMap.
305 Structured-cloning algorithm need to be aware of these changes.
306 And in the case of JSSet, since JSSet doesn't need dummy value for construction,
307 Structured-cloning only serialize the keys in JSSet.
309 * ForwardingHeaders/runtime/MapDataInlines.h: Added.
310 * bindings/js/SerializedScriptValue.cpp:
311 (WebCore::CloneSerializer::serialize):
312 (WebCore::CloneDeserializer::consumeCollectionDataTerminationIfPossible):
313 (WebCore::CloneDeserializer::deserialize):
314 (WebCore::CloneDeserializer::consumeMapDataTerminationIfPossible): Deleted.
316 2015-03-12 Dan Bernstein <mitz@apple.com>
318 Finish up <rdar://problem/20086546> [Cocoa] Add an option to treat certificate chains with SHA1-signed certificates as insecure
320 Added back OS X bits that I couldn’t land initially in r181317 or had to remove in r181327.
322 * platform/network/mac/CertificateInfoMac.mm:
323 (WebCore::CertificateInfo::containsNonRootSHA1SignedCertificate):
324 * platform/spi/cocoa/SecuritySPI.h:
326 2015-03-12 Geoffrey Garen <ggaren@apple.com>
328 REGRESSION: Crash under Heap::reportExtraMemoryAllocatedSlowCase for media element
329 https://bugs.webkit.org/show_bug.cgi?id=142636
331 Reviewed by Mark Hahnenberg.
333 This was a pre-existing bug that I made a lot worse in
334 <https://trac.webkit.org/changeset/181411>.
336 * html/HTMLMediaElement.cpp:
337 (WebCore::HTMLMediaElement::parseAttribute): Compare size before
338 subtracting rather than subtracting and then comparing to zero. The
339 latter technique is not valid for unsigned integers, which will happily
340 underflow into giant numbers.
342 * Modules/mediasource/SourceBuffer.cpp:
343 (WebCore::SourceBuffer::reportExtraMemoryAllocated): This code was
344 technically correct, but I took the opportunity to clean it up a bit.
345 There's no need to do two checks here, and it smells bad to check for
346 a negative unsigned integer.
348 2015-03-12 Sebastian Dröge <sebastian@centricular.com>
350 Stop using single-include headers that are only available since GStreamer >= 1.2.
352 https://bugs.webkit.org/show_bug.cgi?id=142537
354 Reviewed by Philippe Normand.
356 * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
357 * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
358 * platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
359 * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
360 * platform/graphics/gstreamer/GStreamerUtilities.cpp:
361 * platform/graphics/gstreamer/GStreamerUtilities.h:
362 * platform/graphics/gstreamer/ImageGStreamer.h:
363 Instead of using single-include headers for the GStreamer libraries,
364 directly include the headers we need. The single-include headers were
365 only added in 1.2, and this would be the only reason why we would
368 2015-03-12 Eric Carlson <eric.carlson@apple.com>
370 [Mac] Update AirPlay handling
371 https://bugs.webkit.org/show_bug.cgi?id=142541
373 Unreviewed, respond to post-review comments.
376 (WebCore::Document::didChoosePlaybackTarget):
377 * page/ChromeClient.h:
379 (WebCore::Page::showPlaybackTargetPicker):
380 (WebCore::Page::didChoosePlaybackTarget):
381 (WebCore::Page::configurePlaybackTargetMonitoring):
383 2015-03-12 Csaba Osztrogonác <ossy@webkit.org>
385 Fix the !ENABLE(PICTURE_SIZES) build
386 https://bugs.webkit.org/show_bug.cgi?id=142617
388 Reviewed by Darin Adler.
390 * html/parser/HTMLPreloadScanner.cpp:
391 (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
393 2015-03-11 Joseph Pecoraro <pecoraro@apple.com>
395 Unreviewed follow-up fix to r181426. Initialize TextPosition with zeros in case it gets used.
397 Address ASSERT in LayoutTests/printing/page-format-data.html.
399 * dom/InlineStyleSheetOwner.cpp:
400 (WebCore::InlineStyleSheetOwner::InlineStyleSheetOwner):
401 In case the TextPosition gets used because it wasn't created by a parser,
402 zeros are more realistic values then beforeFirst.
404 2015-03-11 Roger Fong <roger_fong@apple.com>
406 Media element time no longer updates while scrubbing following r181279.
407 https://bugs.webkit.org/show_bug.cgi?id=142606.
408 <rdar://problem/20131014>
410 Reviewed by Eric Carlson.
412 * Modules/mediacontrols/mediaControlsApple.js:
413 (Controller.prototype.handleWrapperMouseMove):
414 Update time as a result of a mouse move if we are scrubbing.
416 2015-03-11 Joseph Pecoraro <pecoraro@apple.com>
418 Web Inspector: CSS parser errors in the console should include column numbers
419 https://bugs.webkit.org/show_bug.cgi?id=114313
421 Reviewed by Darin Adler.
423 Test: inspector-protocol/console/warnings-errors.html
426 (WebCore::CSSParser::currentCharacterOffset):
427 Get the current character offset depending on the source type.
428 Add instance variables to track column position and start
429 line / column for inline stylesheets.
432 (WebCore::CSSParser::CSSParser):
433 (WebCore::CSSParser::parseSheet):
434 Initialize new instance variables.
436 (WebCore::CSSParser::currentLocation):
437 Update to include column information for the token. Also, if we are on the
438 first line we may need to take into account a start column offset as well.
440 (WebCore::CSSParser::realLex):
441 Set the token's start column.
442 When bumping the line number, reset the column offset for the next
443 line with the next character.
445 (WebCore::CSSParser::syntaxError):
446 (WebCore::CSSParser::logError):
447 Include column information.
449 * css/StyleSheetContents.cpp:
450 (WebCore::StyleSheetContents::parseAuthorStyleSheet):
451 (WebCore::StyleSheetContents::parseString):
452 (WebCore::StyleSheetContents::parseStringAtPosition):
453 Include column information.
455 * css/StyleSheetContents.h:
456 * dom/InlineStyleSheetOwner.cpp:
457 (WebCore::InlineStyleSheetOwner::InlineStyleSheetOwner):
458 (WebCore::InlineStyleSheetOwner::createSheet):
459 Save and use column information later on.
461 * dom/InlineStyleSheetOwner.h:
462 * inspector/InspectorStyleSheet.cpp:
463 (WebCore::InspectorStyleSheet::ensureSourceData):
464 Updated parser signature needs starting column and no longer has optional parameters.
466 2015-03-11 Eric Carlson <eric.carlson@apple.com>
468 [Mac] Update AirPlay handling
469 https://bugs.webkit.org/show_bug.cgi?id=142541
471 Reviewed by Sam Weinig.
473 * WebCore.xcodeproj/project.pbxproj:
475 (WebCore::Document::showPlaybackTargetPicker):
476 (WebCore::Document::addPlaybackTargetPickerClient):
477 (WebCore::Document::removePlaybackTargetPickerClient):
478 (WebCore::Document::configurePlaybackTargetMonitoring):
479 (WebCore::Document::requiresPlaybackTargetRouteMonitoring):
480 (WebCore::Document::playbackTargetAvailabilityDidChange):
481 (WebCore::Document::didChoosePlaybackTarget):
483 * html/HTMLMediaElement.cpp:
484 (WebCore::HTMLMediaElement::registerWithDocument):
485 (WebCore::HTMLMediaElement::unregisterWithDocument):
486 (WebCore::HTMLMediaElement::parseAttribute):
487 * html/HTMLMediaElement.h:
488 * html/HTMLMediaSession.cpp:
489 (WebCore::HTMLMediaSession::HTMLMediaSession):
490 (WebCore::HTMLMediaSession::registerWithDocument):
491 (WebCore::HTMLMediaSession::unregisterWithDocument):
492 (WebCore::HTMLMediaSession::showPlaybackTargetPicker):
493 (WebCore::HTMLMediaSession::hasWirelessPlaybackTargets):
494 (WebCore::HTMLMediaSession::setHasPlaybackTargetAvailabilityListeners):
495 (WebCore::HTMLMediaSession::didChoosePlaybackTarget):
496 (WebCore::HTMLMediaSession::externalOutputDeviceAvailableDidChange):
497 (WebCore::HTMLMediaSession::requiresPlaybackTargetRouteMonitoring):
498 * html/HTMLMediaSession.h:
499 * page/ChromeClient.h:
501 (WebCore::Page::didChoosePlaybackTarget):
502 (WebCore::Page::playbackTargetAvailabilityDidChange):
503 (WebCore::Page::configurePlaybackTargetMonitoring):
505 (WebCore::Page::hasWirelessPlaybackTarget):
506 (WebCore::Page::playbackTarget):
507 * platform/audio/MediaSession.cpp:
508 (WebCore::MediaSession::clientDataBufferingTimerFired):
509 (WebCore::MediaSession::wirelessRoutesAvailableDidChange): Deleted.
510 * platform/audio/MediaSession.h:
511 (WebCore::MediaSession::didChoosePlaybackTarget):
512 (WebCore::MediaSession::externalOutputDeviceAvailableDidChange):
513 (WebCore::MediaSession::requiresPlaybackTargetRouteMonitoring):
514 (WebCore::MediaSessionClient::setWirelessPlaybackTarget):
515 * platform/audio/MediaSessionManager.cpp:
516 (WebCore::MediaSessionManager::wirelessRoutesAvailableChanged): Deleted.
517 * platform/audio/MediaSessionManager.h:
518 (WebCore::MediaSessionManager::configureWireLessTargetMonitoring):
519 * platform/audio/ios/MediaSessionManagerIOS.h:
520 * platform/audio/ios/MediaSessionManagerIOS.mm:
521 (WebCore::MediaSessionManageriOS::externalOutputDeviceAvailableDidChange):
522 (-[WebMediaSessionHelper wirelessRoutesAvailableDidChange:]):
523 * platform/graphics/AVPlaybackTarget.h: Added.
524 (WebCore::AVPlaybackTarget::~AVPlaybackTarget):
525 (WebCore::AVPlaybackTarget::AVPlaybackTarget):
526 (WebCore::AVPlaybackTarget::setDevicePickerContext):
527 (WebCore::AVPlaybackTarget::devicePickerContext):
528 * platform/graphics/AVPlaybackTargetPickerClient.h: Added.
529 (WebCore::AVPlaybackTargetPickerClient::~AVPlaybackTargetPickerClient):
530 * platform/graphics/MediaPlayer.cpp:
531 (WebCore::MediaPlayer::setWirelessPlaybackTarget):
532 * platform/graphics/MediaPlayer.h:
533 * platform/graphics/MediaPlayerPrivate.h:
534 (WebCore::MediaPlayerPrivateInterface::setWirelessPlaybackTarget):
535 * platform/graphics/avfoundation/AVPlaybackTargetMac.mm: Added.
536 (WebCore::AVPlaybackTarget::encode):
537 (WebCore::AVPlaybackTarget::decode):
538 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
539 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
540 (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad):
541 (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
542 (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
543 (WebCore::MediaPlayerPrivateAVFoundationObjC::isCurrentPlaybackTargetWireless):
544 (WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetType):
545 (WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessVideoPlaybackDisabled):
546 (WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessVideoPlaybackDisabled):
547 (WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessPlaybackTarget):
548 (WebCore::MediaPlayerPrivateAVFoundationObjC::updateDisableExternalPlayback):
549 (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
551 2015-03-11 Alex Christensen <achristensen@webkit.org>
553 [Content Extensions] Add resource type and load type triggers.
554 https://bugs.webkit.org/show_bug.cgi?id=142422
556 Reviewed by Benjamin Poulain.
560 * WebCore.xcodeproj/project.pbxproj:
561 * contentextensions/ContentExtensionCompiler.cpp:
562 (WebCore::ContentExtensions::compileRuleList):
563 * contentextensions/ContentExtensionParser.cpp:
564 (WebCore::ContentExtensions::getTypeFlags):
565 (WebCore::ContentExtensions::loadTrigger):
566 * contentextensions/ContentExtensionRule.h:
567 * contentextensions/ContentExtensionsBackend.cpp:
568 (WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):
569 (WebCore::ContentExtensions::ContentExtensionsBackend::actionsForURL): Deleted.
570 * contentextensions/ContentExtensionsBackend.h:
571 * contentextensions/DFABytecode.h:
572 (WebCore::ContentExtensions::instructionSizeWithArguments):
573 * contentextensions/DFABytecodeCompiler.cpp:
574 (WebCore::ContentExtensions::DFABytecodeCompiler::emitAppendConditionalAction):
575 (WebCore::ContentExtensions::DFABytecodeCompiler::compileNode):
576 * contentextensions/DFABytecodeCompiler.h:
577 * contentextensions/DFABytecodeInterpreter.cpp:
578 (WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):
579 * contentextensions/DFABytecodeInterpreter.h:
580 * loader/ResourceLoadInfo.cpp: Added.
581 (WebCore::toResourceType):
582 (WebCore::readResourceType):
583 (WebCore::readLoadType):
584 (WebCore::ResourceLoadInfo::isThirdParty):
585 (WebCore::ResourceLoadInfo::getResourceFlags):
586 * loader/ResourceLoadInfo.h: Added.
587 * loader/cache/CachedResourceLoader.cpp:
588 (WebCore::CachedResourceLoader::requestResource):
589 * page/UserContentController.cpp:
590 (WebCore::UserContentController::actionsForResourceLoad):
591 (WebCore::UserContentController::actionsForURL): Deleted.
592 * page/UserContentController.h:
594 2015-03-11 Tim Horton <timothy_horton@apple.com>
598 * page/EventHandler.cpp:
599 (WebCore::EventHandler::selectClosestWordFromHitTestResult):
600 (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
601 (WebCore::EventHandler::handleMousePressEventTripleClick):
602 (WebCore::EventHandler::handleMousePressEventSingleClick):
604 2015-03-11 Timothy Horton <timothy_horton@apple.com>
606 <attachment> shouldn't use "user-select: all"
607 https://bugs.webkit.org/show_bug.cgi?id=142453
609 Reviewed by Darin Adler.
611 It turns out that "user-select: all" is rife with bugs; in lieu of fixing them
612 all (at least for now), let's not use "user-select: all" in the default stylesheet
613 for <attachment>. It's really overkill anyway, since <attachment> can't have children.
614 The only "user-select: all" behavior we actually want is select-on-click.
615 So, we'll implement that in a slightly different way.
617 Tests: fast/attachment/attachment-select-on-click-inside-user-select-all.html
618 fast/attachment/attachment-select-on-click.html
622 No more "user-select: all".
624 (attachment:focus): Deleted.
625 We stopped using attachment focus a while back and forgot to remove this.
628 (WebCore::Node::shouldSelectOnMouseDown):
629 Add a virtual function that Node subclasses can override to indicate they
630 should be selected on mouse down.
632 * html/HTMLAttachmentElement.h:
633 Override the aforementioned virtual function; <attachment> should always
634 be selected on mouse down.
636 * page/EventHandler.cpp:
637 (WebCore::nodeToSelectOnMouseDownForNode):
638 Determine which node should be selected when a mousedown hits the given node.
639 If there's any "user-select: all", we go with the outermost "user-select: all".
640 Otherwise, we give the node a chance to say that it wants to be selected itself.
642 (WebCore::expandSelectionToRespectSelectOnMouseDown):
643 Rename this function, it's not just about "user-select: all" anymore.
644 Make use of nodeToSelectOnMouseDownForNode.
646 (WebCore::EventHandler::selectClosestWordFromHitTestResult):
647 (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
648 (WebCore::EventHandler::handleMousePressEventTripleClick):
649 (WebCore::EventHandler::handleMousePressEventSingleClick):
650 (WebCore::expandSelectionToRespectUserSelectAll): Deleted.
651 Adjust to the new names.
653 2015-03-11 Geoffrey Garen <ggaren@apple.com>
655 Users of Heap::deprecatedReportExtraMemory should switch to reportExtraMemoryAllocated+reportExtraMemoryVisited
656 https://bugs.webkit.org/show_bug.cgi?id=142595
658 Reviewed by Andreas Kling.
660 Fixed this bug for canvas.
662 * html/HTMLCanvasElement.cpp:
663 (WebCore::HTMLCanvasElement::memoryCost): Factored out the helper function
664 required by our IDL generator.
666 (WebCore::HTMLCanvasElement::createImageBuffer): Use
667 reportExtraMemoryAllocated.
669 * html/HTMLCanvasElement.h:
671 * html/HTMLCanvasElement.idl: Adopt the IDL for reporting cost in the
672 right way during GC. This will match our reportExtraMemoryAllocated
673 with a reportExtraMemoryVisited during GC.
675 2015-03-11 Roger Fong <roger_fong@apple.com>
677 A number of minor edits to the media controls on OSX.
678 https://bugs.webkit.org/show_bug.cgi?id=142551.
679 <rdar://problem/20114707>
681 Reviewed by Darin Adler.
683 This covers a slew of minor edits to the new media controls. They are as follows.
684 Small vertical placements adjustments to inline control elements.
685 Make sure buttons have no focus outlines.
686 Expand height of mute box that triggers the volume panel appearing.
687 Turn all button colors into an slightly transparent white.
688 Center status display text in fullscreen mode.
689 Lower position of captions container in fullscreen mode.
690 Show the controls on when done loading of the video an status display is hidden.
692 * Modules/mediacontrols/mediaControlsApple.css:
693 (audio::-webkit-media-controls-panel):
694 (audio::-webkit-media-controls-panel button:focus):
695 (audio::-webkit-media-controls-rewind-button):
696 (audio::-webkit-media-controls-play-button):
697 (audio::-webkit-media-controls-play-button.paused):
698 (audio::-webkit-media-controls-panel .mute-box):
699 (video::-webkit-media-controls-volume-max-button):
700 (audio::-webkit-media-controls-panel .volume-box):
701 (video::-webkit-media-controls-volume-min-button):
702 (audio::-webkit-media-controls-wireless-playback-picker-button):
703 (audio::-webkit-media-controls-toggle-closed-captions-button):
704 (audio::-webkit-media-controls-closed-captions-container li.selected:hover::before):
705 (audio::-webkit-media-controls-fullscreen-button):
706 (audio::-webkit-media-controls-fullscreen-button.exit):
707 (audio::-webkit-media-controls-status-display):
708 (audio::-webkit-media-controls-time-remaining-display):
709 (video:-webkit-full-screen::-webkit-media-controls-panel .volume-box):
710 (video:-webkit-full-screen::-webkit-media-controls-volume-max-button):
711 (video:-webkit-full-screen::-webkit-media-controls-volume-min-button):
712 (video:-webkit-full-screen::-webkit-media-controls-play-button):
713 (video:-webkit-full-screen::-webkit-media-controls-play-button.paused):
714 (video:-webkit-full-screen::-webkit-media-controls-seek-back-button):
715 (video:-webkit-full-screen::-webkit-media-controls-seek-forward-button):
716 (video:-webkit-full-screen::-webkit-media-controls-status-display):
717 (video:-webkit-full-screen::-webkit-media-controls-closed-captions-container):
718 (audio::-webkit-media-controls-panel button:active): Deleted.
719 * Modules/mediacontrols/mediaControlsApple.js:
720 (Controller.prototype.setStatusHidden):
722 2015-03-11 Commit Queue <commit-queue@webkit.org>
724 Unreviewed, rolling out r179340 and r179344.
725 https://bugs.webkit.org/show_bug.cgi?id=142598
727 Caused images to stay alive forever when navigating away from
728 the page before they finish loading. (Requested by kling on
733 "CachedImage: ensure clients overrides imageChanged instead of
735 https://bugs.webkit.org/show_bug.cgi?id=140722
736 http://trac.webkit.org/changeset/179340
738 "HTMLImageLoader: fix build failure on assert condition after
740 https://bugs.webkit.org/show_bug.cgi?id=140722
741 http://trac.webkit.org/changeset/179344
743 2015-03-11 Geoffrey Garen <ggaren@apple.com>
745 Many users of Heap::reportExtraMemory* are wrong, causing lots of memory growth
746 https://bugs.webkit.org/show_bug.cgi?id=142593
748 Reviewed by Andreas Kling.
750 Adopt deprecatedReportExtraMemory as a short-term fix for runaway
751 memory growth in these cases where we have not adopted
752 reportExtraMemoryVisited.
754 Long-term, we should use reportExtraMemoryAllocated+reportExtraMemoryVisited.
755 That's tracked by https://bugs.webkit.org/show_bug.cgi?id=142595.
757 Using IOSDebug, I can see that the canvas stress test @ http://jsfiddle.net/fvyw4ba0/,
758 which used to keep > 1000 1MB NonVolatile GPU allocations live, now keeps about 10 live.
760 * Modules/mediasource/SourceBuffer.cpp:
761 (WebCore::SourceBuffer::reportExtraMemoryAllocated):
762 * bindings/js/JSDocumentCustom.cpp:
764 * bindings/js/JSImageDataCustom.cpp:
766 * bindings/js/JSNodeListCustom.cpp:
767 (WebCore::createWrapper):
768 * dom/CollectionIndexCache.cpp:
769 (WebCore::reportExtraMemoryAllocatedForCollectionIndexCache):
770 * html/HTMLCanvasElement.cpp:
771 (WebCore::HTMLCanvasElement::createImageBuffer):
772 * html/HTMLImageLoader.cpp:
773 (WebCore::HTMLImageLoader::imageChanged):
774 * html/HTMLMediaElement.cpp:
775 (WebCore::HTMLMediaElement::parseAttribute):
776 * xml/XMLHttpRequest.cpp:
777 (WebCore::XMLHttpRequest::dropProtection):
779 2015-03-10 Andy Estes <aestes@apple.com>
781 REGRESSION (r180985): contentfiltering/block-after-add-data.html crashes with GuardMalloc
782 https://bugs.webkit.org/show_bug.cgi?id=142526
784 Reviewed by Darin Adler.
786 * loader/DocumentLoader.cpp:
787 (WebCore::DocumentLoader::dataReceived): Don't delete m_contentFilter until after we're done using its replacement data.
789 2015-03-10 Sam Weinig <sam@webkit.org>
791 Allow adding a button in input elements for auto fill related functionality
792 <rdar://problem/19782066>
793 https://bugs.webkit.org/show_bug.cgi?id=142564
795 Reviewed by Anders Carlsson.
797 Test: fast/forms/input-auto-fill-button.html
799 - Adds a new button that can be shown in <input> elements - AutoFillButtonElement.
800 - Makes the spelling of AutoFill consistent throughout WebCore and WebKit (except
801 where not feasible due to exported API/SPI).
804 * WebCore.vcxproj/WebCore.vcxproj:
805 * WebCore.vcxproj/WebCore.vcxproj.filters:
806 * WebCore.xcodeproj/project.pbxproj:
810 (input::-webkit-auto-fill-button):
811 (input::-webkit-auto-fill-button:hover):
812 (input::-webkit-auto-fill-button:active):
813 Add default style rules for the AutoFill button based on the ones
814 used for caps lock indicator.
816 * html/HTMLInputElement.cpp:
817 (WebCore::HTMLInputElement::HTMLInputElement):
818 (WebCore::HTMLInputElement::autoFillButtonElement):
819 (WebCore::HTMLInputElement::reset):
820 (WebCore::HTMLInputElement::setValueFromRenderer):
821 (WebCore::HTMLInputElement::setAutoFilled):
822 (WebCore::HTMLInputElement::setShowAutoFillButton):
823 (WebCore::HTMLInputElement::setAutofilled): Deleted.
824 * html/HTMLInputElement.h:
825 (WebCore::HTMLInputElement::isAutoFilled):
826 (WebCore::HTMLInputElement::showAutoFillButton):
827 (WebCore::HTMLInputElement::isAutofilled): Deleted.
828 Add new bit to represent whether the AutoFill button should be shown
829 or not. By default it is not shown, and the client must enable it.
831 * html/InputType.cpp:
832 (WebCore::InputType::updateAutoFillButton):
834 (WebCore::InputType::autoFillButtonElement):
835 Add new virtual methods for updating and accessing the AutoFill button.
837 * html/TextFieldInputType.cpp:
838 (WebCore::TextFieldInputType::createShadowSubtree):
839 (WebCore::TextFieldInputType::autoFillButtonElement):
840 (WebCore::TextFieldInputType::destroyShadowSubtree):
841 (WebCore::TextFieldInputType::updatePlaceholderText):
842 (WebCore::TextFieldInputType::shouldDrawAutoFillButton):
843 (WebCore::TextFieldInputType::autoFillButtonElementWasClicked):
844 (WebCore::TextFieldInputType::createContainer):
845 (WebCore::TextFieldInputType::createAutoFillButton):
846 (WebCore::TextFieldInputType::updateAutoFillButton):
847 * html/TextFieldInputType.h:
848 Add support for adding the AutoFill to the shadow DOM of textfields. The implementation
849 is slightly different than for the caps lock indicator, because I didn't want to force
850 the creation of a container for all <input> elements just in case an AutoFill button was
851 added. Instead, if an AutoFill button is added, the container is created on the fly and
852 the existing DOM is updated to move into it. Once a container is created, it is never
855 * html/shadow/AutoFillButtonElement.cpp: Added.
856 (WebCore::AutoFillButtonElement::create):
857 (WebCore::AutoFillButtonElement::AutoFillButtonElement):
858 (WebCore::AutoFillButtonElement::defaultEventHandler):
859 * html/shadow/AutoFillButtonElement.h: Added.
860 Add div subclass that swallows the click event and forwards it to the ChromeClient.
862 * page/ChromeClient.h:
863 Add handleAutoFillButtonClick client function to inform WebKit that the AutoFill
866 * testing/Internals.cpp:
867 (WebCore::Internals::setAutofilled):
868 (WebCore::Internals::setShowAutoFillButton):
869 * testing/Internals.h:
870 * testing/Internals.idl:
871 Expose a new internals.setShowAutoFillButton() function to allow testing
872 of the AutoFill button from layout tests.
874 * accessibility/AccessibilityObject.cpp:
875 (WebCore::AccessibilityObject::isValueAutofilled):
876 * css/SelectorCheckerTestFunctions.h:
877 (WebCore::isAutofilled):
878 * css/StyleResolver.cpp:
879 (WebCore::StyleResolver::canShareStyleWithControl):
880 Update for new spelling of AutoFill.
882 2015-03-11 Geoffrey Garen <ggaren@apple.com>
884 Refactored the JSC::Heap extra cost API for clarity and to make some known bugs more obvious
885 https://bugs.webkit.org/show_bug.cgi?id=142589
887 Reviewed by Andreas Kling.
889 Updated for renames to JSC extra cost APIs.
891 Added FIXMEs to our 10 use cases that are currently wrong, including
892 canvas, which is the cause of https://bugs.webkit.org/show_bug.cgi?id=142457.
894 * Modules/mediasource/SourceBuffer.cpp:
895 (WebCore::SourceBuffer::appendBufferInternal):
896 (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete):
897 (WebCore::SourceBuffer::reportExtraMemoryAllocated):
898 (WebCore::SourceBuffer::reportExtraMemoryCost): Deleted.
899 * Modules/mediasource/SourceBuffer.h:
900 * bindings/js/JSDocumentCustom.cpp:
902 * bindings/js/JSImageDataCustom.cpp:
904 * bindings/js/JSNodeListCustom.cpp:
905 (WebCore::createWrapper):
906 * bindings/scripts/CodeGeneratorJS.pm:
907 (GenerateImplementation):
908 * dom/CollectionIndexCache.cpp:
909 (WebCore::reportExtraMemoryAllocatedForCollectionIndexCache):
910 (WebCore::reportExtraMemoryCostForCollectionIndexCache): Deleted.
911 * dom/CollectionIndexCache.h:
912 (WebCore::Iterator>::computeNodeCountUpdatingListCache):
913 * html/HTMLCanvasElement.cpp:
914 (WebCore::HTMLCanvasElement::createImageBuffer):
915 * html/HTMLCollection.h:
916 (WebCore::CollectionNamedElementCache::didPopulate):
917 * html/HTMLImageLoader.cpp:
918 (WebCore::HTMLImageLoader::imageChanged):
919 * html/HTMLMediaElement.cpp:
920 (WebCore::HTMLMediaElement::parseAttribute):
921 * xml/XMLHttpRequest.cpp:
922 (WebCore::XMLHttpRequest::dropProtection):
924 2015-03-11 Benjamin Poulain <bpoulain@apple.com>
926 Add basic support for BOL and EOL assertions to the URL Filter parser
927 https://bugs.webkit.org/show_bug.cgi?id=142568
929 Reviewed by Alex Christensen.
931 This patch adds heavily restricted support for BOL and EOL to the URL filter parser.
933 Both assertions must be the first/last term of their pattern. Any advanced combination
934 results in a parsing error.
936 The BOL assertion is easy to represent: currently, any pattern starts at the beginning
937 of a line and the NFA are generated accordingly.
939 I had two options to represent the EOL assertion:
940 1) Add a new special transition on EOL.
941 2) Add a new vector of actions to the states, conditional to the EOL input.
943 I picked the first option to avoid growing every state by a vector
944 that would be empty in the vast majority of cases.
947 On the matching side, the interpreter was modified to support transitions on '\0'.
948 DFABytecodeInstruction::CheckValue now stops when running on a character after
949 the end of the string.
951 DFABytecodeInstruction::Jump gets two fixes: First we now account for the index
952 to avoid going past the end of the input. Second, stop on '\0' too... the reason
953 is that the unconditional jump is only used for fallback edges of the DFA, fallback
954 edge are not supposed to accept '\0'.
956 * contentextensions/DFA.cpp:
957 (WebCore::ContentExtensions::printTransitions):
958 * contentextensions/DFABytecodeInterpreter.cpp:
959 (WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):
960 * contentextensions/DFANode.h:
961 * contentextensions/NFA.cpp:
962 (WebCore::ContentExtensions::NFA::addTransition):
963 (WebCore::ContentExtensions::NFA::addEpsilonTransition):
964 (WebCore::ContentExtensions::printTransitions):
965 * contentextensions/NFANode.h:
966 * contentextensions/NFAToDFA.cpp:
967 (WebCore::ContentExtensions::populateTransitions):
968 (WebCore::ContentExtensions::NFAToDFA::convert):
969 * contentextensions/URLFilterParser.cpp:
970 (WebCore::ContentExtensions::Term::Term):
971 (WebCore::ContentExtensions::Term::isEndOfLineAssertion):
972 (WebCore::ContentExtensions::GraphBuilder::assertionBOL):
973 (WebCore::ContentExtensions::GraphBuilder::assertionEOL):
974 (WebCore::ContentExtensions::GraphBuilder::sinkFloatingTermIfNecessary):
976 2015-03-11 Jer Noble <jer.noble@apple.com>
978 [Mac] Update fullscreen placeholder UI to use Vibrancy.
979 https://bugs.webkit.org/show_bug.cgi?id=142586
981 Reviewed by Eric Carlson.
983 Update the fullscreen placeholder with a translucent vibrant appearance
984 using NSVisualEffectView. Since NSVisuaEffectView is only available for
985 OS X 10.10 and above, wrap the new implementation in a version check and
986 retain the old implementation.
988 Drive-by: Update the strings for the placeholder view with new HI guidance
991 * English.lproj/Localizable.strings:
992 * platform/LocalizedStrings.cpp:
993 (WebCore::clickToExitFullScreenText):
994 * platform/mac/WebCoreFullScreenPlaceholderView.h:
995 * platform/mac/WebCoreFullScreenPlaceholderView.mm:
996 (-[WebCoreFullScreenPlaceholderView setExitWarningVisible:]):
998 2015-03-11 Timothy Horton <timothy_horton@apple.com>
1000 Make it possible to zoom on pages that claim to lay out to device size and then fail to do so
1001 https://bugs.webkit.org/show_bug.cgi?id=142549
1003 Reviewed by Simon Fraser.
1005 * page/ViewportConfiguration.cpp:
1006 (WebCore::ViewportConfiguration::ViewportConfiguration):
1007 Rename m_ignoreScalingConstraints to m_canIgnoreScalingConstraints,
1008 because it being true does not guarantee that we will ignore scaling constraints,
1009 but it being false does guarantee that we won't.
1011 (WebCore::ViewportConfiguration::shouldIgnoreScalingConstraints):
1012 Ignore scaling constraints if the page:
1013 a) claimed to want to lay out to device-width and then laid out too wide
1014 b) claimed to want to lay out to device-height and then laid out too tall
1015 c) claimed to want to lay out with initialScale=1 and then laid out too wide
1017 (WebCore::ViewportConfiguration::initialScale):
1018 (WebCore::ViewportConfiguration::minimumScale):
1019 (WebCore::ViewportConfiguration::allowsUserScaling):
1020 Call shouldIgnoreScalingConstraints() instead of looking at the local, so we can
1021 have some more logic here (as above).
1023 (WebCore::ViewportConfiguration::description):
1024 Dump whether we're ignoring scaling constraints.
1026 (WebCore::ViewportConfiguration::dump):
1027 Use WTFLogAlways so that the output goes to various other logging mechanisms
1028 instead of just stderr.
1030 * page/ViewportConfiguration.h:
1031 (WebCore::ViewportConfiguration::setCanIgnoreScalingConstraints):
1032 (WebCore::ViewportConfiguration::setIgnoreScalingConstraints): Deleted.
1034 2015-03-11 Myles C. Maxfield <mmaxfield@apple.com>
1036 Use out-of-band messaging for RenderBox::firstLineBaseline() and RenderBox::inlineBlockBaseline()
1037 https://bugs.webkit.org/show_bug.cgi?id=142569
1039 Reviewed by David Hyatt.
1041 Currently, RenderBox::firstLineBaseline() and RenderBox::inlineBlockBaseline() return -1 to mean
1042 that its baseline should be skipped. Instead of using this sentinel value, this patch changes the
1043 return type from int to Optional<int>.
1045 No new tests because there is no behavior change.
1047 * rendering/RenderBlock.cpp:
1048 (WebCore::RenderBlock::baselinePosition):
1049 (WebCore::RenderBlock::firstLineBaseline):
1050 (WebCore::RenderBlock::inlineBlockBaseline):
1051 * rendering/RenderBlock.h:
1052 * rendering/RenderBlockFlow.cpp:
1053 (WebCore::RenderBlockFlow::firstLineBaseline):
1054 (WebCore::RenderBlockFlow::inlineBlockBaseline):
1055 * rendering/RenderBlockFlow.h:
1056 * rendering/RenderBox.h:
1057 (WebCore::RenderBox::firstLineBaseline):
1058 (WebCore::RenderBox::inlineBlockBaseline):
1059 * rendering/RenderDeprecatedFlexibleBox.cpp:
1060 (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
1061 * rendering/RenderFlexibleBox.cpp:
1062 (WebCore::RenderFlexibleBox::baselinePosition):
1063 (WebCore::RenderFlexibleBox::firstLineBaseline):
1064 (WebCore::RenderFlexibleBox::inlineBlockBaseline):
1065 (WebCore::RenderFlexibleBox::marginBoxAscentForChild):
1066 * rendering/RenderFlexibleBox.h:
1067 * rendering/RenderMenuList.h:
1068 * rendering/RenderTable.cpp:
1069 (WebCore::RenderTable::cellAbove):
1070 (WebCore::RenderTable::cellBelow):
1071 (WebCore::RenderTable::cellBefore):
1072 (WebCore::RenderTable::cellAfter):
1073 (WebCore::RenderTable::firstLineBlock):
1074 (WebCore::RenderTable::baselinePosition):
1075 (WebCore::RenderTable::inlineBlockBaseline):
1076 (WebCore::RenderTable::firstLineBaseline):
1077 * rendering/RenderTable.h:
1078 * rendering/RenderTableCell.cpp:
1079 (WebCore::RenderTableCell::cellBaselinePosition):
1080 * rendering/RenderTableSection.cpp:
1081 (WebCore::RenderTableSection::firstLineBaseline):
1082 * rendering/RenderTableSection.h:
1083 * rendering/RenderTextControl.h:
1084 * rendering/mathml/RenderMathMLBlock.cpp:
1085 (WebCore::RenderMathMLBlock::baselinePosition):
1086 (WebCore::RenderMathMLTable::firstLineBaseline):
1087 * rendering/mathml/RenderMathMLBlock.h:
1088 * rendering/mathml/RenderMathMLFraction.cpp:
1089 (WebCore::RenderMathMLFraction::firstLineBaseline):
1090 * rendering/mathml/RenderMathMLFraction.h:
1091 * rendering/mathml/RenderMathMLOperator.cpp:
1092 (WebCore::RenderMathMLOperator::firstLineBaseline):
1093 * rendering/mathml/RenderMathMLOperator.h:
1094 * rendering/mathml/RenderMathMLRoot.cpp:
1095 (WebCore::RenderMathMLRoot::firstLineBaseline):
1096 (WebCore::RenderMathMLRoot::layout):
1097 * rendering/mathml/RenderMathMLRoot.h:
1098 * rendering/mathml/RenderMathMLRow.cpp:
1099 (WebCore::RenderMathMLRow::layout):
1100 * rendering/mathml/RenderMathMLScripts.cpp:
1101 (WebCore::RenderMathMLScripts::layout):
1102 (WebCore::RenderMathMLScripts::firstLineBaseline):
1103 * rendering/mathml/RenderMathMLScripts.h:
1104 * rendering/mathml/RenderMathMLSpace.cpp:
1105 (WebCore::RenderMathMLSpace::firstLineBaseline):
1106 * rendering/mathml/RenderMathMLSpace.h:
1107 * rendering/mathml/RenderMathMLUnderOver.cpp:
1108 (WebCore::RenderMathMLUnderOver::firstLineBaseline):
1109 * rendering/mathml/RenderMathMLUnderOver.h:
1111 2015-03-11 Timothy Horton <timothy_horton@apple.com>
1113 <attachment>s should be created when dropping files onto contentEditable areas
1114 https://bugs.webkit.org/show_bug.cgi?id=142494
1115 <rdar://problem/19982553>
1117 Reviewed by Anders Carlsson.
1119 Covered by existing tests.
1121 * editing/mac/EditorMac.mm:
1122 (WebCore::Editor::WebContentReader::readFilenames):
1123 Instead of inserting the dropped URLs as strings, make an <attachment>
1126 2015-03-11 David Hyatt <hyatt@apple.com>
1128 Optimize offsetWidth and offsetHeight to avoid doing layouts.
1129 https://bugs.webkit.org/show_bug.cgi?id=142544
1131 Reviewed by Beth Dakin.
1134 (WebCore::Document::updateLayoutIfDimensionsOutOfDate):
1136 Added a new method that only updates layout if it determines that the desired dimensions are out
1140 (WebCore::Element::offsetWidth):
1141 (WebCore::Element::offsetHeight):
1142 Patch offsetWidth and offsetHeight to call the new method rather than updateLayoutIgnorePendingStylesheets.
1144 2015-03-11 Commit Queue <commit-queue@webkit.org>
1146 Unreviewed, rolling out r181367.
1147 https://bugs.webkit.org/show_bug.cgi?id=142581
1149 Caused crashes on the debug bots (Requested by cdumez on
1154 "Web Inspector: CSS parser errors in the console should
1155 include column numbers"
1156 https://bugs.webkit.org/show_bug.cgi?id=114313
1157 http://trac.webkit.org/changeset/181367
1159 2015-03-11 Myles C. Maxfield <mmaxfield@apple.com>
1161 Inline block children do not have correct baselines if their children are also block elements
1162 https://bugs.webkit.org/show_bug.cgi?id=142559
1164 Reviewed by Darin Adler.
1166 Perform the same computation on child block elements as child inline elements.
1168 Test: fast/text/baseline-inline-block-block-children.html
1170 * rendering/RenderBlockFlow.cpp:
1171 (WebCore::RenderBlockFlow::inlineBlockBaseline):
1173 2015-03-11 Carlos Alberto Lopez Perez <clopez@igalia.com>
1175 [CMake][GStreamer] Building EFL or GTK with ENABLE_VIDEO and without ENABLE_WEB_AUDIO is broken.
1176 https://bugs.webkit.org/show_bug.cgi?id=142577
1178 Reviewed by Carlos Garcia Campos.
1180 No new tests, this is a build fix.
1182 * PlatformEfl.cmake: Include GSTREAMER_AUDIO_LIBRARIES on the link step both for ENABLE_VIDEO and ENABLE_WEB_AUDIO.
1183 * PlatformGTK.cmake: Idem.
1185 2015-03-10 Philippe Normand <pnormand@igalia.com>
1187 Rename MediaStreamCenter to RealtimeMediaSourceCenter
1188 https://bugs.webkit.org/show_bug.cgi?id=142535
1190 Reviewed by Eric Carlson.
1192 As per bug title, rename MediaStreamCenter to
1193 RealtimeMediaSourceCenter, this class manages
1194 RealtimeMediaSources, not MediaStreams. Some un-needed includes of
1195 the header were also removed.
1197 2015-03-11 Gyuyoung Kim <gyuyoung.kim@samsung.com>
1199 Remove unnecessary create() factory functions
1200 https://bugs.webkit.org/show_bug.cgi?id=142558
1202 Reviewed by Darin Adler.
1204 create() function which just returns new instance can be replaced with std::make_unique<>.
1206 No new tests, no behavior changes.
1208 * bindings/js/JSCryptoKeySerializationJWK.cpp:
1209 (WebCore::JSCryptoKeySerializationJWK::keyDataOctetSequence):
1210 * crypto/keys/CryptoKeyAES.cpp:
1211 (WebCore::CryptoKeyAES::exportData):
1212 * crypto/keys/CryptoKeyDataOctetSequence.h:
1213 * crypto/keys/CryptoKeyHMAC.cpp:
1214 (WebCore::CryptoKeyHMAC::exportData):
1215 * crypto/keys/CryptoKeySerializationRaw.cpp:
1216 (WebCore::CryptoKeySerializationRaw::keyData):
1217 * platform/audio/mac/CARingBuffer.cpp:
1218 (WebCore::CARingBuffer::create): Deleted.
1219 * platform/audio/mac/CARingBuffer.h:
1220 * platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
1221 (WebCore::AudioSourceProviderAVFObjC::prepare):
1222 * testing/Internals.cpp:
1223 (WebCore::Internals::queueMicroTask):
1224 * testing/MicroTaskTest.cpp:
1225 (WebCore::MicroTaskTest::create): Deleted.
1226 * testing/MicroTaskTest.h:
1227 (WebCore::MicroTaskTest::MicroTaskTest):
1229 2015-03-10 Joseph Pecoraro <pecoraro@apple.com>
1231 Web Inspector: CSS parser errors in the console should include column numbers
1232 https://bugs.webkit.org/show_bug.cgi?id=114313
1234 Reviewed by Benjamin Poulain.
1236 Test: inspector-protocol/console/warnings-errors.html
1239 (WebCore::CSSParser::currentCharacterOffset):
1240 Get the current character offset depending on the source type.
1241 Add instance variables to track column position and start
1242 line / column for inline stylesheets.
1244 * css/CSSParser.cpp:
1245 (WebCore::CSSParser::CSSParser):
1246 (WebCore::CSSParser::parseSheet):
1247 Initialize new instance variables.
1249 (WebCore::CSSParser::currentLocation):
1250 Update to include column information. Also, if we are on the first line
1251 we may need to take into account a start column offset as well.
1253 (WebCore::CSSParser::realLex):
1254 When bumping the line number, reset the column offset for the next
1255 line with the next character.
1257 (WebCore::CSSParser::syntaxError):
1258 (WebCore::CSSParser::logError):
1259 Include column information.
1261 * css/StyleSheetContents.cpp:
1262 (WebCore::StyleSheetContents::parseAuthorStyleSheet):
1263 (WebCore::StyleSheetContents::parseString):
1264 (WebCore::StyleSheetContents::parseStringAtLineAndColumn):
1265 Include column information.
1267 * css/StyleSheetContents.h:
1268 * dom/InlineStyleSheetOwner.cpp:
1269 (WebCore::InlineStyleSheetOwner::InlineStyleSheetOwner):
1270 (WebCore::InlineStyleSheetOwner::createSheet):
1271 Save and use column information later on.
1273 * dom/InlineStyleSheetOwner.h:
1274 * inspector/InspectorStyleSheet.cpp:
1275 (WebCore::InspectorStyleSheet::ensureSourceData):
1276 Updated parser signature needs starting column and no longer has optional parameters.
1278 2015-03-10 Darin Adler <darin@apple.com>
1280 Try to fix the GTK build.
1282 * html/HTMLVideoElement.idl: Work around gobject bindings generator limitation
1283 by putting in a LANGUAGE_GOBJECT conditional.
1285 2015-03-10 Darin Adler <darin@apple.com>
1287 Some event handler fixes
1288 https://bugs.webkit.org/show_bug.cgi?id=142474
1290 Reviewed by Anders Carlsson.
1292 * bindings/scripts/CodeGenerator.pm:
1293 (GenerateConditionalStringFromAttributeValue): Improved the algorithm here to
1294 handle combinations of & and | in conditional expressions; that's coming up when
1295 combining conditionals for includes in NavigatorContentUtils.idl.
1297 * bindings/scripts/CodeGeneratorJS.pm:
1298 (AddToImplIncludes): Removed the rudimentary attempt to split and merge
1299 conditionals involving | here; instead we rely on the rules in the
1300 GenerateConditionalStringFromAttributeValue to handle this.
1301 (GenerateImplementation): Passed new "conditional" argument to JSValueToNative.
1302 (GenerateParametersCheck): Pass "conditional" argument to AddToImplIncludes and
1304 (JSValueToNative): Changed to take "conditional" as an argument, since getting
1305 it from the signature won't work for a method parameter.
1306 (WriteData): Merge duplicates based on the result of the
1307 GenerateConditionalStringFromAttributeValue function rather than on the values
1308 passed into that function, since that function converts conditionals into a
1309 canonical form and can make two strings equal that don't start out that way.
1311 * bindings/scripts/CodeGeneratorObjC.pm:
1312 (SkipAttribute): Added code to guarantee we won't make Objective-C bindings
1313 for event handlers. We will rename EventListener to EventHandler in a
1316 * bindings/scripts/test/JS/JSTestInterface.cpp: Updated for a progression caused
1317 by the better logic for conditional includes.
1319 * bindings/scripts/test/JS/JSTestObj.cpp: Updated for change to the test below.
1320 * bindings/scripts/test/TestObj.idl: Added test of an event handler attribute.
1322 * dom/Document.idl: Removed unneeded language #if around event handler
1323 attributes. Removed all the commented out event handler attributes.
1324 Sorted event handler attributes into a single section rather than separating
1325 "standard" from "extensions". Sorted the conditional event handler attributes
1326 into paragraphs at the bottom. We will probably make them all unconditional
1327 in a subsequent patch.
1329 * dom/Element.idl: Removed unneeded language #if around event handler
1330 attributes. Removed all the commented out event handler attributes.
1331 Moved event handler attributes here from all derived element classes to
1332 match the approach from the HTML standard. Also resorted the attributes
1333 as in Document above.
1335 * html/HTMLBodyElement.idl: Removed unneeded language #if around event handler
1336 attributes. Removed all the commented out event handler attributes.
1337 Sorted event handler attributes into a single section rather than separating
1338 "standard" from "overrides".
1340 * html/HTMLElement.cpp:
1341 (WebCore::HTMLElement::populateEventNameForAttributeLocalNameMap):
1342 Added a few missing attribute names, and re-sorted a bit. Moved any from
1343 element subclasses here.
1345 * html/HTMLFormElement.cpp:
1346 (WebCore::HTMLFormElement::parseAttribute): Moved code to handle
1347 oncomplete and oncompleteerror to Element and HTMLElement.
1348 * html/HTMLFormElement.idl: Ditto.
1350 * html/HTMLFrameSetElement.idl: Removed #if and resorted as above.
1352 * html/HTMLInputElement.cpp:
1353 (WebCore::HTMLInputElement::parseAttribute): Moved code to handle
1354 onsearch to HTMLElement.
1356 * html/HTMLMediaElement.cpp:
1357 (WebCore::HTMLMediaElement::parseAttribute): Moved code to handle
1358 all the event handler attributes to HTMLElement.
1359 (WebCore::HTMLMediaElement::updateCaptionContainer): Removed a redundant
1360 if statement I noticed while auditing all calls to JSC::call.
1361 (WebCore::HTMLMediaElement::didAddUserAgentShadowRoot): Added clearException.
1362 I noticed this was missing because a flawed earlier version of my patch was
1363 causing the script to fail, leaving an exception behind that caused an
1364 assertion later. So I audited all calls to JSC::call looking for this mistake.
1366 * html/HTMLMediaElement.idl: Moved all the event handlers from here to
1367 Element. Also changed everything possible to use Conditional instead of #if.
1369 * html/HTMLPlugInImageElement.cpp:
1370 (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Added
1371 clearException. Noticed it was missing while auditing all calls to JSC::call.
1373 * html/HTMLVideoElement.cpp:
1374 (WebCore::HTMLVideoElement::parseAttribute): Moved event handler code to
1377 * html/HTMLVideoElement.idl: Moved event handler to Element.idl and use
1378 Conditional instead of #if.
1380 * page/DOMWindow.idl: Use Conditional instead of #if and tidy up the event
1383 * svg/svgattrs.in: Remove six unused attribute names. Presumably used in
1384 some older scheme to implement event handlers but no longer used at all.
1386 2015-03-10 Brent Fulgham <bfulgham@apple.com>
1388 CSS scroll-snap-destination and scroll-snap-coordinate are not honoring position values
1389 https://bugs.webkit.org/show_bug.cgi?id=142411
1391 Reviewed by Simon Fraser.
1393 Tested by css3/scroll-snap/scroll-snap-position-values.html.
1395 Revise the CSSParser to recognize that scroll-snap-coordinates and scroll-snap-destination
1396 may be specified as positions, therefore allowing 'top', 'bottom', and 'center' for the Y axis,
1397 and 'left', 'right', and 'center' for the X axis.
1399 Correct implementation to support calculated values for Scroll Snap Point markup. This required the
1400 Scroll Snap Point-specific LengthRepeat class to change its internal representation from a CSSPrimitiveValue
1401 to a regular CSSValue.
1403 Add tests that these position labels, as well as combinations with percentages and pixel offsets
1404 are parsed properly.
1406 * css/CSSComputedStyleDeclaration.cpp:
1407 (WebCore::scrollSnapDestination): Switch from 'percentageOrZoomAdjustedValue' to 'zoomAdjustedPixelValueForLength'
1408 when working with Length values. This is necessary to allow calculated results to be based on the proper default
1410 (WebCore::scrollSnapPoints): Ditto.
1411 (WebCore::scrollSnapCoordinates): Ditto.
1412 * css/CSSParser.cpp:
1413 (WebCore::CSSParser::parseScrollSnapPositions): Consolidated code for dealing with snap point
1415 (WebCore::CSSParser::parseScrollSnapDestination): Revise to call new helper function.
1416 (WebCore::CSSParser::parseScrollSnapCoordinate): Ditto.
1417 (WebCore::CSSParser::parseFillPositionX): Rename as parsePositionX.
1418 (WebCore::CSSParser::parseFillPositionY): Rename as parsePositionY.
1419 (WebCore::CSSParser::parseFillProperty): Update to call renamed parsePosition{X|Y} methods.
1420 (WebCore::CSSParser::parseTransformOrigin): Ditto.
1421 (WebCore::CSSParser::parsePerspectiveOrigin): Ditto.
1423 * css/LengthRepeat.h: Revise class to use a CSSValue, rather than a CSSPrimitiveValue, so that we can represent
1424 repeat values as calculations.
1426 2015-03-10 Enrica Casucci <enrica@apple.com>
1428 Add support for more emoji with variation.
1429 https://bugs.webkit.org/show_bug.cgi?id=142548
1430 rdar://problem/20105008
1432 Reviewed by Tim Horton.
1434 Update ICU rules to support new emoji with variation.
1436 Test: editing/selection/extend-by-character-007.html
1438 * platform/text/TextBreakIterator.cpp:
1439 (WebCore::cursorMovementIterator):
1441 2015-03-10 Alex Christensen <achristensen@webkit.org>
1443 Use unsigned for HashSet size.
1444 https://bugs.webkit.org/show_bug.cgi?id=142518
1446 Reviewed by Benjamin Poulain.
1448 * Modules/websockets/WebSocketDeflateFramer.cpp:
1449 (WebCore::WebSocketExtensionDeflateFrame::processResponse):
1450 * bindings/js/SerializedScriptValue.cpp:
1451 (WebCore::CloneSerializer::checkForDuplicate):
1452 (WebCore::CloneSerializer::writeConstantPoolIndex):
1453 * dom/ScriptRunner.cpp:
1454 (WebCore::ScriptRunner::~ScriptRunner):
1455 * loader/ResourceLoadScheduler.h:
1456 * platform/graphics/Font.cpp:
1457 (WebCore::Font::systemFallbackFontForCharacter):
1458 * platform/graphics/FontCache.cpp:
1459 (WebCore::FontCache::purgeInactiveFontDataIfNeeded):
1460 (WebCore::FontCache::purgeInactiveFontData):
1461 * platform/graphics/FontCache.h:
1462 * platform/graphics/freetype/FontCacheFreeType.cpp:
1463 (WebCore::FontCache::systemFallbackForCharacters):
1464 * platform/graphics/ios/FontCacheIOS.mm:
1465 (WebCore::FontCache::getSystemFontFallbackForCharacters):
1466 (WebCore::FontCache::systemFallbackForCharacters):
1467 (WebCore::FontCache::similarFont):
1468 * platform/graphics/mac/FontCacheMac.mm:
1469 (WebCore::shouldAutoActivateFontIfNeeded):
1470 (WebCore::FontCache::systemFallbackForCharacters):
1471 (WebCore::FontCache::similarFont):
1472 * platform/graphics/win/FontCacheWin.cpp:
1473 (WebCore::FontCache::systemFallbackForCharacters):
1474 * rendering/RenderDeprecatedFlexibleBox.cpp:
1475 (WebCore::FlexBoxIterator::next):
1476 * rendering/RenderTableSection.cpp:
1477 (WebCore::RenderTableSection::computeOverflowFromCells):
1479 2015-03-10 Eric Carlson <eric.carlson@apple.com>
1481 [Mac] Refactor media controls code
1482 https://bugs.webkit.org/show_bug.cgi?id=142455
1484 Reviewed by Dean Jackson.
1486 No new tests, updated tests/media/hls/video-controls-live-stream-expected.txt.
1488 * Modules/mediacontrols/mediaControlsApple.js:
1490 (Controller.prototype.addVideoListeners):
1491 (Controller.prototype.removeVideoListeners):
1492 (Controller.prototype.createControls):
1493 (Controller.prototype.setControlsType):
1494 (Controller.prototype.configureInlineControls):
1495 (Controller.prototype.updateStatusDisplay):
1496 (Controller.prototype.handlePanelMouseDown):
1497 (Controller.prototype.showControls):
1498 (Controller.prototype.hideControls):
1499 (Controller.prototype.handleOptimizedFullscreenButtonClicked):
1500 (Controller.prototype.currentPlaybackTargetIsWireless):
1501 (Controller.prototype.updateShouldListenForPlaybackTargetAvailabilityEvent):
1502 (Controller.prototype.updateWirelessPlaybackStatus):
1503 (Controller.prototype.updateWirelessTargetAvailable):
1504 (Controller.prototype.handleWirelessPickerButtonClicked):
1505 (Controller.prototype.handleWirelessPlaybackChange):
1506 (Controller.prototype.handleWirelessTargetAvailableChange):
1507 (Controller.prototype.setShouldListenForPlaybackTargetAvailabilityEvent):
1508 * Modules/mediacontrols/mediaControlsiOS.js:
1510 (ControllerIOS.prototype.addVideoListeners):
1511 (ControllerIOS.prototype.removeVideoListeners):
1512 (ControllerIOS.prototype.createControls):
1513 (ControllerIOS.prototype.setControlsType):
1514 (ControllerIOS.prototype.configureInlineControls):
1515 (ControllerIOS.prototype.showControls):
1516 (ControllerIOS.prototype.handleWirelessPickerButtonTouchEnd):
1517 (ControllerIOS.prototype.updateShouldListenForPlaybackTargetAvailabilityEvent):
1518 (ControllerIOS.prototype.updateStatusDisplay):
1519 (ControllerIOS.prototype.setShouldListenForPlaybackTargetAvailabilityEvent):
1520 (ControllerIOS.prototype.currentPlaybackTargetIsWireless): Deleted.
1521 (ControllerIOS.prototype.updateWirelessPlaybackStatus): Deleted.
1522 (ControllerIOS.prototype.updateWirelessTargetAvailable): Deleted.
1523 (ControllerIOS.prototype.hideControls): Deleted.
1524 (ControllerIOS.prototype.handleWirelessPlaybackChange): Deleted.
1525 (ControllerIOS.prototype.handleWirelessTargetAvailableChange): Deleted.
1527 2015-03-10 Said Abou-Hallawa <sabouhallawa@apple.com>
1529 Remove PassRefPtr from svg/properties classes.
1530 https://bugs.webkit.org/show_bug.cgi?id=142063.
1532 Reviewed by Darin Adler.
1534 Remove PassRefPtr from svg/properties classes. All the return types and
1535 the local variables should be RefPtr. If we are sure the pointer can't
1536 be null, we use Ref instead.
1538 * svg/SVGMarkerElement.cpp:
1539 (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper):
1540 (WebCore::SVGMarkerElement::orientTypeAnimated):
1541 * svg/SVGMarkerElement.h:
1542 * svg/SVGPathElement.cpp:
1543 (WebCore::SVGPathElement::lookupOrCreateDWrapper):
1544 (WebCore::SVGPathElement::pathSegList):
1545 (WebCore::SVGPathElement::animatedPathSegList):
1546 * svg/SVGPathElement.h:
1547 * svg/SVGPolyElement.cpp:
1548 (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper):
1549 (WebCore::SVGPolyElement::points):
1550 (WebCore::SVGPolyElement::animatedPoints):
1551 * svg/SVGPolyElement.h:
1552 * svg/SVGTextContentElement.cpp:
1553 (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper):
1554 (WebCore::SVGTextContentElement::textLengthAnimated):
1555 * svg/SVGTextContentElement.h:
1556 * svg/SVGViewSpec.cpp:
1557 (WebCore::SVGViewSpec::transform):
1558 (WebCore::SVGViewSpec::viewBoxAnimated):
1559 (WebCore::SVGViewSpec::preserveAspectRatioAnimated):
1560 (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper):
1561 (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper):
1562 (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper):
1563 * svg/SVGViewSpec.h:
1564 * svg/properties/SVGAnimatedEnumerationPropertyTearOff.h:
1565 (WebCore::SVGAnimatedEnumerationPropertyTearOff::create):
1566 * svg/properties/SVGAnimatedListPropertyTearOff.h:
1567 (WebCore::SVGAnimatedListPropertyTearOff::create):
1568 * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
1569 (WebCore::SVGAnimatedPathSegListPropertyTearOff::create):
1570 * svg/properties/SVGAnimatedProperty.h:
1571 (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper):
1572 * svg/properties/SVGAnimatedPropertyMacros.h:
1573 * svg/properties/SVGAnimatedPropertyTearOff.h:
1574 (WebCore::SVGAnimatedPropertyTearOff::create):
1575 * svg/properties/SVGAnimatedStaticPropertyTearOff.h:
1576 (WebCore::SVGAnimatedStaticPropertyTearOff::create):
1577 * svg/properties/SVGAnimatedTransformListPropertyTearOff.h:
1578 (WebCore::SVGAnimatedTransformListPropertyTearOff::create):
1579 * svg/properties/SVGListProperty.h:
1580 (WebCore::SVGListProperty::initializeValuesAndWrappers):
1581 (WebCore::SVGListProperty::getItemValuesAndWrappers):
1582 (WebCore::SVGListProperty::insertItemBeforeValuesAndWrappers):
1583 (WebCore::SVGListProperty::replaceItemValuesAndWrappers):
1584 (WebCore::SVGListProperty::removeItemValuesAndWrappers):
1585 (WebCore::SVGListProperty::appendItemValuesAndWrappers):
1586 * svg/properties/SVGListPropertyTearOff.h:
1587 (WebCore::SVGListPropertyTearOff::create):
1588 (WebCore::SVGListPropertyTearOff::initialize):
1589 (WebCore::SVGListPropertyTearOff::getItem):
1590 (WebCore::SVGListPropertyTearOff::insertItemBefore):
1591 (WebCore::SVGListPropertyTearOff::replaceItem):
1592 (WebCore::SVGListPropertyTearOff::removeItem):
1593 (WebCore::SVGListPropertyTearOff::appendItem):
1594 * svg/properties/SVGPathSegListPropertyTearOff.cpp:
1595 (WebCore::SVGPathSegListPropertyTearOff::getItem):
1596 (WebCore::SVGPathSegListPropertyTearOff::replaceItem):
1597 (WebCore::SVGPathSegListPropertyTearOff::removeItem):
1598 * svg/properties/SVGPathSegListPropertyTearOff.h:
1599 (WebCore::SVGPathSegListPropertyTearOff::create):
1600 (WebCore::SVGPathSegListPropertyTearOff::initialize):
1601 (WebCore::SVGPathSegListPropertyTearOff::insertItemBefore):
1602 (WebCore::SVGPathSegListPropertyTearOff::appendItem):
1603 * svg/properties/SVGPropertyInfo.h:
1604 * svg/properties/SVGStaticListPropertyTearOff.h:
1605 (WebCore::SVGStaticListPropertyTearOff::create):
1606 * svg/properties/SVGStaticPropertyTearOff.h:
1607 (WebCore::SVGStaticPropertyTearOff::create):
1608 * svg/properties/SVGTransformListPropertyTearOff.h:
1609 (WebCore::SVGTransformListPropertyTearOff::create):
1610 (WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
1611 (WebCore::SVGTransformListPropertyTearOff::consolidate):
1613 2015-03-10 Timothy Horton <timothy_horton@apple.com>
1617 * platform/network/cf/ResourceHandleCFNet.cpp:
1618 (WebCore::ResourceHandle::createCFURLConnection):
1620 2015-03-10 Benjamin Poulain <bpoulain@apple.com>
1622 Extend URL filter's Term definition to support groups/subpatterns
1623 https://bugs.webkit.org/show_bug.cgi?id=142519
1625 Reviewed by Alex Christensen.
1627 Pretty simple extension: Term is extended to support holding
1628 a Vector of Term. The quantifier of the Term applies to its
1629 Vector of term as a whole.
1631 To avoid exposing too much internal in the API of Term, I moved
1632 graph generation from GraphBuilder to Term.
1634 Sinking a CharacterSet works as usual. Sinking a Group is done
1635 by sinking each of its Terms one by one and then apply the quantifier
1636 on the whole subgraph. This is done by recursively calling into
1637 Term::generateGraph().
1639 Since groups could be nested, the groups make a stack with the latest
1641 When sinking a floating Term, it is sunk to the latest open group. If there is no open
1642 group, we use the prefix tree and sink the whole subpattern to the graph.
1644 * contentextensions/URLFilterParser.cpp:
1645 (WebCore::ContentExtensions::Term::Term):
1646 (WebCore::ContentExtensions::Term::extendGroupSubpattern):
1647 (WebCore::ContentExtensions::Term::generateGraph):
1648 (WebCore::ContentExtensions::Term::operator==):
1649 (WebCore::ContentExtensions::Term::hash):
1650 (WebCore::ContentExtensions::Term::isUniversalTransition):
1651 (WebCore::ContentExtensions::Term::generateSubgraphForAtom):
1652 (WebCore::ContentExtensions::Term::destroy):
1653 (WebCore::ContentExtensions::Term::Group::operator==):
1654 (WebCore::ContentExtensions::Term::Group::hash):
1655 (WebCore::ContentExtensions::GraphBuilder::finalize):
1656 (WebCore::ContentExtensions::GraphBuilder::atomParenthesesSubpatternBegin):
1657 (WebCore::ContentExtensions::GraphBuilder::atomParenthesesEnd):
1658 (WebCore::ContentExtensions::GraphBuilder::sinkFloatingTermIfNecessary):
1659 (WebCore::ContentExtensions::Term::quantifier): Deleted.
1660 (WebCore::ContentExtensions::Term::visitSimpleTransitions): Deleted.
1661 (WebCore::ContentExtensions::GraphBuilder::addTransitions): Deleted.
1662 (WebCore::ContentExtensions::GraphBuilder::sinkFloatingTerm): Deleted.
1664 2015-03-10 Roger Fong <roger_fong@apple.com>
1666 Adjustments to media control fonts.
1667 https://bugs.webkit.org/show_bug.cgi?id=142509.
1668 <rdar://problem/20085228>
1670 Reviewed by Darin Adler.
1672 Use system font for controls. Adjust surrounding divs accordingly.
1673 Apply subpixel antialiasing to all media control text.
1674 * Modules/mediacontrols/mediaControlsApple.css:
1675 (::-webkit-media-controls):
1676 (audio::-webkit-media-controls-closed-captions-container .list):
1677 (audio::-webkit-media-controls-status-display):
1678 (audio::-webkit-media-controls-time-remaining-display):
1679 (audio::-webkit-media-controls-current-time-display):
1680 (audio::-webkit-media-controls-time-remaining-display.five-digit-time):
1681 (audio::-webkit-media-controls-current-time-display.five-digit-time):
1682 (audio::-webkit-media-controls-time-remaining-display.six-digit-time):
1683 (audio::-webkit-media-controls-current-time-display.six-digit-time):
1685 2015-03-10 Dan Bernstein <mitz@apple.com>
1687 Fixed a crash in CertificateInfo::containsNonRootSHA1SignedCertificate when loading a non-HTTPS webapge.
1689 Reviewed by Anders Carlsson.
1691 * platform/network/mac/CertificateInfoMac.mm:
1692 (WebCore::CertificateInfo::containsNonRootSHA1SignedCertificate): Null-check the certificate chain.
1694 2015-03-10 Dan Bernstein <mitz@apple.com>
1698 * platform/spi/cocoa/SecuritySPI.h:
1700 2015-03-10 Zalan Bujtas <zalan@apple.com>
1702 Simple line layout: Merge TextFragmentIterator::findNextBreakablePosition() and TextFragmentIterator::findNextNonWhitespacePosition().
1703 https://bugs.webkit.org/show_bug.cgi?id=142344
1705 Reviewed by Antti Koivisto.
1707 This patch merges findNextBreakablePosition() and findNextNonWhitespacePosition() so that
1708 the segment looping and position handling logic are no longer duplicated. It also unifies
1709 the static next*() functions' signature.
1711 No change in functionality.
1713 * rendering/SimpleLineLayoutTextFragmentIterator.cpp:
1714 (WebCore::SimpleLineLayout::TextFragmentIterator::nextTextFragment):
1715 (WebCore::SimpleLineLayout::nextBreakablePosition):
1716 (WebCore::SimpleLineLayout::nextNonWhitespacePosition):
1717 (WebCore::SimpleLineLayout::TextFragmentIterator::skipToNextPosition):
1718 (WebCore::SimpleLineLayout::TextFragmentIterator::findNextBreakablePosition): Deleted.
1719 (WebCore::SimpleLineLayout::findNextNonWhitespace): Deleted.
1720 (WebCore::SimpleLineLayout::TextFragmentIterator::findNextNonWhitespacePosition): Deleted.
1721 * rendering/SimpleLineLayoutTextFragmentIterator.h:
1723 2015-03-10 Carlos Garcia Campos <cgarcia@igalia.com>
1725 [GTK] GL_MAX_VARYING_FLOATS is not defined in OpenGL ES 2
1726 https://bugs.webkit.org/show_bug.cgi?id=142529
1728 Reviewed by Žan Doberšek.
1730 Do not use GL_MAX_VARYING_FLOATS when platform is GTK+ and using
1733 * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
1734 (WebCore::GraphicsContext3D::checkVaryingsPacking):
1736 2015-03-10 José Dapena Paz <jdapena@igalia.com>
1738 Unreviewed. Fix GTK+ build with OpenGL ES 2 enabled.
1740 Remove USE(OPENGL) ifdef from GLContext.cpp, since there's nothing
1741 specific to OpenGL in that file, and everything depending on
1742 configure options is already protected by USE(GLX) and USE(EGL)
1743 ifdefs. This is causing linking issues when building with OpenGL
1744 ES 2, because the header doesn't have the ifdef, and the cpp file
1745 is not compiled leaving all the interface undefined.
1747 Rubber-stamped by Carlos Garcia Campos.
1749 * platform/graphics/GLContext.cpp:
1751 2015-03-10 Carlos Garcia Campos <cgarcia@igalia.com> and José Dapena Paz <jdapena@igalia.com>
1753 [GTK] Add a configure option to build with OpenGL ES 2
1754 https://bugs.webkit.org/show_bug.cgi?id=142498
1756 Reviewed by Martin Robinson.
1758 Build GLES or GL specific files depending on the build options.
1760 * PlatformGTK.cmake:
1762 2015-03-10 Zan Dobersek <zdobersek@igalia.com>
1764 Shrink the CSSPropertyID enum type
1765 https://bugs.webkit.org/show_bug.cgi?id=142456
1767 Reviewed by Sam Weinig.
1769 Specify uint16_t as the base type for the CSSPropertyID enum.
1770 This is enough to cover all of the CSS properties (429 at this moment,
1771 with static_assert covering future changes). It halves the enum type size,
1772 from 4 bytes to 2, reducing the size of various CSSPropertyID containers.
1774 No new tests -- no change in behavior.
1776 * css/CSSPrimitiveValue.cpp:
1777 (WebCore::propertyName): Remove the unnecessary propertyID < 0 check.
1780 2015-03-10 Dan Bernstein <mitz@apple.com>
1782 WebCore part of <rdar://problem/20086546> [Cocoa] Add an option to treat certificate chains with SHA1-signed certificates as insecure
1783 https://bugs.webkit.org/show_bug.cgi?id=142461
1785 Reviewed by Sam Weinig.
1787 * WebCore.xcodeproj/project.pbxproj: Added reference to SecuritySPI.h and sorted the
1790 * platform/network/cf/CertificateInfo.h: Declared new member function
1791 containsNonRootSHA1SignedCertificate.
1793 * platform/network/mac/CertificateInfoMac.mm:
1794 (WebCore::CertificateInfo::containsNonRootSHA1SignedCertificate): Added. Checks if any but
1795 the last certificate in the chain uses SHA-1 as its signature hash algorithm.
1797 * platform/network/curl/CertificateInfo.h:
1798 (WebCore::CertificateInfo::containsNonRootSHA1SignedCertificate): Added notImplemented
1801 * platform/network/soup/CertificateInfo.h:
1802 (WebCore::CertificateInfo::containsNonRootSHA1SignedCertificate): Ditto.
1804 * platform/spi/cocoa/SecuritySPI.h: Added.
1806 2015-03-09 Chris Dumez <cdumez@apple.com>
1808 [iOS] Sweep all collected objects on critical memory pressure
1809 https://bugs.webkit.org/show_bug.cgi?id=142457
1810 <rdar://problem/20044440>
1812 Reviewed by Geoffrey Garen.
1814 Do a full sweep of objects marked for destruction on critical memory
1815 pressure to free up memory.
1817 * platform/cocoa/MemoryPressureHandlerCocoa.mm:
1818 (WebCore::MemoryPressureHandler::platformReleaseMemory):
1820 2015-03-09 Andy Estes <aestes@apple.com>
1822 [Content Filtering] Give ContentFilter subclasses private constructors, and make them fast-allocated and non-copyable
1823 https://bugs.webkit.org/show_bug.cgi?id=142515
1825 Reviewed by Andreas Kling.
1827 * platform/cocoa/NetworkExtensionContentFilter.h:
1828 * platform/cocoa/ParentalControlsContentFilter.h:
1829 * testing/MockContentFilter.h:
1831 2015-03-09 Chris Dumez <cdumez@apple.com>
1833 [CG] Have Canvas use the IOSurfacePool
1834 https://bugs.webkit.org/show_bug.cgi?id=142417
1835 <rdar://problem/20044440>
1837 Reviewed by Darin Adler.
1839 Have ImageBufferDataCG use the IOSurfacePool so that Canvas can
1840 benefit from it. I see a ~75% progression on Canvas/reuse.html
1841 performance test on my Macbook Pro with 1000 different canvas
1842 sizes and ~110% progression with 100 different canvas sizes.
1844 I also see a ~65% cache hit rate on the mobile version of
1847 Note that ImageData calls CGContextClearRect() after calling
1848 IOSurface::create() so recycling IOSurfaces in this case should
1851 Performance test: Canvas/reuse.html
1853 * platform/graphics/ImageBuffer.h:
1854 (WebCore::ImageBuffer::baseTransform):
1855 * platform/graphics/cg/ImageBufferCG.cpp:
1856 (WebCore::ImageBuffer::ImageBuffer):
1857 (WebCore::ImageBuffer::context):
1858 (WebCore::ImageBuffer::copyImage):
1859 (WebCore::ImageBuffer::copyNativeImage):
1860 (WebCore::ImageBuffer::draw):
1861 (WebCore::ImageBuffer::clip):
1862 (WebCore::ImageBuffer::putByteArray):
1863 (WebCore::ImageBuffer::toDataURL):
1864 * platform/graphics/cg/ImageBufferDataCG.cpp:
1865 (WebCore::ImageBufferData::~ImageBufferData):
1866 (WebCore::ImageBufferData::getData):
1867 (WebCore::ImageBufferData::putData):
1868 (WebCore::ImageBufferData::ImageBufferData): Deleted.
1869 * platform/graphics/cg/ImageBufferDataCG.h:
1870 * platform/graphics/cocoa/IOSurface.h:
1871 * platform/graphics/cocoa/IOSurface.mm:
1872 (IOSurface::surfaceFromPool):
1873 (IOSurface::create):
1874 (IOSurface::createFromSendRight):
1875 (IOSurface::createFromImage):
1876 (IOSurface::setContextSize):
1878 2015-03-09 Brent Fulgham <bfulgham@apple.com>
1880 Assertion in ScrollController::processWheelEventForScrollSnapOnAxis when scrolling with mechanical wheel mouse
1881 https://bugs.webkit.org/show_bug.cgi?id=142517
1883 Reviewed by Simon Fraser.
1885 * platform/cocoa/ScrollController.mm:
1886 (WebCore::toWheelEventStatus): Recognize stateless mechanical wheel events.
1887 (WebCore::ScrollController::processWheelEventForScrollSnapOnAxis): If a mechanical wheel event is processed while
1888 considering scroll snap logic, end any snap animations and clean up.
1889 (WebCore::ScrollController::updateScrollSnapPoints): Don't begin tracking scroll snap state if there is not
1890 scroll snap point defined in the markup.
1892 2015-03-09 Myles C. Maxfield <mmaxfield@apple.com>
1894 REGRESSION(r176978): Inline-blocks with overflowing contents have ascents that are too large
1895 https://bugs.webkit.org/show_bug.cgi?id=141783
1897 Reviewed by David Hyatt.
1899 When we have an inline-block element, and we want to find its baseline (to lay out other
1900 elements on the same line) we loop through the element's children and ask them what their
1901 baselines are. The children use the location of the top of their last line to compute this
1902 value. However, if the child has overflow-y, this might not be the correct calculation.
1904 This behavior is in the spec: "The baseline of an 'inline-block' is the baseline of its last
1905 line box in the normal flow, unless it has either no in-flow line boxes or if its 'overflow'
1906 property has a computed value other than 'visible', in which case the baseline is the bottom
1908 -- http://www.w3.org/TR/CSS21/visudet.html#leading
1910 However, we believe that a better policy is, when overflow is not "visible," to place the
1911 baseline at the bottom of the block if the contents overflowed in the Y direction, and to place
1912 it at the bottom of the last line if the contents did not overflow in the Y direction. This is
1913 partially consistent with previous behavior, and isn't too far from the spec to cause too many
1916 Test: fast/css/inline-block-tricky-baselines.html
1917 fast/text/baseline-inline-block.html
1919 * rendering/RenderBlockFlow.cpp:
1920 (WebCore::RenderBlockFlow::inlineBlockBaseline):
1922 2015-03-09 Andy Estes <aestes@apple.com>
1924 [Content Filtering] Add tests
1925 https://bugs.webkit.org/show_bug.cgi?id=142475
1927 Reviewed by Andreas Kling.
1929 Added a mock content filter that can be configured by window.internals. A test can control whether the filter
1930 is enabled, what to display when a page is blocked, at what point the allow/block decision is made, and what
1933 Added tests to cover allowing and blocking content at each decision point.
1935 Tests: contentfiltering/allow-after-add-data.html
1936 contentfiltering/allow-after-finished-adding-data.html
1937 contentfiltering/allow-after-response.html
1938 contentfiltering/block-after-add-data.html
1939 contentfiltering/block-after-finished-adding-data.html
1940 contentfiltering/block-after-response.html
1942 * DerivedSources.make: Added MockContentFilterSettings.idl.
1943 * WebCore.xcodeproj/project.pbxproj:
1944 * bindings/js/JSMockContentFilterSettingsCustom.cpp: Added.
1945 (WebCore::JSMockContentFilterSettings::decisionPoint): Returned the decision point's JSValue.
1946 (WebCore::JSMockContentFilterSettings::setDecisionPoint): Set the decision point; threw an exception for invalid values.
1947 (WebCore::JSMockContentFilterSettings::decision): Returned the decision's JSValue.
1948 (WebCore::JSMockContentFilterSettings::setDecision): Set the decision; threw an exception for invalid values.
1949 * platform/ContentFilter.cpp:
1950 (WebCore::ContentFilter::types): Renamed from contentFilterTypes.
1951 (WebCore::ContentFilter::createIfNeeded):
1952 (WebCore::contentFilterType): Deleted.
1953 (WebCore::contentFilterTypes): Deleted.
1954 * platform/ContentFilter.h:
1955 (WebCore::ContentFilter::addType): Used to register a new content filter type.
1956 (WebCore::ContentFilter::type): Renamed from contentFilterType.
1957 * platform/cocoa/NetworkExtensionContentFilter.h: Moved definition of HAVE_NE_FILTER_SOURCE to here.
1958 * testing/Internals.cpp:
1959 (WebCore::Internals::resetToConsistentState): Called MockContentFilterSettings::reset().
1960 (WebCore::Internals::Internals): Called MockContentFilter::ensureInstalled().
1961 (WebCore::Internals::mockContentFilterSettings): Returned a reference to MockContentFilterSettings::singleton().
1962 * testing/Internals.h:
1963 * testing/Internals.idl: Added attribute mockContentFilterSettings.
1964 * testing/MockContentFilter.cpp: Added.
1965 (WebCore::MockContentFilter::ensureInstalled): Called MockContentFilter::addType().
1966 (WebCore::MockContentFilter::canHandleResponse): Returned whether MockContentFilterSettings is enabled.
1967 (WebCore::MockContentFilter::create): Returned a new MockContentFilter.
1968 (WebCore::MockContentFilter::MockContentFilter): Called maybeDetermineStatus().
1969 (WebCore::MockContentFilter::addData): Copied data into m_replacementData and called maybeDetermineStatus().
1970 (WebCore::MockContentFilter::finishedAddingData): Called maybeDetermineStatus().
1971 (WebCore::MockContentFilter::needsMoreData): Returned whether m_status equals NeedsMoreData.
1972 (WebCore::MockContentFilter::didBlockData): Returned whether m_status equals Blocked.
1973 (WebCore::MockContentFilter::getReplacementData): Returned a pointer to the start of m_replacementData.
1974 (WebCore::MockContentFilter::unblockHandler): Returned an empty ContentFilterUnblockHandler.
1975 (WebCore::MockContentFilter::maybeDetermineStatus): If m_status is NeedsMoreData and the current decision point
1976 equals MockContentFilterSettings's decision point, set m_status according to MockContentFilterSettings's
1977 decision. If m_status becomes Blocked, clear the original page data from m_replacementData and copy
1978 MockContentFilterSettings's blocked string instead.
1979 * testing/MockContentFilter.h: Copied from Source/WebCore/platform/cocoa/NetworkExtensionContentFilter.h.
1980 * testing/MockContentFilterSettings.cpp: Copied from Source/WebCore/platform/ContentFilter.h.
1981 (WebCore::MockContentFilterSettings::singleton):
1982 (WebCore::MockContentFilterSettings::reset): Reset settings to their initial values.
1983 (WebCore::MockContentFilterSettings::MockContentFilterSettings):
1984 * testing/MockContentFilterSettings.h: Copied from Source/WebCore/platform/cocoa/NetworkExtensionContentFilter.h.
1985 (WebCore::MockContentFilterSettings::ref): Added an empty implementation to make the bindings think this is RefCounted.
1986 (WebCore::MockContentFilterSettings::deref): Ditto.
1987 (WebCore::MockContentFilterSettings::enabled):
1988 (WebCore::MockContentFilterSettings::setEnabled):
1989 (WebCore::MockContentFilterSettings::blockedString):
1990 (WebCore::MockContentFilterSettings::setBlockedString):
1991 (WebCore::MockContentFilterSettings::decisionPoint):
1992 (WebCore::MockContentFilterSettings::setDecisionPoint):
1993 (WebCore::MockContentFilterSettings::decision):
1994 (WebCore::MockContentFilterSettings::setDecision):
1995 * testing/MockContentFilterSettings.idl: Copied from Source/WebCore/platform/ContentFilter.h.
1997 2015-03-09 Zalan Bujtas <zalan@apple.com>
1999 Simple line layout should not be limited to RenderText.
2000 https://bugs.webkit.org/show_bug.cgi?id=142504
2002 Reviewed by Antti Koivisto.
2004 This is in transition to support br element.
2006 No change in functionality.
2008 * rendering/RenderText.cpp:
2009 (WebCore::RenderText::absoluteRects):
2010 (WebCore::RenderText::absoluteQuadsClippedToEllipsis):
2011 (WebCore::RenderText::absoluteQuads):
2012 (WebCore::RenderText::firstRunLocation):
2013 (WebCore::RenderText::linesBoundingBox):
2014 (WebCore::RenderText::caretMinOffset):
2015 (WebCore::RenderText::caretMaxOffset):
2016 (WebCore::RenderText::containsCaretOffset):
2017 * rendering/SimpleLineLayoutFlowContents.cpp:
2018 (WebCore::SimpleLineLayout::FlowContents::segmentForRenderer):
2019 * rendering/SimpleLineLayoutFlowContents.h:
2020 * rendering/SimpleLineLayoutFunctions.cpp:
2021 (WebCore::SimpleLineLayout::computeBoundingBox):
2022 (WebCore::SimpleLineLayout::computeFirstRunLocation):
2023 (WebCore::SimpleLineLayout::collectAbsoluteRects):
2024 (WebCore::SimpleLineLayout::collectAbsoluteQuads):
2025 (WebCore::SimpleLineLayout::computeTextBoundingBox): Deleted.
2026 (WebCore::SimpleLineLayout::computeTextFirstRunLocation): Deleted.
2027 (WebCore::SimpleLineLayout::collectTextAbsoluteRects): Deleted.
2028 (WebCore::SimpleLineLayout::collectTextAbsoluteQuads): Deleted.
2029 * rendering/SimpleLineLayoutFunctions.h:
2030 (WebCore::SimpleLineLayout::findCaretMinimumOffset):
2031 (WebCore::SimpleLineLayout::findCaretMaximumOffset):
2032 (WebCore::SimpleLineLayout::containsCaretOffset):
2033 (WebCore::SimpleLineLayout::findTextCaretMinimumOffset): Deleted.
2034 (WebCore::SimpleLineLayout::findTextCaretMaximumOffset): Deleted.
2035 (WebCore::SimpleLineLayout::containsTextCaretOffset): Deleted.
2036 * rendering/SimpleLineLayoutResolver.cpp:
2037 (WebCore::SimpleLineLayout::RunResolver::Run::text):
2038 (WebCore::SimpleLineLayout::RunResolver::rangeForRenderer):
2039 * rendering/SimpleLineLayoutResolver.h:
2040 * rendering/SimpleLineLayoutTextFragmentIterator.cpp:
2041 (WebCore::SimpleLineLayout::TextFragmentIterator::textWidth):
2043 2015-03-09 Myles C. Maxfield <mmaxfield@apple.com>
2045 svg/custom/svg-fonts-without-missing-glyph.xhtml fails after fonts/font-fallback-prefers-pictographs.html
2046 https://bugs.webkit.org/show_bug.cgi?id=142470
2048 Reviewed by Anders Carlsson.
2050 After each test, reset all internal settings.
2052 Covered by svg/custom/svg-fonts-without-missing-glyph.xhtml
2054 * testing/InternalSettings.cpp:
2055 (WebCore::InternalSettings::Backup::Backup):
2056 (WebCore::InternalSettings::Backup::restoreTo):
2057 * testing/InternalSettings.h:
2059 2015-03-09 Commit Queue <commit-queue@webkit.org>
2061 Unreviewed, rolling out r181268.
2062 https://bugs.webkit.org/show_bug.cgi?id=142508
2064 Broke tests (Requested by ap on #webkit).
2068 "Simple line layout: Merge
2069 TextFragmentIterator::findNextBreakablePosition() and
2070 TextFragmentIterator::findNextNonWhitespacePosition()."
2071 https://bugs.webkit.org/show_bug.cgi?id=142344
2072 http://trac.webkit.org/changeset/181268
2074 2015-03-09 Benjamin Poulain <benjamin@webkit.org>
2076 CSS JIT: add aliases between :nth-child()/:nth-last-child() and :first-child/:last-child
2077 https://bugs.webkit.org/show_bug.cgi?id=142472
2079 Reviewed by Andreas Kling.
2081 The pseudo class :first-child has weaker tree marking than :nth-child(1).
2082 This patch aliases :nth-child(1) to :first-child in the CSS JIT to take
2085 The strength of :last-child and :nth-last-child(1) are pretty much identical
2086 but :last-child is a bit simpler so I changed it too. It is also easier
2087 to handle both the same.
2089 Tests: fast/selectors/nth-child-matching-first-on-root.html
2090 fast/selectors/nth-child-matching-first.html
2091 fast/selectors/nth-last-child-matching-first-on-root.html
2092 fast/selectors/nth-last-child-matching-first.html
2094 * cssjit/SelectorCompiler.cpp:
2095 (WebCore::SelectorCompiler::addNthChildType):
2096 (WebCore::SelectorCompiler::addPseudoClassType):
2098 2015-03-09 Benjamin Poulain <bpoulain@apple.com>
2100 Merge TrivialAtom and CharacterSet into a Term abstraction, prepare Term for composition
2101 https://bugs.webkit.org/show_bug.cgi?id=142429
2103 Reviewed by Darin Adler.
2105 This patch merges CharacterSet and Trivial atom into a new class: Term. A Term is
2106 a combination of an Atom and one Quantifier.
2108 With term being the basic block, we can use the PrefixTree for any construct,
2109 greatly reducing the size of the NFA graph.
2111 Term is built on top of an union holding the Atom storage. This is done in preparation
2112 for more complicated Atoms like a disjunction.
2114 Everything else is pretty much the same. BuildMode is gone since we use the prefix
2115 tree for everything. FloatingAtomType is gone, a TrivialAtom is now represented
2116 by a single character CharacterSet (or two for case insensitive).
2118 * contentextensions/ContentExtensionParser.cpp:
2119 (WebCore::ContentExtensions::parseRuleList):
2120 * contentextensions/NFA.cpp:
2121 (WebCore::ContentExtensions::NFA::addRuleId):
2122 * contentextensions/URLFilterParser.cpp:
2123 (WebCore::ContentExtensions::Term::Term):
2124 (WebCore::ContentExtensions::Term::~Term):
2125 (WebCore::ContentExtensions::Term::isValid):
2126 (WebCore::ContentExtensions::Term::addCharacter):
2127 (WebCore::ContentExtensions::Term::quantify):
2128 (WebCore::ContentExtensions::Term::quantifier):
2129 (WebCore::ContentExtensions::Term::isUniversalTransition):
2130 (WebCore::ContentExtensions::Term::visitSimpleTransitions):
2131 (WebCore::ContentExtensions::Term::operator=):
2132 (WebCore::ContentExtensions::Term::operator==):
2133 (WebCore::ContentExtensions::Term::hash):
2134 (WebCore::ContentExtensions::Term::isEmptyValue):
2135 (WebCore::ContentExtensions::Term::isDeletedValue):
2136 (WebCore::ContentExtensions::Term::destroy):
2137 (WebCore::ContentExtensions::Term::CharacterSet::operator==):
2138 (WebCore::ContentExtensions::Term::CharacterSet::hash):
2139 (WebCore::ContentExtensions::TermHash::hash):
2140 (WebCore::ContentExtensions::TermHash::equal):
2141 (WebCore::ContentExtensions::GraphBuilder::GraphBuilder):
2142 (WebCore::ContentExtensions::GraphBuilder::finalize):
2143 (WebCore::ContentExtensions::GraphBuilder::atomPatternCharacter):
2144 (WebCore::ContentExtensions::GraphBuilder::atomBuiltInCharacterClass):
2145 (WebCore::ContentExtensions::GraphBuilder::quantifyAtom):
2146 (WebCore::ContentExtensions::GraphBuilder::atomCharacterClassBegin):
2147 (WebCore::ContentExtensions::GraphBuilder::atomCharacterClassAtom):
2148 (WebCore::ContentExtensions::GraphBuilder::atomCharacterClassRange):
2149 (WebCore::ContentExtensions::GraphBuilder::addTransitions):
2150 (WebCore::ContentExtensions::GraphBuilder::sinkFloatingTerm):
2151 (WebCore::ContentExtensions::GraphBuilder::sinkFloatingTermIfNecessary):
2152 (WebCore::ContentExtensions::URLFilterParser::URLFilterParser):
2153 (WebCore::ContentExtensions::URLFilterParser::~URLFilterParser):
2154 (WebCore::ContentExtensions::URLFilterParser::addPattern):
2155 (WebCore::ContentExtensions::trivialAtomFromASCIICharacter): Deleted.
2156 (WebCore::ContentExtensions::quantifyTrivialAtom): Deleted.
2157 (WebCore::ContentExtensions::trivialAtomQuantifier): Deleted.
2158 (WebCore::ContentExtensions::trivialAtomForNewlineClassIDBuiltin): Deleted.
2159 (WebCore::ContentExtensions::GraphBuilder::sinkAtom): Deleted.
2160 (WebCore::ContentExtensions::GraphBuilder::generateTransition): Deleted.
2161 (WebCore::ContentExtensions::GraphBuilder::sinkTrivialAtom): Deleted.
2162 (WebCore::ContentExtensions::GraphBuilder::sinkCharacterSet): Deleted.
2163 (WebCore::ContentExtensions::GraphBuilder::sinkPendingAtomIfNecessary): Deleted.
2164 * contentextensions/URLFilterParser.h:
2166 2015-03-09 Csaba Osztrogonác <ossy@webkit.org>
2168 Fix the !ENABLE(WEBGL) build after r180609
2169 https://bugs.webkit.org/show_bug.cgi?id=142057
2171 Reviewed by Darin Adler.
2173 * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
2174 (WebCore::GraphicsContext3D::forceContextLost):
2176 2015-03-09 Myles C. Maxfield <mmaxfield@apple.com>
2178 Work around a Cocoa font parsing bug
2179 https://bugs.webkit.org/show_bug.cgi?id=142446
2180 <rdar://problem/20086223>
2182 Reviewed by Simon Fraser.
2184 Work around a bug in Cocoa regarding font parsing.
2186 * svg/SVGToOTFFontConversion.cpp:
2188 2015-03-09 Csaba Osztrogonác <ossy@webkit.org>
2190 Fix the build after r181153
2191 https://bugs.webkit.org/show_bug.cgi?id=142497
2193 Reviewed by Philippe Normand.
2195 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2196 (WebCore::MediaPlayerPrivateGStreamer::load):
2198 2015-03-09 Roger Fong <roger_fong@apple.com>
2200 Only call showControls if controls are hidden.
2201 https://bugs.webkit.org/show_bug.cgi?id=142496.
2202 <rdar://problem/20083732>
2204 Reviewed by Dean Jackson.
2206 * Modules/mediacontrols/mediaControlsApple.js:
2207 (Controller.prototype.handleWrapperMouseMove):
2208 (Controller.prototype.controlsAreHidden):
2209 Controls are hidden if the ‘show’ class name is not present,
2210 not if the ‘hidden’ class name is.
2212 2015-03-09 Roger Fong <roger_fong@apple.com>
2214 Unreviewed. Re-add CSS property that was unintentionally removed in r180893
2215 <rdar://problem/20083715>
2217 * Modules/mediacontrols/mediaControlsApple.css:
2218 (audio::-webkit-media-controls-panel):
2220 2015-03-09 Zalan Bujtas <zalan@apple.com>
2222 Simple line layout: Merge TextFragmentIterator::findNextBreakablePosition() and TextFragmentIterator::findNextNonWhitespacePosition().
2223 https://bugs.webkit.org/show_bug.cgi?id=142344
2225 Reviewed by Antti Koivisto.
2227 This patch merges findNextBreakablePosition() and findNextNonWhitespacePosition() so that
2228 the segment looping and position handling logic are no longer duplicated. It also unifies
2229 the static next*() functions' signature.
2231 No change in functionality.
2233 * rendering/SimpleLineLayoutTextFragmentIterator.cpp:
2234 (WebCore::SimpleLineLayout::TextFragmentIterator::nextTextFragment):
2235 (WebCore::SimpleLineLayout::nextBreakablePosition):
2236 (WebCore::SimpleLineLayout::nextNonWhitespacePosition):
2237 (WebCore::SimpleLineLayout::TextFragmentIterator::skipToNextPosition):
2238 (WebCore::SimpleLineLayout::TextFragmentIterator::findNextBreakablePosition): Deleted.
2239 (WebCore::SimpleLineLayout::findNextNonWhitespace): Deleted.
2240 (WebCore::SimpleLineLayout::TextFragmentIterator::findNextNonWhitespacePosition): Deleted.
2241 * rendering/SimpleLineLayoutTextFragmentIterator.h:
2243 2015-03-09 Xabier Rodriguez Calvar <calvaris@igalia.com> and Youenn Fablet <youenn.fablet@crf.canon.fr>
2245 ReadableStreamJSSource should use JSC::Strong UnspecifiedBoolType operator
2246 https://bugs.webkit.org/show_bug.cgi?id=142397
2248 Reviewed by Benjamin Poulain.
2250 No behavior change. Current tests cover the changes.
2252 * bindings/js/ReadableStreamJSSource.cpp:
2253 * bindings/js/ReadableStreamJSSource.h:
2255 2015-03-09 Xabier Rodriguez Calvar <calvaris@igalia.com> and Youenn Fablet <youenn.fablet@crf.canon.fr>
2257 ReadableStream does not not need to pass itself as callback parameter
2258 https://bugs.webkit.org/show_bug.cgi?id=142399
2260 Reviewed by Darin Adler.
2262 No change in behavior.
2264 * Modules/streams/ReadableStream.h: Remove ReadableStream parameter from SuccessCallback definition.
2265 * bindings/js/JSReadableStreamCustom.cpp:
2266 (WebCore::JSReadableStream::ready): Capture JSReadableStream instance instead.
2267 (WebCore::JSReadableStream::closed): Capture JSReadableStream instance instead.
2269 2015-03-08 Dean Jackson <dino@apple.com>
2271 [iOS Media] Video buffer progress missing on iPhones
2272 https://bugs.webkit.org/show_bug.cgi?id=142462
2274 Reviewed by Eric Carlson.
2276 The fullscreen controller on the iPhone idiom was using
2277 the media duration as its maximum loaded time, meaning the
2278 download progress was missing (it looked like everything
2279 was already downloaded). The fix is to calculate
2280 what the maximum buffered time is from the HTMLMediaElement,
2281 and send that to the fullscreen controller.
2283 * Modules/mediacontrols/mediaControlsiOS.js:
2284 (ControllerIOS.prototype.drawTimelineBackground): While implementing
2285 the native function I noticed that the JS controls forgot that
2286 the buffered time ranges are ordered, and thus they don't need
2287 to search through the array. The last range will be the highest.
2289 * html/HTMLMediaElement.cpp:
2290 (WebCore::HTMLMediaElement::maxBufferedTime): New helper function
2291 to calculate the highest buffered time in the media source.
2292 * html/HTMLMediaElement.h:
2294 * platform/ios/WebVideoFullscreenInterface.h: New setBufferedTime method.
2295 * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
2297 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
2298 (WebVideoFullscreenInterfaceAVKit::setDuration): No longer set
2299 the loadedTimeRanges.
2300 (WebVideoFullscreenInterfaceAVKit::setBufferedTime): Calculate a normalized
2301 value of the maximum loaded/buffered time, and tell the platform controller
2304 * platform/ios/WebVideoFullscreenModelVideoElement.mm:
2305 (WebVideoFullscreenModelVideoElement::updateForEventName): Send the maximum
2308 2015-03-08 Chris Dumez <cdumez@apple.com>
2310 Crash in WebCore::NotificationCenter::stop()
2311 https://bugs.webkit.org/show_bug.cgi?id=142444
2312 <rdar://problem/20082520>
2314 Reviewed by Darin Adler.
2316 Rework the patch in r181219 so that we do not need a Ref<NotificationCenter> protector
2317 in NotificationCenter::stop(). Instead, we put the client in a local variable and null
2318 out m_client *before* calling NotificationClient::clearNotifications().
2320 No new tests, already covered by:
2321 http/tests/notifications/event-listener-crash.html
2323 * Modules/notifications/NotificationCenter.cpp:
2324 (WebCore::NotificationCenter::stop):
2326 2015-03-08 Simon Fraser <simon.fraser@apple.com>
2328 Don't call RenderLayerCompositor::needsToBeComposited() so many times
2329 https://bugs.webkit.org/show_bug.cgi?id=142441
2331 Reviewed by Brent Fulgham.
2333 Save one call to needsToBeComposited() per RenderLayer while rebuilding compositing
2334 layers, and a call to isRunningAcceleratedTransformAnimation() in some cases.
2336 computeCompositingRequirements() already knows if the layer will be composited, so
2337 pass that to updateBacking() in the form of a "yes/no/don't" know enum. However,
2338 since updateBacking() no longer calls needsToBeComposited(), we need to call
2339 requiresCompositingForPosition() to get the viewportConstrainedNotCompositedReason flags.
2341 isRunningAcceleratedTransformAnimation() will only be true for a layer which has a
2342 direct compositing reason, so only call isRunningAcceleratedTransformAnimation()
2345 * rendering/RenderLayerCompositor.cpp:
2346 (WebCore::rendererForCompositingTests):
2347 (WebCore::RenderLayerCompositor::updateBacking):
2348 (WebCore::RenderLayerCompositor::computeCompositingRequirements):
2349 (WebCore::RenderLayerCompositor::requiresCompositingLayer): Use references.
2350 (WebCore::RenderLayerCompositor::reasonsForCompositing): Use references.
2351 * rendering/RenderLayerCompositor.h:
2353 2015-03-08 Simon Fraser <simon.fraser@apple.com>
2355 In RenderLayerCompositor, track layer bounds and the haveComputedBounds flag together in a struct
2356 https://bugs.webkit.org/show_bug.cgi?id=142449
2358 Reviewed by Brent Fulgham.
2360 Rather than tracking 'layerBounds' and 'haveComputedBounds' separately, group them together
2361 in an OverlapExtent struct and add a function to compute the bounds, which removes
2362 a copy of this code. OverlapExtent will be extended in a future patch.
2366 * rendering/RenderLayerCompositor.cpp:
2367 (WebCore::RenderLayerCompositor::OverlapMap::geometryMap): Allow const access to
2368 the geometryMap, used by computeExtent().
2369 (WebCore::RenderLayerCompositor::computeExtent):
2370 (WebCore::RenderLayerCompositor::addToOverlapMap):
2371 (WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
2372 (WebCore::RenderLayerCompositor::computeCompositingRequirements):
2373 * rendering/RenderLayerCompositor.h:
2375 2015-03-07 Chris Dumez <cdumez@apple.com>
2377 Crash in WebCore::NotificationCenter::stop()
2378 https://bugs.webkit.org/show_bug.cgi?id=142444
2379 <rdar://problem/20082520>
2381 Reviewed by Andreas Kling.
2383 A use-after-free would sometimes cause us to crash in NotificationCenter::stop().
2384 After investigation, it turns out that NotificationCenter::stop() calls
2385 NotificationClient::clearNotifications() which will destroy the Notification
2386 objects, all of which hold a strong reference to the NotificationCenter. If at
2387 this point, only Notifications are ref'ing the NotificationCenter, this means
2388 that the NotificationCenter will get destroyed right after the call to
2389 NotificationClient::clearNotifications(). However, we reset m_client to null
2390 after calling clearNotifications() and it causes us to crash in this case.
2392 The issue is addressed by adding a Ref<NotificationCenter> protector in
2393 NotificationCenter::stop() so that we make sure the NotificationCenter lives
2394 at least until the end of the method execution.
2396 I was able to consistently reproduce the crash by doing:
2397 Tools/Scripts/run-webkit-tests -1 --debug --repeat-each=30 -g http/tests/notifications/event-listener-crash.html
2399 No new tests, already covered by:
2400 http/tests/notifications/event-listener-crash.html
2402 * Modules/notifications/NotificationCenter.cpp:
2403 (WebCore::NotificationCenter::stop):
2405 2015-03-07 Simon Fraser <simon.fraser@apple.com>
2407 Tidy up RenderLayerCompositor's CompositingState
2408 https://bugs.webkit.org/show_bug.cgi?id=142445
2410 Reviewed by Dan Bernstein.
2412 Make CompositingState a private struct in RenderLayerCompositor.
2413 Since it's a struct, remove the m_ prefix from its data members.
2417 * rendering/RenderLayerCompositor.cpp:
2418 (WebCore::RenderLayerCompositor::CompositingState::CompositingState):
2419 (WebCore::RenderLayerCompositor::computeCompositingRequirements):
2420 (WebCore::CompositingState::CompositingState): Deleted.
2421 * rendering/RenderLayerCompositor.h:
2423 2015-03-07 Darin Adler <darin@apple.com>
2425 Unindent EventTarget, EventListener, JSEventLister.h files
2426 https://bugs.webkit.org/show_bug.cgi?id=142440
2428 Reviewed by Alexey Proskuryakov.
2430 * bindings/js/JSEventListener.h:
2431 * dom/EventListener.h:
2432 * dom/EventTarget.h:
2433 Change indentation to match coding style rules.
2435 2015-03-07 Geoffrey Garen <ggaren@apple.com>
2437 Use FastMalloc (bmalloc) instead of BlockAllocator for GC pages
2438 https://bugs.webkit.org/show_bug.cgi?id=140900
2440 Reviewed by Mark Hahnenberg.
2442 Re-landing just the removal of BlockAllocator, which is now unused.
2444 * platform/cocoa/MemoryPressureHandlerCocoa.mm:
2445 (WebCore::MemoryPressureHandler::install):
2447 2015-03-07 Commit Queue <commit-queue@webkit.org>
2449 Unreviewed, rolling out r181010.
2450 https://bugs.webkit.org/show_bug.cgi?id=142442
2452 Broke media/video-src-invalid-poster.html (Requested by kling
2457 "Stale entries in WeakGCMaps are keeping tons of WeakBlocks
2458 alive unnecessarily."
2459 https://bugs.webkit.org/show_bug.cgi?id=142115
2460 http://trac.webkit.org/changeset/181010
2462 2015-03-07 Darin Adler <darin@apple.com>
2464 Do a bit of EventNames tidying
2465 https://bugs.webkit.org/show_bug.cgi?id=142438
2467 Reviewed by Anders Carlsson.
2469 * dom/EventNames.h: Sorted the event names into a single list instead of
2470 the rudimentary attempts at organizing the list that simply made it hard
2471 to see what is and is not in the list. Removed two unused event names.
2472 I'm sure there are more. Reorganized the EventName class, now a struct,
2473 into a more conventional "public first" order. Got the function bodies
2474 out of the struct so we can see more clearly what is in the struct.
2475 Made more things const.
2476 (WebCore::EventNames::touchEventNames): Changed the return value to a
2477 std::array of reference wrappers rather than a vector of atomic strings.
2478 This should eliminate unnecessary memory allocation and reference count churn.
2480 * dom/EventNames.cpp: Changed initialization based on the above.
2482 * dom/EventTarget.cpp:
2483 (WebCore::EventTarget::getEventListeners): Use NeverDestroyed instead of
2484 DEPRECATED_DEFINE_LOCAL and also just tightened up the function a bit.
2487 (WebCore::Node::didMoveToNewDocument): Streamlined this function with
2488 modern for loops, auto, and also tried to make what it does a bit clearer,
2489 by making loops that are just based on numbers of event listeners look a
2490 bit less like code that actually iterates a vector of listeners. Also used
2491 the type unsigned instead of size_t.
2493 * platform/ThreadGlobalData.h: Updated since it's a struct instead of class now.
2494 (Why is this file in platform!?)
2496 2015-03-07 Brent Fulgham <bfulgham@apple.com>
2498 [Win] Increase TestWebKitAPI Test Coverage
2499 https://bugs.webkit.org/show_bug.cgi?id=142433
2501 Reviewed by Darin Adler.
2503 Correct some build deficiencies that prevent TestWebKitAPI
2504 from executing certain tests on Windows.
2506 * WebCore.vcxproj/copyForwardingHeaders.cmd: Copy the interpreter
2508 * css/CSSParser.h: Export necessary symbols
2509 * css/CSSParserMode.h: Ditto.
2510 * css/StyleProperties.h: Ditto.
2512 2015-03-07 David Kilzer <ddkilzer@apple.com>
2514 Rename SOFT_LINK_FRAMEWORK_{HEADER,SOURCE} to SOFT_LINK_FRAMEWORK_FOR_{HEADER,SOURCE}
2515 <http://webkit.org/b/142434>
2517 Reviewed by Darin Adler.
2519 * platform/cf/CoreMediaSoftLink.cpp:
2520 * platform/cf/CoreMediaSoftLink.h:
2521 * platform/cf/MediaAccessibilitySoftLink.cpp:
2522 * platform/cf/MediaAccessibilitySoftLink.h:
2523 * platform/mac/SoftLinking.h:
2524 * platform/win/SoftLinking.h:
2527 2015-03-06 Sam Weinig <sam@webkit.org>
2529 [Content Extensions] Move compiling of content extensions to the UIProcess
2530 https://bugs.webkit.org/show_bug.cgi?id=142402
2532 Reviewed by Benjamin Poulain.
2534 * contentextensions/CompiledContentExtension.cpp:
2535 (WebCore::ContentExtensions::CompiledContentExtension::~CompiledContentExtension):
2536 (WebCore::ContentExtensions::CompiledContentExtension::create): Deleted.
2537 (WebCore::ContentExtensions::CompiledContentExtension::CompiledContentExtension): Deleted.
2538 * contentextensions/CompiledContentExtension.h:
2539 (WebCore::ContentExtensions::CompiledContentExtension::bytecode): Deleted.
2540 (WebCore::ContentExtensions::CompiledContentExtension::actions): Deleted.
2541 Convert CompiledContentExtension to be an abstract base class so that we can back it however
2542 we like at the WebKit level. Since it doesn't necessarily use Vectors for its backing store
2543 any more, change the interface to use pointer/length.
2545 * contentextensions/ContentExtensionCompiler.cpp:
2546 (WebCore::ContentExtensions::compileRuleList):
2547 * contentextensions/ContentExtensionCompiler.h:
2548 Change compileRuleList to return compiled result as the raw Vectors rather than as
2549 a CompiledContentExtension, since that class is now abstract. It is up to the caller
2550 to copy the data into its final home.
2552 * contentextensions/ContentExtensionRule.cpp:
2553 (WebCore::ContentExtensions::Action::deserialize):
2554 * contentextensions/ContentExtensionRule.h:
2555 Switch Action::deserialize to take pointer/length rather than a Vector.
2557 * contentextensions/ContentExtensionsBackend.cpp:
2558 (WebCore::ContentExtensions::ContentExtensionsBackend::actionsForURL):
2559 Pull getting the serialized actions from the compiled extension out of the loop
2560 to avoid calling the virtual function multiple times. Pass the bytecode and actions
2561 as pointer/length pairs rather than Vectors.
2563 * contentextensions/DFABytecodeInterpreter.cpp:
2564 (WebCore::ContentExtensions::getBits):
2565 (WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):
2566 * contentextensions/DFABytecodeInterpreter.h:
2567 (WebCore::ContentExtensions::DFABytecodeInterpreter::DFABytecodeInterpreter):
2568 Switch the interpreter to take pointer/length rather than a Vector.
2570 * page/UserContentController.cpp:
2571 (WebCore::UserContentController::addUserContentExtension):
2572 (WebCore::UserContentController::removeUserContentExtension):
2573 (WebCore::UserContentController::removeAllUserContentExtensions):
2574 (WebCore::UserContentController::addUserContentFilter): Deleted.
2575 (WebCore::UserContentController::removeUserContentFilter): Deleted.
2576 (WebCore::UserContentController::removeAllUserContentFilters): Deleted.
2577 * page/UserContentController.h:
2578 Unify terminology to use the term UserContentExtension rather than UserContentFilter.
2580 2015-03-06 Roger Fong <roger_fong@apple.com>
2582 Create new buttons for media controls on OSX.
2583 https://bugs.webkit.org/show_bug.cgi?id=142415.
2584 <rdar://problem/20019441>
2586 Reviewed by Eric Carlson.
2588 * Modules/mediacontrols/mediaControlsApple.css:
2589 (audio::-webkit-media-controls-wireless-playback-picker-button):
2590 (audio::-webkit-media-controls-wireless-playback-picker-button.playing):
2591 (audio:-webkit-full-screen::-webkit-media-controls-wireless-playback-picker-button):
2593 2015-03-06 Roger Fong <roger_fong@apple.com>
2595 Redraw timeline background when updating media time.
2596 https://bugs.webkit.org/show_bug.cgi?id=142421.
2597 <rdar://problem/20065104>
2599 Reviewed by Brent Fulgham.
2601 * Modules/mediacontrols/mediaControlsApple.js:
2602 (Controller.prototype.handleTimeUpdate):
2604 2015-03-06 Dhi Aurrahman <diorahman@rockybars.com>
2606 Enable selectors level 4's :lang() by default
2607 https://bugs.webkit.org/show_bug.cgi?id=142302
2609 Reviewed by Benjamin Poulain.
2613 * css/CSSGrammar.y.in:
2614 * css/CSSParser.cpp:
2615 (WebCore::CSSParser::detectFunctionTypeToken):
2616 * css/CSSParserValues.cpp:
2617 (WebCore::CSSParserSelector::setLangArgumentList):
2618 * css/CSSParserValues.h:
2619 * css/CSSSelector.cpp:
2620 (WebCore::appendLangArgumentList):
2621 (WebCore::CSSSelector::selectorText):
2622 (WebCore::CSSSelector::setLangArgumentList):
2623 * css/CSSSelector.h:
2624 * css/SelectorChecker.cpp:
2625 (WebCore::SelectorChecker::checkOne):
2626 * css/SelectorCheckerTestFunctions.h:
2627 (WebCore::matchesLangPseudoClass):
2628 (WebCore::matchesLangPseudoClassDeprecated): Deleted.
2629 * cssjit/SelectorCompiler.cpp:
2630 (WebCore::SelectorCompiler::addPseudoClassType):
2631 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
2632 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsInLanguage):
2634 2015-03-06 Brent Fulgham <bfulgham@apple.com>
2636 Setting scroll-snap-desination to (100% 100%) locks up WebKit
2637 https://bugs.webkit.org/show_bug.cgi?id=142414
2638 <rdar://problem/20077275>
2640 Reviewed by Dean Jackson.
2642 Tested by css3/scroll-snap/scroll-snap-desination-lock-up.html.
2644 Correct an infinite loop that is triggered when you combine a repeating (100%)
2645 scroll-snap-point-{x,y} along with a 100% scroll-snap-destination value.
2647 * page/scrolling/AxisScrollSnapOffsets.cpp:
2648 (WebCore::updateFromStyle): Make sure we break out of the loop properly when
2649 the scroll-snap-point-{x,y} step is the same as the scroll-snap-destination.
2651 2015-03-06 Dean Jackson <dino@apple.com>
2653 https://bugs.webkit.org/show_bug.cgi?id=142416
2655 Unreviewed build fix.
2657 * platform/spi/cocoa/QuartzCoreSPI.h: Add kCAFilterPlusL.
2659 2015-03-06 Dean Jackson <dino@apple.com>
2661 Support "plus-lighter" in mix-blend mode
2662 https://bugs.webkit.org/show_bug.cgi?id=142416
2663 <rdar://problem/19993979>
2665 Reviewed by Darin Adler and Sam Weinig.
2667 Support the "plus-lighter" blending mode to CSS.
2668 See my reply to: https://lists.w3.org/Archives/Public/public-fx/2015JanMar/0021.html
2670 Test: css3/blending/svg-blend-plus-lighter.html
2672 * css/CSSParser.cpp:
2673 (WebCore::isValidKeywordPropertyAndValue): mix-blend-mode can now accept the
2675 * css/CSSPrimitiveValueMappings.h: Add the mappings to/from the GraphicsType.
2676 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2677 (WebCore::CSSPrimitiveValue::operator BlendMode):
2678 * css/CSSValueKeywords.in: Add comment to show plus-darker and plus-lighter
2680 * platform/graphics/GraphicsTypes.cpp: New GraphicsType for PlusLighter.
2681 * platform/graphics/GraphicsTypes.h:
2682 * platform/graphics/ca/mac/PlatformCAFiltersMac.mm: Map to the CA filter.
2683 (PlatformCAFilters::setBlendingFiltersOnLayer):
2684 * platform/graphics/cg/GraphicsContextCG.cpp:
2685 (WebCore::GraphicsContext::setPlatformCompositeOperation): Map to the CG
2688 2015-03-06 Alex Christensen <achristensen@webkit.org>
2690 Soft link MediaAccessibility using new macros.
2691 https://bugs.webkit.org/show_bug.cgi?id=142406
2693 Reviewed by David Kilzer.
2695 * Configurations/WebCore.unexp:
2696 * WebCore.vcxproj/WebCore.vcxproj:
2697 * WebCore.vcxproj/WebCore.vcxproj.filters:
2698 * WebCore.xcodeproj/project.pbxproj:
2699 * page/CaptionUserPreferencesMediaAF.cpp:
2700 * platform/cf/MediaAccessibilitySoftLink.cpp: Added.
2701 * platform/cf/MediaAccessibilitySoftLink.h: Added.
2703 2015-03-06 Brent Fulgham <bfulgham@apple.com>
2705 Add 'initial' keyword support for scroll snap CSS properties
2706 https://bugs.webkit.org/show_bug.cgi?id=136345
2707 <rdar://problem/18162325>
2709 Reviewed by Dean Jackson.
2711 Tested by css3/scroll-snap/scroll-snap-initial.html
2713 The existing implementation already had 'initial' keyword support, but did not fully follow
2714 the CSS specification. In particular, the 'initial' state for the scroll-snap-points-x and
2715 scroll-snap-points-y properties was not handled correctly.
2717 Revise implementation to represent ScrollSnapPoints as a pointer, so that 'none' is a valid
2720 * css/CSSComputedStyleDeclaration.cpp:
2721 (WebCore::scrollSnapPoints): If 'points' is null, return CSSValueNone.
2722 * css/CSSPropertyNames.in: Provide custom initial/inherit handles for snap point x/y sets.
2723 * css/StyleBuilderConverter.h:
2724 (WebCore::StyleBuilderConverter::convertScrollSnapPoints): Update to represent ScrollSnapPoints
2726 * css/StyleBuilderCustom.h:
2727 (WebCore::StyleBuilderCustom::applyInitialWebkitScrollSnapPointsX): Provide custom pointer-based
2728 implementation for ScrollSnapPoints.
2729 (WebCore::StyleBuilderCustom::applyInheritWebkitScrollSnapPointsX): Ditto.
2730 (WebCore::StyleBuilderCustom::applyInitialWebkitScrollSnapPointsY): Ditto.
2731 (WebCore::StyleBuilderCustom::applyInheritWebkitScrollSnapPointsY): Ditto."
2732 * page/scrolling/AxisScrollSnapOffsets.cpp:
2733 (WebCore::updateFromStyle): Handle ScrollSnapPoints as pointers.
2734 (WebCore::updateSnapOffsetsForScrollableArea): Ditto.
2735 * rendering/style/RenderStyle.cpp:
2736 (WebCore::RenderStyle::scrollSnapPointsX): Update to use pointer-based representation of ScrollSnapPoints.
2737 (WebCore::RenderStyle::scrollSnapPointsY): Ditto.
2738 (WebCore::RenderStyle::setScrollSnapPointsX): Ditto.
2739 (WebCore::RenderStyle::setScrollSnapPointsY): Ditto.
2740 (WebCore::RenderStyle::initialScrollSnapPointsX): Deleted.
2741 (WebCore::RenderStyle::initialScrollSnapPointsY): Deleted.
2742 * rendering/style/RenderStyle.h:
2743 * rendering/style/StyleScrollSnapPoints.cpp:
2744 (WebCore::StyleScrollSnapPoints::StyleScrollSnapPoints): Revise constructor to handle pointer argument.
2745 * rendering/style/StyleScrollSnapPoints.h:
2747 2015-03-05 Roger Fong <roger_fong@apple.com>
2749 Reskin Captions button and container on OSX.
2750 https://bugs.webkit.org/show_bug.cgi?id=142383.
2751 <rdar://problem/20061466>
2753 Reviewed by Eric Carlson.
2755 * Modules/mediacontrols/mediaControlsApple.css:
2756 (audio::-webkit-media-controls-toggle-closed-captions-button): Create new captions button icon.
2757 Update caption container to match rest of media controls better.
2758 (audio::-webkit-media-controls-closed-captions-container):
2759 (audio::-webkit-media-controls-closed-captions-container .list):
2760 (audio::-webkit-media-controls-closed-captions-container h3):
2761 (audio::-webkit-media-controls-closed-captions-container ul):
2762 (audio::-webkit-media-controls-closed-captions-container li):
2763 (audio::-webkit-media-controls-closed-captions-container li:focus):
2764 (audio::-webkit-media-controls-closed-captions-container li:hover):
2765 Fix up some fonts to make fonts between captions, status display and time displays consistent.
2766 (audio::-webkit-media-controls-status-display):
2767 (audio::-webkit-media-controls-time-remaining-display):
2769 2015-03-06 Jer Noble <jer.noble@apple.com>
2771 [Web Audio] Decoding specific .m4a file crashes tab
2772 https://bugs.webkit.org/show_bug.cgi?id=139545
2774 Reviewed by Eric Carlson.
2776 Test: webaudio/decode-audio-data-too-short.html
2778 Bail out early if CoreAudio reports the number of frames in the file to be negative.
2780 * platform/audio/mac/AudioFileReaderMac.cpp:
2781 (WebCore::AudioFileReader::createBus):
2783 2015-03-06 Jeremy Jones <jeremyj@apple.com>
2785 Scroll to make the video element visible when exiting fullscreen.
2786 https://bugs.webkit.org/show_bug.cgi?id=141439
2788 Reviewed by Simon Fraser.
2790 This patch will scroll the element so it is visible when exiting fullscreen,
2791 but only if the element is completely scrolled off screen.
2792 Also update the element screen rect so exit animation goes to the correct location.
2795 (WebCore::Element::scrollIntoViewIfNotVisible): Added.
2796 * dom/Element.h: Add declaration for scrollIntoViewIfNotVisible.
2797 * platform/ios/WebVideoFullscreenControllerAVKit.mm:
2798 (-[WebVideoFullscreenController fullscreenMayReturnToInline]):
2799 * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
2800 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
2801 (-[WebAVPlayerController playerViewController:restoreUserInterfaceForOptimizedFullscreenStopWithCompletionHandler:]):
2802 (-[WebAVPlayerController playerViewControllerWillCancelOptimizedFullscree:]):
2803 (WebVideoFullscreenInterfaceAVKit::setupFullscreen):
2804 (WebVideoFullscreenInterfaceAVKit::setupFullscreenInternal):
2805 (WebVideoFullscreenInterfaceAVKit::exitFullscreen):
2806 (WebVideoFullscreenInterfaceAVKit::exitFullscreenInternal):
2807 (WebVideoFullscreenInterfaceAVKit::preparedToReturnToInline):
2808 (WebVideoFullscreenInterfaceAVKit::fullscreenMayReturnToInline):
2809 * rendering/ScrollBehavior.cpp:
2810 * rendering/ScrollBehavior.h:
2812 2015-03-06 Myles C. Maxfield <mmaxfield@apple.com>
2814 Crash in -[WebCascadeList objectAtIndex:] + 195
2815 https://bugs.webkit.org/show_bug.cgi?id=141274
2817 Reviewed by David Kilzer.
2819 CTFontDescriptorRefs can live forever in caches inside CoreText, which means our
2820 WebCascadeList can too.
2822 Test: platform/mac/fast/text/crash-complextextcontroller-custom-cascade-list.html
2824 * platform/graphics/FontCascade.cpp:
2825 (WebCore::FontCascade::FontCascade): Initialize WeakPtrFactory.
2826 * platform/graphics/FontCascade.h:
2827 (WebCore::FontCascade::createWeakPtr):
2828 * platform/graphics/mac/ComplexTextControllerCoreText.mm: Migrate the raw pointer
2830 (-[WebCascadeList initWithFont:character:]):
2831 (-[WebCascadeList count]):
2832 (-[WebCascadeList objectAtIndex:]):
2834 2015-03-06 Myles C. Maxfield <mmaxfield@apple.com>
2836 Rename BreakingContextInlineHeaders.h to BreakingContext.h
2837 https://bugs.webkit.org/show_bug.cgi?id=142404
2839 Reviewed by Simon Fraser.
2841 No point naming it "InlineHeaders" when there are no non-inline-headers files.
2843 No new tests because this is just a rename of a file.
2845 * WebCore.vcxproj/WebCore.vcxproj:
2846 * WebCore.vcxproj/WebCore.vcxproj.filters:
2847 * WebCore.xcodeproj/project.pbxproj:
2848 * rendering/RenderBlockLineLayout.cpp:
2849 * rendering/line/BreakingContext.h: Renamed from Source/WebCore/rendering/line/BreakingContextInlineHeaders.h.
2850 (WebCore::WordMeasurement::WordMeasurement):
2851 (WebCore::BreakingContext::BreakingContext):
2852 (WebCore::BreakingContext::currentObject):
2853 (WebCore::BreakingContext::lineBreak):
2854 (WebCore::BreakingContext::lineWidth):
2855 (WebCore::BreakingContext::atEnd):
2856 (WebCore::BreakingContext::clearLineBreakIfFitsOnLine):
2857 (WebCore::BreakingContext::commitLineBreakAtCurrentWidth):
2858 (WebCore::BreakingContext::InlineIteratorHistory::InlineIteratorHistory):
2859 (WebCore::BreakingContext::InlineIteratorHistory::push):
2860 (WebCore::BreakingContext::InlineIteratorHistory::update):
2861 (WebCore::BreakingContext::InlineIteratorHistory::renderer):
2862 (WebCore::BreakingContext::InlineIteratorHistory::offset):
2863 (WebCore::BreakingContext::InlineIteratorHistory::atTextParagraphSeparator):
2864 (WebCore::BreakingContext::InlineIteratorHistory::previousInSameNode):
2865 (WebCore::BreakingContext::InlineIteratorHistory::get):
2866 (WebCore::BreakingContext::InlineIteratorHistory::current):
2867 (WebCore::BreakingContext::InlineIteratorHistory::historyLength):
2868 (WebCore::BreakingContext::InlineIteratorHistory::moveTo):
2869 (WebCore::BreakingContext::InlineIteratorHistory::increment):
2870 (WebCore::BreakingContext::InlineIteratorHistory::clear):
2871 (WebCore::BreakingContext::initializeForCurrentObject):
2872 (WebCore::BreakingContext::increment):
2873 (WebCore::BreakingContext::handleBR):
2874 (WebCore::borderPaddingMarginStart):
2875 (WebCore::borderPaddingMarginEnd):
2876 (WebCore::shouldAddBorderPaddingMargin):
2877 (WebCore::previousInFlowSibling):
2878 (WebCore::inlineLogicalWidth):
2879 (WebCore::BreakingContext::handleOutOfFlowPositioned):
2880 (WebCore::BreakingContext::handleFloat):
2881 (WebCore::shouldSkipWhitespaceAfterStartObject):
2882 (WebCore::BreakingContext::handleEmptyInline):
2883 (WebCore::BreakingContext::handleReplaced):
2884 (WebCore::firstPositiveWidth):
2885 (WebCore::iteratorIsBeyondEndOfRenderCombineText):
2886 (WebCore::nextCharacter):
2887 (WebCore::updateCounterIfNeeded):
2888 (WebCore::measureHyphenWidth):
2889 (WebCore::textWidth):
2890 (WebCore::ensureCharacterGetsLineBox):
2891 (WebCore::tryHyphenating):
2892 (WebCore::BreakingContext::handleText):
2893 (WebCore::textBeginsWithBreakablePosition):
2894 (WebCore::BreakingContext::canBreakAtThisPosition):
2895 (WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded):
2896 (WebCore::checkMidpoints):
2897 (WebCore::BreakingContext::handleEndOfLine):
2898 (WebCore::BreakingContext::optimalLineBreakLocationForTrailingWord):
2899 * rendering/line/LineBreaker.cpp:
2901 2015-03-06 Dan Bernstein <mitz@apple.com>
2903 Expose some of the functionality of extract-localizable-strings.pl as a module
2904 https://bugs.webkit.org/show_bug.cgi?id=142038
2906 Reviewed by Sam Weinig.
2908 * LocalizableStrings.pm: Copied from Source/WebCore/extract-localizable-strings.pl.
2909 (setTreatWarningsAsErrors): Added this setter for the variable moved here.
2910 (sawError): Added a getter.
2911 (emitError): Added. Emits the error message and sets $sawError.
2912 (unescapeHexSequence): Moved from extract-localizable-strings.pl and renamed to start with
2914 (keyCollisionCount): Added this getter.
2915 (localizedCount): Added this getter.
2916 (HandleUIString): Moved from extract-localizable-strings.pl and made it increment the
2917 localized string count.
2918 (writeStringsFile): Moved code from extract-localizable-strings.pl into this new subroutine.
2919 (verifyStringsFile): Ditto.
2921 * WebCore.xcodeproj/project.pbxproj: Added LocalizableStrings.pm to the Copy Scripts build
2924 * extract-localizable-strings.pl:
2925 (emitWarning): Moved to the module.
2926 (UnescapeHexSequence): Ditto.
2927 (HandleUIString): Ditto.
2929 2015-03-06 Darin Adler <darin@apple.com>
2931 Remove unused C++ DOM event handler attribute functions
2932 https://bugs.webkit.org/show_bug.cgi?id=142398
2934 Reviewed by Anders Carlsson.
2936 * dom/EventTarget.h: Removed now-unneeded macros: DEFINE_ATTRIBUTE_EVENT_LISTENER,
2937 DECLARE_VIRTUAL_ATTRIBUTE_EVENT_LISTENER, DEFINE_VIRTUAL_ATTRIBUTE_EVENT_LISTENER,
2938 DEFINE_WINDOW_ATTRIBUTE_EVENT_LISTENER, DEFINE_MAPPED_ATTRIBUTE_EVENT_LISTENER,
2939 DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER, DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER.
2941 * Modules/webaudio/AudioScheduledSourceNode.cpp:
2942 (WebCore::AudioScheduledSourceNode::setOnended): Deleted.
2943 (WebCore::AudioScheduledSourceNode::finish): Rewrote this to use dispatchEvent
2944 instead of one-off event-sending code. Also use a lambda to avoid needing two
2945 additional member functions to implement this.
2946 (WebCore::AudioScheduledSourceNode::notifyEndedDispatch): Deleted.
2947 (WebCore::AudioScheduledSourceNode::notifyEnded): Deleted.
2948 * Modules/webaudio/AudioScheduledSourceNode.h: Updated for above.
2950 * Modules/battery/BatteryManager.h: Removed onxxx and setOnxxx functions,
2951 including ones created with macros from EventTarget.h.
2952 * Modules/encryptedmedia/MediaKeySession.h: Ditto.
2953 * Modules/indexeddb/IDBDatabase.h: Ditto.
2954 * Modules/indexeddb/IDBOpenDBRequest.h: Ditto.
2955 * Modules/indexeddb/IDBRequest.h: Ditto.
2956 * Modules/indexeddb/IDBTransaction.h: Ditto.
2957 * Modules/mediastream/MediaStream.h: Ditto.
2958 * Modules/mediastream/MediaStreamTrack.h: Ditto.
2959 * Modules/mediastream/RTCDTMFSender.h: Ditto.
2960 * Modules/mediastream/RTCDataChannel.h: Ditto.
2961 * Modules/mediastream/RTCPeerConnection.h: Ditto.
2962 * Modules/notifications/Notification.h: Ditto.
2963 * Modules/speech/SpeechSynthesisUtterance.h: Ditto.
2964 * Modules/webaudio/AudioContext.h: Ditto.
2965 * Modules/webaudio/ScriptProcessorNode.cpp: Ditto.
2966 * Modules/webaudio/ScriptProcessorNode.h: Ditto.
2967 * Modules/websockets/WebSocket.h: Ditto.
2968 * css/FontLoader.h: Ditto.
2969 * dom/Document.h: Ditto.
2970 * dom/Element.cpp: Ditto.
2971 * dom/Element.h: Ditto.
2972 * dom/MessagePort.h: Ditto.
2973 * fileapi/FileReader.h: Ditto.
2974 * html/HTMLBodyElement.h: Ditto.
2975 * html/HTMLFormElement.h: Ditto.
2976 * html/HTMLFrameSetElement.h: Ditto.
2977 * html/HTMLInputElement.h: Ditto.
2978 * html/HTMLMediaElement.h: Ditto.
2979 * html/HTMLVideoElement.h: Ditto.
2980 * html/track/TextTrack.h: Ditto.
2981 * html/track/TextTrackCue.h: Ditto.
2982 * html/track/TrackListBase.h: Ditto.
2983 * loader/appcache/DOMApplicationCache.h: Ditto.
2984 * page/DOMWindow.h: Ditto.
2985 * page/EventSource.h: Ditto.
2986 * page/Performance.h: Ditto.
2987 * workers/AbstractWorker.h: Ditto.
2988 * workers/DedicatedWorkerGlobalScope.h: Ditto.
2989 * workers/Worker.h: Ditto.
2990 * workers/WorkerGlobalScope.h: Ditto.
2991 * xml/XMLHttpRequest.h: Ditto.
2992 * xml/XMLHttpRequestUpload.h: Ditto.
2994 2015-03-06 Said Abou-Hallawa <sabouhallawa@apple.com>
2996 Setting any of the <object> element plugin controlling attributes does not have any affect.
2997 https://bugs.webkit.org/show_bug.cgi?id=141936.
2999 Reviewed by Simon Fraser.
3001 When setting any of the <object> element plugin controlling attributes
3002 dynamically we need to mark the the element to be dirty by calling
3003 setNeedsStyleRecalc(), so it has to recreate its renderer when needed.
3005 Tests: fast/css/image-object-hover-inherit.html
3006 svg/as-object/svg-in-object-dynamic-attribute-change.html
3008 * dom/Element.h: Delete unimplemented function.
3010 * html/HTMLObjectElement.cpp:
3011 (WebCore::HTMLObjectElement::parseAttribute): Mark the element dirty by
3012 calling setNeedsStyleRecalc() when one of the plugin controlling attributes
3013 gets changed. We have to clear m_useFallbackContent because the attribute's
3014 new value might fix the object rendering.
3016 * html/HTMLObjectElement.h: Add a function to clear m_useFallbackContent.
3018 2015-03-06 Myles C. Maxfield <mmaxfield@apple.com>
3020 Test horiz-origin-x and horiz-origin-y in SVG fonts
3021 https://bugs.webkit.org/show_bug.cgi?id=142403
3023 Reviewed by Simon Fraser.
3025 Remove incorrect comment.
3027 Test: svg/fonts/svg-font-horiz-origin.html
3029 * svg/SVGToOTFFontConversion.cpp:
3030 (WebCore::CFFBuilder::CFFBuilder):
3032 2015-03-06 Simon Fraser <simon.fraser@apple.com>
3034 Allow tree dumping functions to be used in release builds by switching a flag
3035 https://bugs.webkit.org/show_bug.cgi?id=142379
3037 Reviewed by Zalan Bujtas.
3039 There are various tree dumping functions that are useful for debugging, and sometimes
3040 you want to be able to use them in release builds. Currently they are surrounded by
3041 #ifndef NDEBUG. Change this to #if ENABLE(TREE_DEBUGGING), which is defined to 0 or 1
3044 * dom/DocumentMarkerController.cpp:
3045 * dom/DocumentMarkerController.h:
3056 * editing/FrameSelection.cpp:
3057 * editing/FrameSelection.h:
3058 * editing/VisiblePosition.cpp:
3059 * editing/VisiblePosition.h:
3060 * editing/VisibleSelection.cpp:
3061 * editing/VisibleSelection.h:
3062 * html/parser/HTMLElementStack.cpp:
3063 * html/parser/HTMLFormattingElementList.cpp:
3064 * rendering/CounterNode.cpp:
3065 * rendering/CounterNode.h:
3066 * rendering/InlineBox.cpp:
3067 * rendering/InlineBox.h:
3068 * rendering/InlineFlowBox.cpp:
3069 * rendering/InlineFlowBox.h:
3070 * rendering/InlineTextBox.cpp:
3071 * rendering/InlineTextBox.h:
3072 * rendering/RenderBlockFlow.cpp:
3073 * rendering/RenderBlockFlow.h:
3074 * rendering/RenderCounter.cpp:
3075 * rendering/RenderCounter.h:
3076 * rendering/RenderLayer.cpp:
3077 * rendering/RenderLayer.h:
3078 * rendering/RenderLayerBacking.cpp:
3079 (WebCore::RenderLayerBacking::createGraphicsLayer):
3080 (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
3081 (WebCore::RenderLayerBacking::updateForegroundLayer):
3082 (WebCore::RenderLayerBacking::updateBackgroundLayer):
3083 * rendering/RenderLayerCompositor.cpp:
3084 (WebCore::CompositingState::CompositingState):
3085 (WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
3086 (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
3087 (WebCore::RenderLayerCompositor::updateLayerForHeader):
3088 (WebCore::RenderLayerCompositor::updateLayerForFooter):
3089 (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
3090 (WebCore::RenderLayerCompositor::ensureRootLayer):
3091 * rendering/RenderObject.cpp:
3092 * rendering/RenderObject.h:
3093 * rendering/RootInlineBox.cpp:
3094 * rendering/RootInlineBox.h:
3095 * rendering/SimpleLineLayoutFunctions.cpp:
3096 * rendering/SimpleLineLayoutFunctions.h:
3097 * rendering/svg/SVGResources.cpp:
3098 * rendering/svg/SVGResources.h:
3100 2015-03-06 Said Abou-Hallawa <sabouhallawa@apple.com>
3102 An SVG element without intrinsic size inherits the container size as its viewport instead of inheriting the container viewport.
3103 https://bugs.webkit.org/show_bug.cgi?id=141725.
3105 Reviewed by Darin Adler.
3107 The current viewport of the <svg> element should be retrieved from its
3108 renderer if the renderer is available. If the renderer is not created yet,
3109 this means the viewport is needed to calculate the size of the renderer.
3110 In this case, we should return the element size if it is intrinsic size.
3112 Test: svg/css/svg-css-different-intrinsic-sizes.html
3114 * svg/SVGSVGElement.cpp:
3115 (WebCore::SVGSVGElement::currentViewportSize): Change the order for
3116 returning the viewport of the <svg> element. We should consider the case
3117 of a valid renderer before considering the case of an intrinsic size.
3119 2015-03-06 Simon Fraser <simon.fraser@apple.com>
3121 Allow composited clip-path to be updated without a layer repaint
3122 https://bugs.webkit.org/show_bug.cgi?id=142384
3124 Reviewed by Zalan Bujtas.
3126 When clip-path is mapped to a compositing shape layer mask, we can just
3127 push a new shape to the GraphicsLayer to update the clip path, without
3130 Achieve this by adding ContextSensitivePropertyClipPath. When set, and the
3131 stars are aligned, issue a StyleDifferenceRecompositeLayer rather than
3132 a StyleDifferenceRepaint.
3134 We ask RenderLayerCompositor whether the clip path can be composited
3135 to hide platform differences related to whether GraphicsLayer supports
3138 Test: compositing/masks/compositing-clip-path-change-no-repaint.html
3140 * rendering/RenderElement.cpp:
3141 (WebCore::RenderElement::adjustStyleDifference): Remove obvious comment
3142 about opacity. Handle ContextSensitivePropertyClipPath.
3143 * rendering/RenderLayerCompositor.cpp:
3144 (WebCore::RenderLayerCompositor::canCompositeClipPath): If we have a mask
3145 we have to paint the mask + clip path into the mask layer (mirrors code in
3146 RenderLayerBacking::updateMaskingLayer but isn't quite similar enough to share).
3147 * rendering/RenderLayerCompositor.h:
3148 * rendering/style/RenderStyle.cpp:
3149 (WebCore::RenderStyle::changeRequiresRepaint): Set ContextSensitivePropertyClipPath
3150 and don't return, as is normal for context-sensitive property handling.
3151 * rendering/style/RenderStyleConstants.h: Line things up to avoid future bit
3152 fumbles, and remove unnecessary braces.
3154 2015-03-06 Alex Christensen <achristensen@webkit.org>
3156 [Content Extensions] Process all actions when blocking a URL.
3157 https://bugs.webkit.org/show_bug.cgi?id=142363
3159 Reviewed by Darin Adler.
3161 This can only be tested once we implement css selectors.
3163 * contentextensions/ContentExtensionsBackend.cpp:
3164 (WebCore::ContentExtensions::ContentExtensionsBackend::actionsForURL):
3165 Do not return early when adding a block action.
3166 * loader/cache/CachedResourceLoader.cpp:
3167 (WebCore::CachedResourceLoader::requestResource):
3168 Process all actions before returning.
3170 2015-03-05 Darin Adler <darin@apple.com>
3172 Make JavaScript binding get and set legacy event listener attributes directly
3173 https://bugs.webkit.org/show_bug.cgi?id=142282
3175 Reviewed by Antti Koivisto.
3177 Test: fast/dom/legacy-event-handler-attributes.html
3179 This patch changes the JavaScript getters and setters for these attributes
3180 to work directly without requiring any functions in the C++ DOM implementation.
3181 A subsequent patch will remove the now-unused C++ DOM implementation.
3183 * Modules/webaudio/AudioScheduledSourceNode.cpp:
3184 (WebCore::AudioScheduledSourceNode::setOnended): Remove code to set
3185 m_hasEndedListener; this was incorrect since it only detected event listeners
3186 set up with the event handler attribute, not with addEventListener.
3187 (WebCore::AudioScheduledSourceNode::addEventListener): Added code to update
3188 m_hasEndedListener after making changes to the event listeners.
3189 (WebCore::AudioScheduledSourceNode::removeEventListener): Ditto.
3190 (WebCore::AudioScheduledSourceNode::removeAllEventListeners): Ditto.
3191 * Modules/webaudio/AudioScheduledSourceNode.h: Added above overrides.
3193 * Modules/webaudio/ScriptProcessorNode.cpp:
3194 (WebCore::ScriptProcessorNode::setOnaudioprocess): Remove code to set
3195 m_hasAudioProcessListener; this was incorrect since it only detected event listeners
3196 set up with the event handler attribute, not with addEventListener.
3197 (WebCore::ScriptProcessorNode::addEventListener): Added code to update
3198 m_hasAudioProcessListener after making changes to the event listeners.
3199 (WebCore::ScriptProcessorNode::removeEventListener): Ditto.
3200 (WebCore::ScriptProcessorNode::removeAllEventListeners): Ditto.
3201 * Modules/webaudio/ScriptProcessorNode.h: Added above overrides.
3203 * bindings/js/JSEventListener.cpp:
3204 (WebCore::legacyEventListenerAttribute): Added.
3205 (WebCore::createEventListenerForLegacyAttribute): Added.
3206 (WebCore::setLegacyEventListenerAttribute): Added.
3207 (WebCore::legacyWindowEventListenerAttribute): Added.
3208 (WebCore::setLegacyWindowEventListenerAttribute): Added.
3210 * bindings/js/JSEventListener.h:
3211 (WebCore::createJSEventListenerForAttribute): Deleted.
3213 * bindings/scripts/CodeGeneratorJS.pm:
3214 (GenerateAttributeEventListenerCall): Deleted.
3215 (LegacyEventListenerAttributeEventName): Added.
3216 (LegacyEventListenerAttributePrefix): Added.
3217 (GenerateImplementation): Use "auto" in lots of places to simplify the code
3218 generation. Replaced the old inlined code to deal with legacy event listener
3219 attributes with code that simply calls the new functions from JSEventLister.h.
3220 (GenerateCallWith): Use "auto".
3221 (GenerateConstructorDefinition): Ditto.
3223 * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: Updated expected
3224 results since these now use auto.
3225 * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: Ditto.
3226 * bindings/scripts/test/JS/JSTestEventConstructor.cpp: Ditto.
3227 * bindings/scripts/test/JS/JSTestEventTarget.cpp: Ditto.
3228 * bindings/scripts/test/JS/JSTestException.cpp: Ditto.
3229 * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: Ditto.
3230 * bindings/scripts/test/JS/JSTestInterface.cpp: Ditto.
3231 * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: Ditto.
3232 * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: Ditto.
3233 * bindings/scripts/test/JS/JSTestNode.cpp: Ditto.
3234 * bindings/scripts/test/JS/JSTestNondeterministic.cpp: Ditto.
3235 * bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
3236 * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Ditto.
3237 * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: Ditto.
3238 * bindings/scripts/test/JS/JSTestTypedefs.cpp: Ditto.
3239 * bindings/scripts/test/JS/JSattribute.cpp: Ditto.
3240 * bindings/scripts/test/JS/JSreadonly.cpp: Ditto.
3242 * dom/MessagePort.cpp:
3243 (WebCore::MessagePort::addEventListener): Moved logic that calls the start
3244 function in here from setOnmessage, since the latter will no longer be called.
3245 * dom/MessagePort.h: Ditto.
3247 2015-03-06 Myles C. Maxfield <mmaxfield@apple.com>
3249 [iOS] SVG fonts are garbled
3250 https://bugs.webkit.org/show_bug.cgi?id=142377
3252 Reviewed by Simon Fraser.
3254 The C++ spec says that casting a negative floating point number to
3255 an unsigned integer is undefined. Instead, use clamping.
3257 Covered by existing SVG font tests.
3259 * Configurations/FeatureDefines.xcconfig:
3260 * svg/SVGToOTFFontConversion.cpp:
3261 (WebCore::writeCFFEncodedNumber):
3263 2015-03-06 Commit Queue <commit-queue@webkit.org>
3265 Unreviewed, rolling out r181139.
3266 https://bugs.webkit.org/show_bug.cgi?id=142394
3268 "Caused many crashes in API tests and layout tests in Debug
3269 builds on bots." (Requested by ddkilzer on #webkit).
3273 "Allow tree dumping functions to be used in release builds by
3275 https://bugs.webkit.org/show_bug.cgi?id=142379
3276 http://trac.webkit.org/changeset/181139
3278 2015-03-05 Philippe Normand <pnormand@igalia.com>
3280 [MediaStream] new load method for MediaStreamPrivate objects
3281 https://bugs.webkit.org/show_bug.cgi?id=142346
3283 Reviewed by Eric Carlson.
3285 No new tests, existing mediastream tests cover this use-case.
3287 * html/HTMLMediaElement.cpp:
3288 (WebCore::HTMLMediaElement::loadResource): Use new load method for MediaStreams.
3289 * platform/graphics/MediaPlayer.cpp:
3290 (WebCore::NullMediaPlayerPrivate::load): New stub.
3291 (WebCore::MediaPlayer::load): New load method for
3293 (WebCore::MediaPlayer::nextBestMediaEngine): Set a new boolean on
3294 the MediaEngineSupportParameters to differenciate with MSE and
3295 normal video resources.
3296 (WebCore::MediaPlayer::loadWithNextMediaEngine): Defer loading of
3297 the MediaStream to the MediaPlayerPrivate backend.
3298 * platform/graphics/MediaPlayer.h:
3299 (WebCore::MediaEngineSupportParameters::MediaEngineSupportParameters):
3300 * platform/graphics/MediaPlayerPrivate.h:
3301 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
3302 (WebCore::MediaPlayerPrivateAVFoundation::load): New empty load
3303 method for MediaStreamPrivate objects.
3304 * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
3305 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load): Ditto.
3306 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
3307 (WebCore::MediaPlayerPrivateGStreamer::load): Ditto.
3308 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
3309 * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
3310 (WebCore::MediaPlayerPrivateQTKit::load): Ditto.
3311 * platform/mock/mediasource/MockMediaPlayerMediaSource.h:
3313 2015-03-05 Philippe Normand <pnormand@igalia.com>
3315 Rename MediaStreamSource to RealtimeMediaSource
3316 https://bugs.webkit.org/show_bug.cgi?id=142330
3318 Reviewed by Eric Carlson.
3320 MediaStreamSource is a misleading name, it's not the source of a
3323 The chain from high level to low level is: MediaStream -
3324 MediaStreamTrack - MediaStreamTrackPrivate - RealTimeMediaSource
3325 and a MediaStream can contains several MediaStreamTrack objects of
3328 MediaStreamSourceStates was also renamed to
3329 RealtimeMediaSourceStates, and MediaStreamSourceCapabilities to
3330 RealtimeMediaSourceCapabilities, for consistency.
3332 2015-03-06 Gyuyoung Kim <gyuyoung.kim@samsung.com>
3334 Unreviewed WinCairo port build fix since r181136.
3336 * platform/network/curl/ResourceRequest.h:
3337 (WebCore::ResourceRequest::doPlatformAdopt): Missing ":" in std::unique_ptr.
3339 2015-03-06 David Kilzer <ddkilzer@apple.com>
3341 Rename SOFT_LINK_{CONSTANT,FUNCTION}_{HEADER,SOURCE} to SOFT_LINK_{CONSTANT,FUNCTION}_FOR_{HEADER,SOURCE}
3342 <http://webkit.org/b/142177>
3344 Reviewed by Alex Christensen.
3346 * platform/cf/CoreMediaSoftLink.cpp:
3347 - Rename SOFT_LINK_{CONSTANT,FUNCTION}_SOURCE() to
3348 SOFT_LINK_{CONSTANT,FUNCTION}_FOR_SOURCE().
3349 * platform/cf/CoreMediaSoftLink.h:
3350 - Rename SOFT_LINK_{CONSTANT,FUNCTION}_HEADER() to
3351 SOFT_LINK_{CONSTANT,FUNCTION}_FOR_HEADER().
3353 * platform/mac/SoftLinking.h:
3354 * platform/win/SoftLinking.h:
3355 - Rename SOFT_LINK_{CONSTANT,FUNCTION}_{HEADER,SOURCE}() to
3356 SOFT_LINK_{CONSTANT,FUNCTION}_FOR_{HEADER,SOURCE}().
3358 2015-03-06 Sergio Villar Senin <svillar@igalia.com>
3360 [CSS Grid Layout] ASSERTION FAILED !track.growthLimitIsInfinite() in RenderGrid::computeUsedBreadthOfGridTracks
3361 https://bugs.webkit.org/show_bug.cgi?id=142265
3363 Reviewed by Darin Adler.
3365 The problem is that computeUsedBreadthOfGridTracks() could return
3366 -1 for rows because we're calling computeContentLogicalHeight()
3367 which can indeed return -1. In those cases we should clamp the
3368 value to 0 the same as Flexbox does otherwise we could end up with
3369 a negative value in the min track sizing function.
3371 Test: fast/css-grid-layout/grid-indefinite-calculated-height-crash.html
3373 * rendering/RenderGrid.cpp:
3374 (WebCore::RenderGrid::computeUsedBreadthOfSpecifiedLength):
3376 2015-03-05 Simon Fraser <simon.fraser@apple.com>
3378 Allow tree dumping functions to be used in release builds by switching a flag
3379 https://bugs.webkit.org/show_bug.cgi?id=142379
3381 Reviewed by Zalan Bujtas.
3383 There are various tree dumping functions that are useful for debugging, and sometimes
3384 you want to be able to use them in release builds. Currently they are surrounded by
3385 #ifndef NDEBUG. Change this to #if ENABLE(TREE_DEBUGGING), which is defined to 0 or 1
3389 * dom/DocumentMarkerController.cpp:
3390 * dom/DocumentMarkerController.h:
3395 * dom/Position.cpp: Position::debugPosition(const char* msg) was available in release builds, but this changes
3396 is to respect ENABLE_TREE_DEBUGGING, which I think is correct.
3402 * rendering/CounterNode.cpp:
3403 * rendering/CounterNode.h:
3404 * rendering/InlineBox.cpp:
3405 * rendering/InlineBox.h:
3406 * rendering/InlineFlowBox.cpp:
3407 * rendering/InlineFlowBox.h:
3408 * rendering/InlineTextBox.cpp:
3409 * rendering/InlineTextBox.h:
3410 * rendering/RenderBlockFlow.cpp:
3411 * rendering/RenderBlockFlow.h:
3412 * rendering/RenderCounter.cpp:
3413 * rendering/RenderCounter.h:
3414 * rendering/RenderLayer.cpp:
3415 * rendering/RenderLayer.h:
3416 * rendering/RenderLayerBacking.cpp:
3417 (WebCore::RenderLayerBacking::createGraphicsLayer):
3418 (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
3419 (WebCore::RenderLayerBacking::updateForegroundLayer):
3420 (WebCore::RenderLayerBacking::updateBackgroundLayer):
3421 * rendering/RenderLayerCompositor.cpp:
3422 (WebCore::CompositingState::CompositingState):
3423 (WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
3424 (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
3425 (WebCore::RenderLayerCompositor::updateLayerForHeader):
3426 (WebCore::RenderLayerCompositor::updateLayerForFooter):
3427 (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
3428 (WebCore::RenderLayerCompositor::ensureRootLayer):
3429 * rendering/RenderObject.cpp:
3430 * rendering/RenderObject.h: showTreeCharacterOffset was unused.
3431 * rendering/RootInlineBox.cpp:
3432 * rendering/RootInlineBox.h:
3433 * rendering/SimpleLineLayoutFunctions.cpp:
3434 * rendering/SimpleLineLayoutFunctions.h:
3435 * rendering/svg/SVGResources.cpp:
3436 * rendering/svg/SVGResources.h:
3438 2015-03-05 Brent Fulgham <bfulgham@apple.com>
3440 [Mac] 'Gliding' phase of scroll snap points is incorrect on desktop
3441 https://bugs.webkit.org/show_bug.cgi?id=142351
3442 <rdar://problem/20058023>
3444 Reviewed by Dean Jackson.
3446 This problem was caused by incorrectly starting a new snapping animation timer when the
3447 "end momentum" phase event had been received. This caused WebKit to recalculate the
3448 animation curve for the remaining distance, resulting in the bad animation behavior.
3450 Removing this incorrect start animation command when entering the momentum ended state
3451 resolves the problem.
3453 * platform/cocoa/ScrollController.mm:
3454 (WebCore::ScrollController::processWheelEventForScrollSnapOnAxis): Remove the command to
3455 start a new snap animation when entering the "end momentum" state.
3457 2015-03-05 Joonghun Park <jh718.park@samsung.com>
3459 Use std::unique_ptr instead of PassOwnPtr|OwnPtr for ResourceRequest
3460 https://bugs.webkit.org/show_bug.cgi?id=142349
3462 Reviewed by Darin Adler.
3464 No new tests, no behavior changes.
3466 * loader/WorkerThreadableLoader.cpp:
3467 (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
3468 * loader/cache/MemoryCache.cpp:
3469 (WebCore::MemoryCache::removeRequestFromSessionCaches):
3470 * platform/CrossThreadCopier.h:
3471 * platform/network/ResourceRequestBase.cpp:
3472 (WebCore::ResourceRequestBase::adopt):
3473 (WebCore::ResourceRequestBase::copyData):
3474 * platform/network/ResourceRequestBase.h:
3475 * platform/network/cf/ResourceRequest.h:
3476 * platform/network/cf/ResourceRequestCFNet.cpp:
3477 (WebCore::ResourceRequest::doPlatformCopyData):
3478 (WebCore::ResourceRequest::doPlatformAdopt):
3479 * platform/network/curl/ResourceRequest.h:
3480 (WebCore::ResourceRequest::doPlatformCopyData):
3481 (WebCore::ResourceRequest::doPlatformAdopt):
3482 * platform/network/soup/ResourceRequest.h:
3483 (WebCore::ResourceRequest::doPlatformCopyData):
3484 (WebCore::ResourceRequest::doPlatformAdopt):
3486 2015-03-05 Oliver Hunt <oliver@apple.com>
3488 Block mixed mode content
3489 https://bugs.webkit.org/show_bug.cgi?id=142378
3491 Reviewed by Darin Adler.
3493 Switched to blocking mixed mode content by default,
3494 and modify the blocking rules to allow us to match
3495 the behaviours of other browsers.
3497 * loader/DocumentLoader.cpp:
3498 (WebCore::DocumentLoader::willSendRequest):
3499 * loader/MixedContentChecker.cpp:
3500 (WebCore::MixedContentChecker::canDisplayInsecureContent):
3501 (WebCore::MixedContentChecker::canRunInsecureContent):
3502 (WebCore::MixedContentChecker::logWarning):
3503 * loader/MixedContentChecker.h:
3504 * loader/cache/CachedResourceLoader.cpp:
3505 (WebCore::contentTypeFromResourceType):
3506 (WebCore::CachedResourceLoader::checkInsecureContent):
3509 2015-03-05 Chris Dumez <cdumez@apple.com>
3511 Document::recalcStyle() shouldn't call viewportContentsChanged() if there is a pending layout
3512 https://bugs.webkit.org/show_bug.cgi?id=142140
3514 Reviewed by Darin Adler.
3516 Stop calling FrameView::viewportContentsChanged() in Document::recalcStyle()
3517 if there is a layout pending to avoid doing unncessary work. If there is a
3518 layout pending, we don't need to do anything because viewportContentsChanged()
3519 will be called after layout.
3521 We only need to call FrameView::viewportContentsChanged() in
3522 Document::recalcStyle() if a style recalc does not cause a layout. For e.g.
3523 a '-webkit-transform' could make an animated GIF visible without causing a
3524 layout, in which case we need to resume the animated GIF after style recalc.
3526 No new tests, already covered by:
3527 fast/images/animated-gif-webkit-transform.html
3530 (WebCore::Document::recalcStyle):
3532 2015-03-05 Dean Jackson <dino@apple.com>
3534 [iOS Media] Web video on iPad appears black and missing the AirPlay placard when connected to an AirPlay route
3535 https://bugs.webkit.org/show_bug.cgi?id=142373
3536 <rdar://problem/19866072>
3538 Reviewed by Brent Fulgham.
3540 There was no style for the placard, which meant it had
3541 zero height (and thus was invisible).
3543 * Modules/mediacontrols/mediaControlsiOS.css:
3544 (audio::-webkit-media-controls-wireless-playback-status): Added.
3545 (audio::-webkit-media-controls-wireless-playback-status.hidden):
3547 2015-03-05 Roger Fong <roger_fong@apple.com>
3549 Adjust volume box to not intersect with rest of inline media controls on OSX.
3550 https://bugs.webkit.org/show_bug.cgi?id=142372.
3551 <rdar://problem/20064327>
3553 Reviewed by Brent Fulgham.
3555 * Modules/mediacontrols/mediaControlsApple.css:
3556 (audio::-webkit-media-controls-panel .volume-box):
3557 (audio::-webkit-media-controls-panel .volume-box:active):
3559 2015-03-05 Timothy Horton <timothy_horton@apple.com>
3561 <attachment> should allow the title property to override its title
3562 https://bugs.webkit.org/show_bug.cgi?id=142369
3564 Reviewed by Anders Carlsson.
3566 Test: fast/attachment/attachment-title.html
3568 * html/HTMLAttachmentElement.cpp:
3569 (WebCore::HTMLAttachmentElement::parseAttribute):
3570 Invalidate the attachment if the title changes.
3572 (WebCore::HTMLAttachmentElement::attachmentTitle):
3573 Use the title attribute for the title, unless it's empty, in which
3574 case we'll use the file's name.
3576 * html/HTMLAttachmentElement.h:
3577 * rendering/RenderThemeMac.mm:
3578 (WebCore::AttachmentLayout::layOutTitle):
3579 Use attachmentTitle() instead of reaching into the file. Also rename
3580 some things from filename to title.
3582 2015-03-05 Timothy Horton <timothy_horton@apple.com>
3584 Two text carets result when dragging a file into a contentEditable area that preventDefault()s the "drop" event
3585 https://bugs.webkit.org/show_bug.cgi?id=142362
3586 <rdar://problem/20046434>
3588 Reviewed by Simon Fraser.
3590 * page/DragController.h:
3591 * page/DragController.cpp:
3592 (WebCore::DragController::clearDragCaret):
3593 Rename cancelDrag to clearDragCaret, since that's really what it does.
3595 (WebCore::DragController::tryDocumentDrag):
3596 When updating the drag position, if we're now over a <input type="file">,
3597 clear the drag caret. This avoids leaving a caret behind when dragging
3598 over a <input type="file"> inside a contentEditable area.
3600 (WebCore::DragController::performDragOperation):
3601 When the content preventDefault()s while finishing a drag, we should still
3602 clear the drag caret, because it's possible that the client did not
3603 preventDefault() on dragover/etc., so we would have set a cursor, and
3604 now need to clear it so that it doesn't get left behind.
3606 (WebCore::DragController::mouseMovedIntoDocument):
3607 (WebCore::DragController::dragEnteredOrUpdated):
3608 (WebCore::DragController::concludeEditDrag):
3609 Adjust to renamed clearDragCaret.
3611 (WebCore::DragController::dragEnded):
3612 Make use of clearDragCaret (which is equivalent to this line).
3614 2015-03-05 Timothy Horton <timothy_horton@apple.com>
3616 <attachment> should support indication of download progress
3617 https://bugs.webkit.org/show_bug.cgi?id=142336
3618 <rdar://problem/19982504>
3620 Reviewed by Anders Carlsson.
3622 * html/HTMLAttachmentElement.cpp:
3623 (WebCore::HTMLAttachmentElement::parseAttribute):
3624 Invalidate the attachment if the progress attribute changes.
3626 * platform/graphics/FloatRoundedRect.h:
3627 (WebCore::FloatRoundedRect::Radii::Radii):
3628 Add a Radii constructor that takes a single argument that is used
3629 as the radius for all corners, for convenience.
3631 * rendering/RenderThemeMac.mm:
3632 (WebCore::attachmentProgressBarBackgroundColor):
3633 (WebCore::attachmentProgressBarFillColor):
3634 (WebCore::attachmentProgressBarBorderColor):
3635 Add a bunch of constants for the progress bar.
3637 (WebCore::paintAttachmentIconBackground):
3638 Make use of fillRoundedRect instead of creating a path.
3640 (WebCore::paintAttachmentProgress):
3641 (WebCore::RenderThemeMac::paintAttachment):
3642 Paint a progress bar if the progress attribute exists and
3643 is a valid floating point number.
3645 2015-03-05 Commit Queue <commit-queue@webkit.org>
3647 Unreviewed, rolling out r180846.
3648 https://bugs.webkit.org/show_bug.cgi?id=142368
3650 Caused missing image banners in iTunes store pages (Requested
3651 by smfr on #webkit).
3655 "FrameView::layoutTimerFired() should update style if needed
3656 before doing layout"
3657 https://bugs.webkit.org/show_bug.cgi?id=141688
3658 http://trac.webkit.org/changeset/180846
3660 2015-03-05 Sandy Perez <sperez@indaba.es>
3662 Fix the build when NEON_INTRINSICS is enabled
3663 https://bugs.webkit.org/show_bug.cgi?id=142361
3665 Reviewed by Csaba Osztrogonác.
3667 * platform/graphics/cpu/arm/filters/FEBlendNEON.h:
3668 (WebCore::FEBlend::platformApplySoftware):
3669 * platform/graphics/filters/FEGaussianBlur.cpp:
3670 (WebCore::standardBoxBlur):
3672 2015-03-05 Benjamin Poulain <bpoulain@apple.com>
3674 Add basic support for character sets to the URL Filter parser
3675 https://bugs.webkit.org/show_bug.cgi?id=142257
3677 Reviewed by Alex Christensen.
3679 This patch is a first step toward making the URL filter parser a bit
3680 more powerful: it adds support for character set atom.
3682 I did not attempt to integrate that into the prefix tree in this patch,
3683 instead, the GraphBuilder gets a two modes of generating the NFA:
3684 PrefixTree and DirectGeneration.
3686 As long as we only see trivial atoms, we use the PrefixTree generation
3687 to minimize the number of nodes we need. As soon as we start a character
3688 class, we switch to DirectGeneration and we generate the NFA from the input
3689 without merging with previously seen patterns.
3691 To differentiate between Trivial atoms and CharacterSet, we also gain
3694 The character set themself are very simple: each character is represented by
3695 a bit in a 16bytes bit vector.
3697 * contentextensions/URLFilterParser.cpp:
3698 (WebCore::ContentExtensions::quantifyTrivialAtom):
3699 (WebCore::ContentExtensions::GraphBuilder::atomPatternCharacter):
3700 (WebCore::ContentExtensions::GraphBuilder::atomBuiltInCharacterClass):
3701 (WebCore::ContentExtensions::GraphBuilder::quantifyAtom):
3702 (WebCore::ContentExtensions::GraphBuilder::atomBackReference):
3703 (WebCore::ContentExtensions::GraphBuilder::atomCharacterClassBegin):
3704 (WebCore::ContentExtensions::GraphBuilder::atomCharacterClassAtom):
3705 (WebCore::ContentExtensions::GraphBuilder::atomCharacterClassRange):
3706 (WebCore::ContentExtensions::GraphBuilder::atomCharacterClassEnd):
3707 (WebCore::ContentExtensions::GraphBuilder::atomCharacterClassBuiltIn):
3708 (WebCore::ContentExtensions::GraphBuilder::sinkAtom):
3709 (WebCore::ContentExtensions::GraphBuilder::generateTransition):
3710 (WebCore::ContentExtensions::GraphBuilder::sinkTrivialAtom):
3711 (WebCore::ContentExtensions::GraphBuilder::sinkCharacterSet):
3712 (WebCore::ContentExtensions::GraphBuilder::sinkPendingAtomIfNecessary):
3714 2015-03-05 Roger Fong <roger_fong@apple.com>
3716 Implement new fullscreen media controls on Mac.
3717 https://bugs.webkit.org/show_bug.cgi?id=142355.
3718 <rdar://problem/16175787>
3720 Reviewed by Dean Jackson.
3722 Adjust sizes and positioning of all fullscreen media control elements.
3723 * Modules/mediacontrols/mediaControlsApple.css:
3724 (audio::-webkit-media-controls-fullscreen-button.exit): Update to match entering fullscreen button.
3725 (video:-webkit-full-screen::-webkit-media-controls-panel):
3726 (video:-webkit-full-screen::-webkit-media-controls-panel .volume-box):
3727 (video:-webkit-full-screen::-webkit-media-controls-volume-slider):
3728 (video:-webkit-full-screen::-webkit-media-controls-volume-max-button):
3729 (video:-webkit-full-screen::-webkit-media-controls-volume-min-button):
3730 (video:-webkit-full-screen::-webkit-media-controls-play-button):
3731 (video:-webkit-full-screen::-webkit-media-controls-play-button.paused):
3732 (video:-webkit-full-screen::-webkit-media-controls-seek-back-button):
3733 (video:-webkit-full-screen::-webkit-media-controls-seek-forward-button):
3734 (video:-webkit-full-screen::-webkit-media-controls-timeline-container):
3735 (video:-webkit-full-screen::-webkit-media-controls-current-time-display):
3736 (video:-webkit-full-screen::-webkit-media-controls-time-remaining-display):
3737 (audio:-webkit-full-screen::-webkit-media-controls-toggle-closed-captions-button):
3738 (video:-webkit-full-screen::-webkit-media-controls-volume-slider::-webkit-slider-thumb): Deleted.
3739 (video:-webkit-full-screen::-webkit-media-controls-rewind-button): Deleted. Not used in full screen.
3741 2015-03-05 Roger Fong <roger_fong@apple.com>
3743 Minor touchups to inline media control icons.
3744 https://bugs.webkit.org/show_bug.cgi?id=142354.
3745 <rdar://problem/20058854>.
3747 Reviewed by Brent Fulgham.
3749 Increase sizes of play/pause and fullscreen buttons slightly.
3750 * Modules/mediacontrols/mediaControlsApple.css:
3751 (audio::-webkit-media-controls-play-button):
3752 (audio::-webkit-media-controls-play-button.paused):
3753 (audio::-webkit-media-controls-fullscreen-button):
3755 2015-03-05 Roger Fong <roger_fong@apple.com>
3757 Update inline media control icons for OSX.
3758 https://bugs.webkit.org/show_bug.cgi?id=142305.
3759 <rdar://problem/19997484>
3761 Reviewed by Dean Jackson.
3763 Changes include: new volume button, new full screen button, new play/pause button.
3764 Repositioning of 30 second and play buttons.
3765 * Modules/mediacontrols/mediaControlsApple.css:
3766 (audio::-webkit-media-controls-panel button):
3767 (audio::-webkit-media-controls-rewind-button):
3768 (audio::-webkit-media-controls-play-button):
3769 (audio::-webkit-media-controls-play-button.paused):
3770 (audio::-webkit-media-controls-panel .mute-box):
3771 (video::-webkit-media-controls-volume-max-button):
3772 (video::-webkit-media-controls-volume-min-button):
3773 (audio::-webkit-media-controls-toggle-closed-captions-button):
3774 (audio::-webkit-media-controls-fullscreen-button):
3775 (audio::-webkit-media-controls-current-time-display):
3776 * Modules/mediacontrols/mediaControlsApple.js:
3777 (Controller.prototype.configureInlineControls): Swap positions of rewind and play buttons.
3778 (Controller.prototype.handleMuteButtonClicked): Remember to update volume slider when necessary.
3779 (Controller.prototype.updateVolume): Ditto
3781 2015-03-05 David Hyatt <hyatt@apple.com>
3783 Caps lock indicator in text fields is laying out in the wrong place.
3784 https://bugs.webkit.org/show_bug.cgi?id=142352
3786 Reviewed by Dean Jackson.
3789 (input::-webkit-caps-lock-indicator):
3790 Change the CSS to give the SVG image an intrinsic size, and to use align-self:stretch so that
3791 the image always stretches to fill the height of the text box. Get rid of height:100%, as that
3792 just resolves to auto in strict mode and was not ever going to work there.
3794 2015-03-04 Dean Jackson <dino@apple.com>
3796 [iOS Media] Use a blurry background for media controls
3797 https://bugs.webkit.org/show_bug.cgi?id=142316
3798 <rdar://problem/14911098>
3800 Reviewed by Eric Carlson.
3802 Start using the -webkit-appearance media-controls-light-bar-background
3803 in order to get the blurry background of media controls.
3805 * Modules/mediacontrols/mediaControlsApple.js: Keep the panel and the
3806 panel background in sync when it comes to hiding and showing. It would
3807 be better if this could be done on a container element in the future.
3808 (Controller.prototype.handlePanelTransitionEnd):
3809 (Controller.prototype.setPlaying):
3810 (Controller.prototype.showControls):
3811 (Controller.prototype.hideControls):
3813 * Modules/mediacontrols/mediaControlsiOS.css: New background container
3814 with the special appearance. I also renamed "composited-parent" to
3815 "container", which makes more sense.
3816 (video::-webkit-media-controls-panel-container):
3817 (audio::-webkit-media-controls-panel-container):
3818 (video::-webkit-media-controls-panel-background):
3819 (audio::-webkit-media-controls-panel-background):
3820 (video::-webkit-media-controls-panel-background.paused):
3821 (video::-webkit-media-controls-panel):
3822 (audio::-webkit-media-controls-panel):
3823 (video::-webkit-media-controls-panel.paused):
3824 (audio::-webkit-media-controls-optimized-fullscreen-button):
3825 (audio::-webkit-media-controls-timeline):
3826 (audio::-webkit-media-controls-timeline::-webkit-slider-thumb):
3827 (video::-webkit-media-controls-panel-composited-parent): Deleted.
3828 (video::-webkit-media-controls-panel:hover): Deleted.
3830 * Modules/mediacontrols/mediaControlsiOS.js:
3831 (ControllerIOS.prototype.createControls): Create the new background element.
3832 (ControllerIOS.prototype.addControls):
3833 (ControllerIOS.prototype.set pageScaleFactor): Temporarily disable
3834 this because the background disappears when the zoom factor
3835 is too high - we start tiling the background. This will be addressed
3836 by https://bugs.webkit.org/show_bug.cgi?id=142317.
3838 2015-03-05 Myles C. Maxfield <mmaxfield@apple.com>
3840 Mechanical text-related cleanup
3841 https://bugs.webkit.org/show_bug.cgi?id=142326
3843 Reviewed by Andreas Kling.
3845 Use nullptr instead of 0.
3846 Use references instead of pointers.
3848 No new tests because there is no behavior change.
3850 * platform/graphics/cocoa/FontCascadeCocoa.mm:
3851 (WebCore::FontCascade::adjustSelectionRectForComplexText):
3852 (WebCore::FontCascade::getGlyphsAndAdvancesForComplexText):
3853 (WebCore::FontCascade::floatWidthForComplexText):
3854 (WebCore::FontCascade::offsetForPositionForComplexText):
3855 * platform/graphics/mac/ComplexTextController.cpp:
3856 (WebCore::TextLayout::TextLayout):
3857 (WebCore::ComplexTextController::ComplexTextController):
3858 * platform/graphics/mac/ComplexTextController.h:
3859 * rendering/InlineIterator.h:
3860 (WebCore::InlineIterator::InlineIterator):
3861 (WebCore::InlineIterator::clear):
3862 (WebCore::bidiNextShared):
3863 (WebCore::bidiNextSkippingEmptyInlines):
3864 (WebCore::bidiNextIncludingEmptyInlines):
3865 (WebCore::InlineWalker::InlineWalker):
3866 (WebCore::InlineIterator::increment):
3867 * rendering/RenderBlockLineLayout.cpp:
3868 (WebCore::setLogicalWidthForTextRun):
3869 (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):
3870 * rendering/line/BreakingContextInlineHeaders.h:
3871 (WebCore::measureHyphenWidth):
3872 (WebCore::textWidth):
3873 (WebCore::tryHyphenating):
3874 (WebCore::BreakingContext::handleText):
3875 (WebCore::BreakingContext::optimalLineBreakLocationForTrailingWord):
3877 2015-03-05 Brent Fulgham <bfulgham@apple.com>
3879 Move AxisScrollSnapAnimator logic to ScrollController
3880 https://bugs.webkit.org/show_bug.cgi?id=142293
3881 <rdar://problem/20039867>
3883 Reviewed by Dean Jackson.
3885 No change in function.
3887 Move the animation logic out of 'AxisScrollSnapAnimator' into 'ScrollController'. Rename the remaining
3888 bits of 'AxisScrollSnapAnimator' as 'ScrollSnapAnimatorState'. Remove a number of delegate methods required
3889 by 'AxisScrollSnapAnimatorClient' that are no longer needed.
3891 Also, break up some of the Scroll Snap Point math to be a little easier to understand.
3893 * WebCore.xcodeproj/project.pbxproj: Rename 'platform/mac/AxisScrollSnapAnimator.{h,mm}' -> 'platform/cocoa/ScrollSnapAnimatorState.h'
3894 * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h: Mark 'scrollOffsetOnAxis' as const.
3895 * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
3896 (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollOffsetOnAxis): Make 'const'
3897 * platform/ScrollAnimator.cpp:
3898 (WebCore::ScrollAnimator::scrollOffsetOnAxis): Make 'const'
3899 * platform/ScrollAnimator.h:
3900 * platform/cocoa/ScrollController.h: No longer subclass from AxisScrollSnapAnimatorClient.
3901 * platform/cocoa/ScrollController.mm:
3902 (WebCore::ScrollController::scrollSnapPointState): Added accessors (const and non-const) for the individual
3903 Scroll Snap State of each axis.
3904 (WebCore::toWheelEventStatus): Moved from AxisScrollSnapAnimator.
3905 (WebCore::ScrollController::processWheelEventForScrollSnapOnAxis): Added helper function containing the snap wheel handler code
3906 from AxisScrollSnapAnimator.
3907 (WebCore::ScrollController::shouldOverrideWheelEvent): Moved from AxisScrollSnapAnimator.
3908 (WebCore::ScrollController::processWheelEventForScrollSnap): Update to use new methods moved from AxisScrollSnapAnimator.
3909 (WebCore::ScrollController::updateScrollAnimatorsAndTimers): Update for new ScrollSnapAnimatorState class.
3910 (WebCore::ScrollController::updateScrollSnapPoints): Ditto.
3911 (WebCore::ScrollController::startScrollSnapTimer): Call client (delegate) method.
3912 (WebCore::ScrollController::stopScrollSnapTimer): Ditto.
3913 (WebCore::ScrollController::horizontalScrollSnapTimerFired): Call new 'scrollSnapAnimationUpdate' method passing the
3914 correct axis to animate.
3915 (WebCore::ScrollController::verticalScrollSnapTimerFired): Ditto.
3916 (WebCore::ScrollController::scrollSnapAnimationUpdate): Moved from AxisScrollSnapAnimator.
3917 (WebCore::projectedInertialScrollDistance): Moved from AxisScrollSnapAnimator.
3918 (WebCore::ScrollController::initializeGlideParameters): Ditto.
3919 (WebCore::ScrollController::beginScrollSnapAnimation): Ditto.
3920 (WebCore::ScrollController::endScrollSnapAnimation): Ditto.
3921 (WebCore::snapProgress): Created a new function for this calculation to make reasoning about the 'computeSnapDelta' and
3922 'computeGlideDelta' easier.
3923 (WebCore::clampedSnapMagnitude): Ditto.
3924 (WebCore::ScrollController::computeSnapDelta): Moved from AxisScrollSnapAnimator.
3925 (WebCore::snapGlide): Created a new function for this calculation to make reasoning about the 'computeGlideDelta' easier.
3926 (WebCore::ScrollController::computeGlideDelta): Moved from AxisScrollSnapAnimator.
3927 (WebCore::ScrollController::scrollOffsetOnAxis): Deleted.
3928 (WebCore::ScrollController::immediateScrollOnAxis): Deleted.
3929 * platform/cocoa/ScrollSnapAnimatorState.h: Copied from platform/mac/AxisScrollSnapAnimator.h.
3930 (WebCore::AxisScrollSnapAnimatorClient::~AxisScrollSnapAnimatorClient): Deleted.
3931 * platform/cocoa/ScrollSnapAnimatorState.mm: Copied from platform/mac/AxisScrollSnapAnimator.mm.
3932 (WebCore::ScrollSnapAnimatorState::ScrollSnapAnimatorState):
3933 (WebCore::ScrollSnapAnimatorState::pushInitialWheelDelta):
3934 (WebCore::ScrollSnapAnimatorState::averageInitialWheelDelta):
3935 (WebCore::ScrollSnapAnimatorState::clearInitialWheelDeltaWindow):
3936 (WebCore::toWheelEventStatus): Deleted.
3937 (WebCore::projectedInertialScrollDistance): Deleted.
3938 (WebCore::AxisScrollSnapAnimator::AxisScrollSnapAnimator): Deleted.
3939 (WebCore::AxisScrollSnapAnimator::handleWheelEvent): Deleted.
3940 (WebCore::AxisScrollSnapAnimator::shouldOverrideWheelEvent): Deleted.
3941 (WebCore::AxisScrollSnapAnimator::scrollSnapAnimationUpdate): Deleted.
3942 (WebCore::AxisScrollSnapAnimator::beginScrollSnapAnimation): Deleted.
3943 (WebCore::AxisScrollSnapAnimator::endScrollSnapAnimation): Deleted.
3944 (WebCore::AxisScrollSnapAnimator::computeSnapDelta): Deleted.
3945 (WebCore::AxisScrollSnapAnimator::computeGlideDelta): Deleted.
3946 (WebCore::AxisScrollSnapAnimator::initializeGlideParameters): Deleted.
3947 (WebCore::AxisScrollSnapAnimator::pushInitialWheelDelta): Deleted.
3948 (WebCore::AxisScrollSnapAnimator::averageInitialWheelDelta): Deleted.
3949 (WebCore::AxisScrollSnapAnimator::clearInitialWheelDeltaWindow): Deleted.
3950 * platform/mac/AxisScrollSnapAnimator.h: Removed.
3951 * platform/mac/AxisScrollSnapAnimator.mm: Removed.
3952 * platform/mac/ScrollAnimatorMac.h:
3953 * platform/mac/ScrollAnimatorMac.mm:
3954 (WebCore::ScrollAnimatorMac::pinnedInDirection): Removed.
3956 2015-03-04 Dean Jackson <dino@apple.com>
3958 [iOS Media] Small inline controls can clip the time widgets
3959 https://bugs.webkit.org/show_bug.cgi?id=142319
3961 Reviewed by Eric Carlson.
3963 Start counting the number of digits in a duration so that
3964 we can assign classes to the time widgets that specify
3967 * Modules/mediacontrols/mediaControlsApple.css: Replace the hour-long and ten-hour-long
3968 classes with number of digits.
3969 (audio::-webkit-media-controls-time-remaining-display.five-digit-time):
3970 (audio::-webkit-media-controls-current-time-display.five-digit-time):
3971 (audio::-webkit-media-controls-time-remaining-display.six-digit-time):
3972 (audio::-webkit-media-controls-current-time-display.six-digit-time):
3973 (audio::-webkit-media-controls-time-remaining-display.hour-long-time): Deleted.
3974 (audio::-webkit-media-controls-current-time-display.hour-long-time): Deleted.
3975 (audio::-webkit-media-controls-time-remaining-display.ten-hour-long-time): Deleted.
3976 (audio::-webkit-media-controls-current-time-display.ten-hour-long-time): Deleted.
3978 * Modules/mediacontrols/mediaControlsApple.js: Add some new class names.
3979 (Controller.prototype.updateDuration): Set the class of the time
3980 widgets when we know how long the media runs.
3982 * Modules/mediacontrols/mediaControlsiOS.css: Values for iOS that
3983 are big enough to avoid clipping.
3984 (video::-webkit-media-controls-current-time-display):
3985 (video::-webkit-media-controls-time-remaining-display):
3986 (video::-webkit-media-controls-current-time-display.three-digit-time):
3987 (video::-webkit-media-controls-time-remaining-display.three-digit-time):
3988 (video::-webkit-media-controls-current-time-display.four-digit-time):
3989 (video::-webkit-media-controls-time-remaining-display.four-digit-time):
3990 (video::-webkit-media-controls-current-time-display.five-digit-time):
3991 (video::-webkit-media-controls-time-remaining-display.five-digit-time):
3992 (video::-webkit-media-controls-current-time-display.six-digit-time):
3993 (video::-webkit-media-controls-time-remaining-display.six-digit-time):
3994 (audio::-webkit-media-controls-timeline-container): Deleted.
3995 (video::-webkit-media-text-track-container): Deleted.
3997 2015-03-05 Csaba Osztrogonác <ossy@webkit.org>
3999 [cmake] Fix the web replay build