5ea49e0f24f50cfeaa9918c562d014f12217f91d
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2015-03-09  Conrad Shultz  <conrad_shultz@apple.com>
2
3         Allow clients to selectively disable plug-ins
4         https://bugs.webkit.org/show_bug.cgi?id=142506
5
6         Reviewed by Anders Carlsson.
7
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:
10
11         1) Introduce the concept of web-visible plug-ins and related concepts, as distinct from the real underlying
12            set of plug-ins.
13
14         2) Where applicable, plumb additional information about plug-ins (specifically, bundle identification) deeper
15            down the stack.
16
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.
19
20         4) Add messaging infrastructure to allow clients to set and clear plug-in policies.
21
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.
24
25         * dom/DOMImplementation.cpp:
26         (WebCore::DOMImplementation::createDocument):
27         Update to reflect function rename.
28
29         * loader/SubframeLoader.cpp:
30         (WebCore::findPluginMIMETypeFromURL):
31         Adopt getWebVisibleMimesAndPluginIndices().
32         (WebCore::logPluginRequest):
33         Update to reflect function rename.
34         (WebCore::SubframeLoader::shouldUsePlugin):
35         Ditto.
36
37         * platform/PlatformStrategies.h:
38         Export platformStrategies(), since it is now used in WebProcess.cpp.
39
40         * plugins/DOMMimeType.cpp:
41         (WebCore::DOMMimeType::type):
42         (WebCore::DOMMimeType::description):
43         (WebCore::DOMMimeType::mimeClassInfo):
44         Adopt getWebVisibleMimesAndPluginIndices().
45         (WebCore::DOMMimeType::enabledPlugin):
46         Ditto.
47
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.
51
52         * plugins/DOMMimeTypeArray.cpp:
53         (WebCore::DOMMimeTypeArray::length):
54         Adopt getWebVisibleMimesAndPluginIndices().
55         (WebCore::DOMMimeTypeArray::item):
56         Ditto.
57         (WebCore::DOMMimeTypeArray::canGetItemsForName):
58         Ditto.
59         (WebCore::DOMMimeTypeArray::namedItem):
60         Ditto.
61
62         * plugins/DOMPlugin.cpp:
63         (WebCore::DOMPlugin::pluginInfo):
64         Adopt getWebVisiblePlugins().
65         (WebCore::DOMPlugin::item):
66         Adopt getWebVisibleMimesAndPluginIndices().
67         (WebCore::DOMPlugin::canGetItemsForName):
68         Ditto.
69         (WebCore::DOMPlugin::namedItem):
70         Ditto.
71
72         * plugins/DOMPlugin.h:
73         (WebCore::DOMPlugin::pluginInfo): Deleted.
74
75         * plugins/DOMPluginArray.cpp:
76         (WebCore::DOMPluginArray::length):
77         Adopt getWebVisiblePlugins().
78         (WebCore::DOMPluginArray::item):
79         Ditto.
80         (WebCore::DOMPluginArray::canGetItemsForName):
81         Ditto.
82         (WebCore::DOMPluginArray::namedItem):
83         Ditto.
84
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.
106
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.
114
115         * plugins/PluginStrategy.h:
116         Declare new member functions for retrieving web-visible plug-ins and setting/clearing plug-in policies.
117
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):
123         Ditto.
124         (JSC::EncodingTraits<PluginInfo>::encodeValue):
125         Handle the new members in PluginInfo.
126         (JSC::EncodingTraits<PluginInfo>::decodeValue):
127         Ditto.
128
129         * replay/WebInputs.json:
130         Teach Replay about PluginLoadClientPolicy.
131
132 2015-03-13  Chris Dumez  <cdumez@apple.com>
133
134         XMLHttpRequests should not prevent a page from entering PageCache
135         https://bugs.webkit.org/show_bug.cgi?id=142612
136         <rdar://problem/19923085>
137
138         Reviewed by Alexey Proskuryakov.
139
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.
148
149         Test: http/tests/navigation/page-cache-xhr.html
150
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.
158
159         * loader/DocumentLoader.cpp:
160         (WebCore::areAllLoadersPageCacheAcceptable):
161         Mark XHR loaders as PageCache acceptable.
162
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.
180
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
184         from PageCache.
185
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().
191
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
198         need to fix it.
199
200         * xml/XMLHttpRequest.h:
201
202 2015-03-13  Joonghun Park  <jh718.park@samsung.com>
203
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
206
207         Reviewed by Csaba Osztrogonác.
208
209         No new tests, no behavior changes.
210
211         Now CSSPropertyID type is uint16_t, so propertyID >= 0 check is needed no more.
212
213         * css/CSSPrimitiveValue.cpp:
214         (WebCore::propertyName):
215         * css/makeprop.pl:
216
217 2015-03-12  Zan Dobersek  <zdobersek@igalia.com>
218
219         Remove DrawingBuffer
220         https://bugs.webkit.org/show_bug.cgi?id=142641
221
222         Reviewed by Darin Adler.
223
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.
228
229         * CMakeLists.txt:
230         * PlatformEfl.cmake:
231         * PlatformGTK.cmake:
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):
275
276 2015-03-12  Ryosuke Niwa  <rniwa@webkit.org>
277
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
280
281         Reviewed by Darin Adler.
282
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.
285
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.
289
290         Test: editing/deleting/delete-empty-line-breaks-at-end-of-textarea.html
291
292         * dom/Position.cpp:
293         (WebCore::Position::atStartOfTree):
294         (WebCore::Position::atEndOfTree):
295
296 2015-03-12  Yusuke Suzuki  <utatane.tea@gmail.com>
297
298         Integrate MapData into JSMap and JSSet
299         https://bugs.webkit.org/show_bug.cgi?id=142556
300
301         Reviewed by Filip Pizlo.
302
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.
308
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.
315
316 2015-03-12  Dan Bernstein  <mitz@apple.com>
317
318         Finish up <rdar://problem/20086546> [Cocoa] Add an option to treat certificate chains with SHA1-signed certificates as insecure
319
320         Added back OS X bits that I couldn’t land initially in r181317 or had to remove in r181327.
321
322         * platform/network/mac/CertificateInfoMac.mm:
323         (WebCore::CertificateInfo::containsNonRootSHA1SignedCertificate):
324         * platform/spi/cocoa/SecuritySPI.h:
325
326 2015-03-12  Geoffrey Garen  <ggaren@apple.com>
327
328         REGRESSION: Crash under Heap::reportExtraMemoryAllocatedSlowCase for media element
329         https://bugs.webkit.org/show_bug.cgi?id=142636
330
331         Reviewed by Mark Hahnenberg.
332
333         This was a pre-existing bug that I made a lot worse in
334         <https://trac.webkit.org/changeset/181411>.
335
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.
341
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.
347
348 2015-03-12  Sebastian Dröge  <sebastian@centricular.com>
349
350         Stop using single-include headers that are only available since GStreamer >= 1.2.
351
352         https://bugs.webkit.org/show_bug.cgi?id=142537
353
354         Reviewed by Philippe Normand.
355
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
366         depend on 1.2.
367
368 2015-03-12  Eric Carlson  <eric.carlson@apple.com>
369
370         [Mac] Update AirPlay handling
371         https://bugs.webkit.org/show_bug.cgi?id=142541
372
373         Unreviewed, respond to post-review comments.
374
375         * dom/Document.cpp:
376         (WebCore::Document::didChoosePlaybackTarget):
377         * page/ChromeClient.h:
378         * page/Page.cpp:
379         (WebCore::Page::showPlaybackTargetPicker):
380         (WebCore::Page::didChoosePlaybackTarget):
381         (WebCore::Page::configurePlaybackTargetMonitoring):
382
383 2015-03-12  Csaba Osztrogonác  <ossy@webkit.org>
384
385         Fix the !ENABLE(PICTURE_SIZES) build
386         https://bugs.webkit.org/show_bug.cgi?id=142617
387
388         Reviewed by Darin Adler.
389
390         * html/parser/HTMLPreloadScanner.cpp:
391         (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
392
393 2015-03-11  Joseph Pecoraro  <pecoraro@apple.com>
394
395         Unreviewed follow-up fix to r181426. Initialize TextPosition with zeros in case it gets used.
396
397         Address ASSERT in LayoutTests/printing/page-format-data.html.
398
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.
403
404 2015-03-11  Roger Fong  <roger_fong@apple.com>
405
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>
409
410         Reviewed by Eric Carlson.
411
412         * Modules/mediacontrols/mediaControlsApple.js:
413         (Controller.prototype.handleWrapperMouseMove):
414         Update time as a result of a mouse move if we are scrubbing.
415
416 2015-03-11  Joseph Pecoraro  <pecoraro@apple.com>
417
418         Web Inspector: CSS parser errors in the console should include column numbers
419         https://bugs.webkit.org/show_bug.cgi?id=114313
420
421         Reviewed by Darin Adler.
422
423         Test: inspector-protocol/console/warnings-errors.html
424
425         * css/CSSParser.h:
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.
430
431         * css/CSSParser.cpp:
432         (WebCore::CSSParser::CSSParser):
433         (WebCore::CSSParser::parseSheet):
434         Initialize new instance variables.
435
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.
439
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.
444
445         (WebCore::CSSParser::syntaxError):
446         (WebCore::CSSParser::logError):
447         Include column information.
448
449         * css/StyleSheetContents.cpp:
450         (WebCore::StyleSheetContents::parseAuthorStyleSheet):
451         (WebCore::StyleSheetContents::parseString):
452         (WebCore::StyleSheetContents::parseStringAtPosition):
453         Include column information.
454
455         * css/StyleSheetContents.h:
456         * dom/InlineStyleSheetOwner.cpp:
457         (WebCore::InlineStyleSheetOwner::InlineStyleSheetOwner):
458         (WebCore::InlineStyleSheetOwner::createSheet):
459         Save and use column information later on.
460
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.
465
466 2015-03-11  Eric Carlson  <eric.carlson@apple.com>
467
468         [Mac] Update AirPlay handling
469         https://bugs.webkit.org/show_bug.cgi?id=142541
470
471         Reviewed by Sam Weinig.
472
473         * WebCore.xcodeproj/project.pbxproj:
474         * dom/Document.cpp:
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):
482         * dom/Document.h:
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:
500         * page/Page.cpp:
501         (WebCore::Page::didChoosePlaybackTarget):
502         (WebCore::Page::playbackTargetAvailabilityDidChange):
503         (WebCore::Page::configurePlaybackTargetMonitoring):
504         * page/Page.h:
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:]):
550
551 2015-03-11  Alex Christensen  <achristensen@webkit.org>
552
553         [Content Extensions] Add resource type and load type triggers.
554         https://bugs.webkit.org/show_bug.cgi?id=142422
555
556         Reviewed by Benjamin Poulain.
557
558         New API tests.
559
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:
593
594 2015-03-11  Tim Horton  <timothy_horton@apple.com>
595
596         Fix the build.
597
598         * page/EventHandler.cpp:
599         (WebCore::EventHandler::selectClosestWordFromHitTestResult):
600         (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
601         (WebCore::EventHandler::handleMousePressEventTripleClick):
602         (WebCore::EventHandler::handleMousePressEventSingleClick):
603
604 2015-03-11  Timothy Horton  <timothy_horton@apple.com>
605
606         <attachment> shouldn't use "user-select: all"
607         https://bugs.webkit.org/show_bug.cgi?id=142453
608
609         Reviewed by Darin Adler.
610
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.
616
617         Tests: fast/attachment/attachment-select-on-click-inside-user-select-all.html
618                fast/attachment/attachment-select-on-click.html
619
620         * css/html.css:
621         (attachment):
622         No more "user-select: all".
623
624         (attachment:focus): Deleted.
625         We stopped using attachment focus a while back and forgot to remove this.
626
627         * dom/Node.h:
628         (WebCore::Node::shouldSelectOnMouseDown):
629         Add a virtual function that Node subclasses can override to indicate they
630         should be selected on mouse down.
631
632         * html/HTMLAttachmentElement.h:
633         Override the aforementioned virtual function; <attachment> should always
634         be selected on mouse down.
635
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.
641
642         (WebCore::expandSelectionToRespectSelectOnMouseDown):
643         Rename this function, it's not just about "user-select: all" anymore.
644         Make use of nodeToSelectOnMouseDownForNode.
645
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.
652
653 2015-03-11  Geoffrey Garen  <ggaren@apple.com>
654
655         Users of Heap::deprecatedReportExtraMemory should switch to reportExtraMemoryAllocated+reportExtraMemoryVisited
656         https://bugs.webkit.org/show_bug.cgi?id=142595
657
658         Reviewed by Andreas Kling.
659
660         Fixed this bug for canvas.
661
662         * html/HTMLCanvasElement.cpp:
663         (WebCore::HTMLCanvasElement::memoryCost): Factored out the helper function
664         required by our IDL generator.
665
666         (WebCore::HTMLCanvasElement::createImageBuffer): Use
667         reportExtraMemoryAllocated.
668
669         * html/HTMLCanvasElement.h:
670
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.
674
675 2015-03-11  Roger Fong  <roger_fong@apple.com>
676
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>
680
681         Reviewed by Darin Adler.
682
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.
691
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):
721
722 2015-03-11  Commit Queue  <commit-queue@webkit.org>
723
724         Unreviewed, rolling out r179340 and r179344.
725         https://bugs.webkit.org/show_bug.cgi?id=142598
726
727         Caused images to stay alive forever when navigating away from
728         the page before they finish loading. (Requested by kling on
729         #webkit).
730
731         Reverted changesets:
732
733         "CachedImage: ensure clients overrides imageChanged instead of
734         notifyFinished"
735         https://bugs.webkit.org/show_bug.cgi?id=140722
736         http://trac.webkit.org/changeset/179340
737
738         "HTMLImageLoader: fix build failure on assert condition after
739         r179340"
740         https://bugs.webkit.org/show_bug.cgi?id=140722
741         http://trac.webkit.org/changeset/179344
742
743 2015-03-11  Geoffrey Garen  <ggaren@apple.com>
744
745         Many users of Heap::reportExtraMemory* are wrong, causing lots of memory growth
746         https://bugs.webkit.org/show_bug.cgi?id=142593
747
748         Reviewed by Andreas Kling.
749
750         Adopt deprecatedReportExtraMemory as a short-term fix for runaway
751         memory growth in these cases where we have not adopted
752         reportExtraMemoryVisited.
753
754         Long-term, we should use reportExtraMemoryAllocated+reportExtraMemoryVisited.
755         That's tracked by https://bugs.webkit.org/show_bug.cgi?id=142595.
756
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.
759
760         * Modules/mediasource/SourceBuffer.cpp:
761         (WebCore::SourceBuffer::reportExtraMemoryAllocated):
762         * bindings/js/JSDocumentCustom.cpp:
763         (WebCore::toJS):
764         * bindings/js/JSImageDataCustom.cpp:
765         (WebCore::toJS):
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):
778
779 2015-03-10  Andy Estes  <aestes@apple.com>
780
781         REGRESSION (r180985): contentfiltering/block-after-add-data.html crashes with GuardMalloc
782         https://bugs.webkit.org/show_bug.cgi?id=142526
783
784         Reviewed by Darin Adler.
785
786         * loader/DocumentLoader.cpp:
787         (WebCore::DocumentLoader::dataReceived): Don't delete m_contentFilter until after we're done using its replacement data.
788
789 2015-03-10  Sam Weinig  <sam@webkit.org>
790
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
794
795         Reviewed by Anders Carlsson.
796
797         Test: fast/forms/input-auto-fill-button.html
798
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).
802
803         * CMakeLists.txt:
804         * WebCore.vcxproj/WebCore.vcxproj:
805         * WebCore.vcxproj/WebCore.vcxproj.filters:
806         * WebCore.xcodeproj/project.pbxproj:
807         Add new files.
808
809         * css/html.css:
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.
815
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.
830
831         * html/InputType.cpp:
832         (WebCore::InputType::updateAutoFillButton):
833         * html/InputType.h:
834         (WebCore::InputType::autoFillButtonElement):
835         Add new virtual methods for updating and accessing the AutoFill button.
836
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
853         removed.
854
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.
861
862         * page/ChromeClient.h:
863         Add handleAutoFillButtonClick client function to inform WebKit that the AutoFill
864         button was clicked.
865
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.
873
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.
881
882 2015-03-11  Geoffrey Garen  <ggaren@apple.com>
883
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
886
887         Reviewed by Andreas Kling.
888
889         Updated for renames to JSC extra cost APIs.
890
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.
893
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:
901         (WebCore::toJS):
902         * bindings/js/JSImageDataCustom.cpp:
903         (WebCore::toJS):
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):
923
924 2015-03-11  Benjamin Poulain  <bpoulain@apple.com>
925
926         Add basic support for BOL and EOL assertions to the URL Filter parser
927         https://bugs.webkit.org/show_bug.cgi?id=142568
928
929         Reviewed by Alex Christensen.
930
931         This patch adds heavily restricted support for BOL and EOL to the URL filter parser.
932
933         Both assertions must be the first/last term of their pattern. Any advanced combination
934         results in a parsing error.
935
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.
938
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.
942
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.
945
946
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.
950
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'.
955
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):
975
976 2015-03-11  Jer Noble  <jer.noble@apple.com>
977
978         [Mac] Update fullscreen placeholder UI to use Vibrancy.
979         https://bugs.webkit.org/show_bug.cgi?id=142586
980
981         Reviewed by Eric Carlson.
982
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.
987
988         Drive-by: Update the strings for the placeholder view with new HI guidance
989         as well.
990
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:]):
997
998 2015-03-11  Timothy Horton  <timothy_horton@apple.com>
999
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
1002
1003         Reviewed by Simon Fraser.
1004
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.
1010
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
1016
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).
1022
1023         (WebCore::ViewportConfiguration::description):
1024         Dump whether we're ignoring scaling constraints.
1025
1026         (WebCore::ViewportConfiguration::dump):
1027         Use WTFLogAlways so that the output goes to various other logging mechanisms
1028         instead of just stderr.
1029
1030         * page/ViewportConfiguration.h:
1031         (WebCore::ViewportConfiguration::setCanIgnoreScalingConstraints):
1032         (WebCore::ViewportConfiguration::setIgnoreScalingConstraints): Deleted.
1033
1034 2015-03-11  Myles C. Maxfield  <mmaxfield@apple.com>
1035
1036         Use out-of-band messaging for RenderBox::firstLineBaseline() and RenderBox::inlineBlockBaseline()
1037         https://bugs.webkit.org/show_bug.cgi?id=142569
1038
1039         Reviewed by David Hyatt.
1040
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>.
1044
1045         No new tests because there is no behavior change.
1046
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:
1110
1111 2015-03-11  Timothy Horton  <timothy_horton@apple.com>
1112
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>
1116
1117         Reviewed by Anders Carlsson.
1118
1119         Covered by existing tests.
1120
1121         * editing/mac/EditorMac.mm:
1122         (WebCore::Editor::WebContentReader::readFilenames):
1123         Instead of inserting the dropped URLs as strings, make an <attachment>
1124         for each.
1125
1126 2015-03-11  David Hyatt  <hyatt@apple.com>
1127
1128         Optimize offsetWidth and offsetHeight to avoid doing layouts.
1129         https://bugs.webkit.org/show_bug.cgi?id=142544
1130
1131         Reviewed by Beth Dakin.
1132
1133         * dom/Document.cpp:
1134         (WebCore::Document::updateLayoutIfDimensionsOutOfDate):
1135         * dom/Document.h:
1136         Added a new method that only updates layout if it determines that the desired dimensions are out
1137         of date.
1138
1139         * dom/Element.cpp:
1140         (WebCore::Element::offsetWidth):
1141         (WebCore::Element::offsetHeight):
1142         Patch offsetWidth and offsetHeight to call the new method rather than updateLayoutIgnorePendingStylesheets.
1143
1144 2015-03-11  Commit Queue  <commit-queue@webkit.org>
1145
1146         Unreviewed, rolling out r181367.
1147         https://bugs.webkit.org/show_bug.cgi?id=142581
1148
1149         Caused crashes on the debug bots (Requested by cdumez on
1150         #webkit).
1151
1152         Reverted changeset:
1153
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
1158
1159 2015-03-11  Myles C. Maxfield  <mmaxfield@apple.com>
1160
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
1163
1164         Reviewed by Darin Adler.
1165
1166         Perform the same computation on child block elements as child inline elements.
1167
1168         Test: fast/text/baseline-inline-block-block-children.html
1169
1170         * rendering/RenderBlockFlow.cpp:
1171         (WebCore::RenderBlockFlow::inlineBlockBaseline):
1172
1173 2015-03-11  Carlos Alberto Lopez Perez  <clopez@igalia.com>
1174
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
1177
1178         Reviewed by Carlos Garcia Campos.
1179
1180         No new tests, this is a build fix.
1181
1182         * PlatformEfl.cmake: Include GSTREAMER_AUDIO_LIBRARIES on the link step both for ENABLE_VIDEO and ENABLE_WEB_AUDIO.
1183         * PlatformGTK.cmake: Idem.
1184
1185 2015-03-10  Philippe Normand  <pnormand@igalia.com>
1186
1187         Rename MediaStreamCenter to RealtimeMediaSourceCenter
1188         https://bugs.webkit.org/show_bug.cgi?id=142535
1189
1190         Reviewed by Eric Carlson.
1191
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.
1196
1197 2015-03-11  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1198
1199         Remove unnecessary create() factory functions
1200         https://bugs.webkit.org/show_bug.cgi?id=142558
1201
1202         Reviewed by Darin Adler.
1203
1204         create() function which just returns new instance can be replaced with std::make_unique<>.
1205
1206         No new tests, no behavior changes.
1207
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):
1228
1229 2015-03-10  Joseph Pecoraro  <pecoraro@apple.com>
1230
1231         Web Inspector: CSS parser errors in the console should include column numbers
1232         https://bugs.webkit.org/show_bug.cgi?id=114313
1233
1234         Reviewed by Benjamin Poulain.
1235
1236         Test: inspector-protocol/console/warnings-errors.html
1237
1238         * css/CSSParser.h:
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.
1243
1244         * css/CSSParser.cpp:
1245         (WebCore::CSSParser::CSSParser):
1246         (WebCore::CSSParser::parseSheet):
1247         Initialize new instance variables.
1248
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.
1252
1253         (WebCore::CSSParser::realLex):
1254         When bumping the line number, reset the column offset for the next
1255         line with the next character.
1256
1257         (WebCore::CSSParser::syntaxError):
1258         (WebCore::CSSParser::logError):
1259         Include column information.
1260
1261         * css/StyleSheetContents.cpp:
1262         (WebCore::StyleSheetContents::parseAuthorStyleSheet):
1263         (WebCore::StyleSheetContents::parseString):
1264         (WebCore::StyleSheetContents::parseStringAtLineAndColumn):
1265         Include column information.
1266
1267         * css/StyleSheetContents.h:
1268         * dom/InlineStyleSheetOwner.cpp:
1269         (WebCore::InlineStyleSheetOwner::InlineStyleSheetOwner):
1270         (WebCore::InlineStyleSheetOwner::createSheet):
1271         Save and use column information later on.
1272
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.
1277
1278 2015-03-10  Darin Adler  <darin@apple.com>
1279
1280         Try to fix the GTK build.
1281
1282         * html/HTMLVideoElement.idl: Work around gobject bindings generator limitation
1283         by putting in a LANGUAGE_GOBJECT conditional.
1284
1285 2015-03-10  Darin Adler  <darin@apple.com>
1286
1287         Some event handler fixes
1288         https://bugs.webkit.org/show_bug.cgi?id=142474
1289
1290         Reviewed by Anders Carlsson.
1291
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.
1296
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
1303         JSValueToNative.
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.
1310
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
1314         subsequent patch.
1315
1316         * bindings/scripts/test/JS/JSTestInterface.cpp: Updated for a progression caused
1317         by the better logic for conditional includes.
1318
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.
1321
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.
1328
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.
1334
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".
1339
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.
1344
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.
1349
1350         * html/HTMLFrameSetElement.idl: Removed #if and resorted as above.
1351
1352         * html/HTMLInputElement.cpp:
1353         (WebCore::HTMLInputElement::parseAttribute): Moved code to handle
1354         onsearch to HTMLElement.
1355
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.
1365
1366         * html/HTMLMediaElement.idl: Moved all the event handlers from here to
1367         Element. Also changed everything possible to use Conditional instead of #if.
1368
1369         * html/HTMLPlugInImageElement.cpp:
1370         (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Added
1371         clearException. Noticed it was missing while auditing all calls to JSC::call.
1372
1373         * html/HTMLVideoElement.cpp:
1374         (WebCore::HTMLVideoElement::parseAttribute): Moved event handler code to
1375         HTMLElement.
1376
1377         * html/HTMLVideoElement.idl: Moved event handler to Element.idl and use
1378         Conditional instead of #if.
1379
1380         * page/DOMWindow.idl: Use Conditional instead of #if and tidy up the event
1381         handlers section.
1382
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.
1385
1386 2015-03-10  Brent Fulgham  <bfulgham@apple.com>
1387
1388         CSS scroll-snap-destination and scroll-snap-coordinate are not honoring position values
1389         https://bugs.webkit.org/show_bug.cgi?id=142411
1390
1391         Reviewed by Simon Fraser.
1392
1393         Tested by css3/scroll-snap/scroll-snap-position-values.html.
1394
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.
1398
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.
1402
1403         Add tests that these position labels, as well as combinations with percentages and pixel offsets
1404         are parsed properly.
1405
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
1409         page dimensions.
1410         (WebCore::scrollSnapPoints): Ditto.
1411         (WebCore::scrollSnapCoordinates): Ditto.
1412         * css/CSSParser.cpp:
1413         (WebCore::CSSParser::parseScrollSnapPositions): Consolidated code for dealing with snap point
1414         positions.
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.
1422         * css/CSSParser.h:
1423         * css/LengthRepeat.h: Revise class to use a CSSValue, rather than a CSSPrimitiveValue, so that we can represent
1424         repeat values as calculations.
1425
1426 2015-03-10  Enrica Casucci  <enrica@apple.com>
1427
1428         Add support for more emoji with variation.
1429         https://bugs.webkit.org/show_bug.cgi?id=142548
1430         rdar://problem/20105008
1431
1432         Reviewed by Tim Horton.
1433
1434         Update ICU rules to support new emoji with variation.
1435
1436         Test: editing/selection/extend-by-character-007.html
1437
1438         * platform/text/TextBreakIterator.cpp:
1439         (WebCore::cursorMovementIterator):
1440
1441 2015-03-10  Alex Christensen  <achristensen@webkit.org>
1442
1443         Use unsigned for HashSet size.
1444         https://bugs.webkit.org/show_bug.cgi?id=142518
1445
1446         Reviewed by Benjamin Poulain.
1447
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):
1478
1479 2015-03-10  Eric Carlson  <eric.carlson@apple.com>
1480
1481         [Mac] Refactor media controls code
1482         https://bugs.webkit.org/show_bug.cgi?id=142455
1483
1484         Reviewed by Dean Jackson.
1485
1486         No new tests, updated tests/media/hls/video-controls-live-stream-expected.txt.
1487
1488         * Modules/mediacontrols/mediaControlsApple.js:
1489         (Controller):
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:
1509         (ControllerIOS):
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.
1526
1527 2015-03-10  Said Abou-Hallawa  <sabouhallawa@apple.com>
1528
1529         Remove PassRefPtr from svg/properties classes.
1530         https://bugs.webkit.org/show_bug.cgi?id=142063.
1531
1532         Reviewed by Darin Adler.
1533         
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.
1537
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):
1612
1613 2015-03-10  Timothy Horton  <timothy_horton@apple.com>
1614
1615         Fix the build
1616
1617         * platform/network/cf/ResourceHandleCFNet.cpp:
1618         (WebCore::ResourceHandle::createCFURLConnection):
1619
1620 2015-03-10  Benjamin Poulain  <bpoulain@apple.com>
1621
1622         Extend URL filter's Term definition to support groups/subpatterns
1623         https://bugs.webkit.org/show_bug.cgi?id=142519
1624
1625         Reviewed by Alex Christensen.
1626
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.
1630
1631         To avoid exposing too much internal in the API of Term, I moved
1632         graph generation from GraphBuilder to Term.
1633
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().
1638
1639         Since groups could be nested, the groups make a stack with the latest
1640         open group on top.
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.
1643
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.
1663
1664 2015-03-10  Roger Fong  <roger_fong@apple.com>
1665
1666         Adjustments to media control fonts.
1667         https://bugs.webkit.org/show_bug.cgi?id=142509.
1668         <rdar://problem/20085228>
1669
1670         Reviewed by Darin Adler.
1671
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):
1684
1685 2015-03-10  Dan Bernstein  <mitz@apple.com>
1686
1687         Fixed a crash in CertificateInfo::containsNonRootSHA1SignedCertificate when loading a non-HTTPS webapge.
1688
1689         Reviewed by Anders Carlsson.
1690
1691         * platform/network/mac/CertificateInfoMac.mm:
1692         (WebCore::CertificateInfo::containsNonRootSHA1SignedCertificate): Null-check the certificate chain.
1693
1694 2015-03-10  Dan Bernstein  <mitz@apple.com>
1695
1696         Fixed the build.
1697
1698         * platform/spi/cocoa/SecuritySPI.h:
1699
1700 2015-03-10  Zalan Bujtas  <zalan@apple.com>
1701
1702         Simple line layout: Merge TextFragmentIterator::findNextBreakablePosition() and TextFragmentIterator::findNextNonWhitespacePosition().
1703         https://bugs.webkit.org/show_bug.cgi?id=142344
1704
1705         Reviewed by Antti Koivisto.
1706
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.
1710
1711         No change in functionality.
1712
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:
1722
1723 2015-03-10  Carlos Garcia Campos  <cgarcia@igalia.com>
1724
1725         [GTK] GL_MAX_VARYING_FLOATS is not defined in OpenGL ES 2
1726         https://bugs.webkit.org/show_bug.cgi?id=142529
1727
1728         Reviewed by Žan Doberšek.
1729
1730         Do not use GL_MAX_VARYING_FLOATS when platform is GTK+ and using
1731         OpenGL ES 2.
1732
1733         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
1734         (WebCore::GraphicsContext3D::checkVaryingsPacking):
1735
1736 2015-03-10  José Dapena Paz  <jdapena@igalia.com>
1737
1738         Unreviewed. Fix GTK+ build with OpenGL ES 2 enabled.
1739
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.
1746
1747         Rubber-stamped by Carlos Garcia Campos.
1748
1749         * platform/graphics/GLContext.cpp:
1750
1751 2015-03-10  Carlos Garcia Campos  <cgarcia@igalia.com> and José Dapena Paz  <jdapena@igalia.com>
1752
1753         [GTK] Add a configure option to build with OpenGL ES 2
1754         https://bugs.webkit.org/show_bug.cgi?id=142498
1755
1756         Reviewed by Martin Robinson.
1757
1758         Build GLES or GL specific files depending on the build options.
1759
1760         * PlatformGTK.cmake:
1761
1762 2015-03-10  Zan Dobersek  <zdobersek@igalia.com>
1763
1764         Shrink the CSSPropertyID enum type
1765         https://bugs.webkit.org/show_bug.cgi?id=142456
1766
1767         Reviewed by Sam Weinig.
1768
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.
1773
1774         No new tests -- no change in behavior.
1775
1776         * css/CSSPrimitiveValue.cpp:
1777         (WebCore::propertyName): Remove the unnecessary propertyID < 0 check.
1778         * css/makeprop.pl:
1779
1780 2015-03-10  Dan Bernstein  <mitz@apple.com>
1781
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
1784
1785         Reviewed by Sam Weinig.
1786
1787         * WebCore.xcodeproj/project.pbxproj: Added reference to SecuritySPI.h and sorted the
1788         spi/cocoa group.
1789
1790         * platform/network/cf/CertificateInfo.h: Declared new member function
1791         containsNonRootSHA1SignedCertificate.
1792
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.
1796
1797         * platform/network/curl/CertificateInfo.h:
1798         (WebCore::CertificateInfo::containsNonRootSHA1SignedCertificate): Added notImplemented
1799         implementation.
1800
1801         * platform/network/soup/CertificateInfo.h:
1802         (WebCore::CertificateInfo::containsNonRootSHA1SignedCertificate): Ditto.
1803
1804         * platform/spi/cocoa/SecuritySPI.h: Added.
1805
1806 2015-03-09  Chris Dumez  <cdumez@apple.com>
1807
1808         [iOS] Sweep all collected objects on critical memory pressure
1809         https://bugs.webkit.org/show_bug.cgi?id=142457
1810         <rdar://problem/20044440>
1811
1812         Reviewed by Geoffrey Garen.
1813
1814         Do a full sweep of objects marked for destruction on critical memory
1815         pressure to free up memory.
1816
1817         * platform/cocoa/MemoryPressureHandlerCocoa.mm:
1818         (WebCore::MemoryPressureHandler::platformReleaseMemory):
1819
1820 2015-03-09  Andy Estes  <aestes@apple.com>
1821
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
1824
1825         Reviewed by Andreas Kling.
1826
1827         * platform/cocoa/NetworkExtensionContentFilter.h:
1828         * platform/cocoa/ParentalControlsContentFilter.h:
1829         * testing/MockContentFilter.h:
1830
1831 2015-03-09  Chris Dumez  <cdumez@apple.com>
1832
1833         [CG] Have Canvas use the IOSurfacePool
1834         https://bugs.webkit.org/show_bug.cgi?id=142417
1835         <rdar://problem/20044440>
1836
1837         Reviewed by Darin Adler.
1838
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.
1843
1844         I also see a ~65% cache hit rate on the mobile version of
1845         cnn.com.
1846
1847         Note that ImageData calls CGContextClearRect() after calling
1848         IOSurface::create() so recycling IOSurfaces in this case should
1849         be safe.
1850
1851         Performance test: Canvas/reuse.html
1852
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):
1877
1878 2015-03-09  Brent Fulgham  <bfulgham@apple.com>
1879
1880         Assertion in ScrollController::processWheelEventForScrollSnapOnAxis when scrolling with mechanical wheel mouse
1881         https://bugs.webkit.org/show_bug.cgi?id=142517
1882
1883         Reviewed by Simon Fraser.
1884
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.
1891
1892 2015-03-09  Myles C. Maxfield  <mmaxfield@apple.com>
1893
1894         REGRESSION(r176978): Inline-blocks with overflowing contents have ascents that are too large
1895         https://bugs.webkit.org/show_bug.cgi?id=141783
1896
1897         Reviewed by David Hyatt.
1898
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.
1903
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
1907         margin edge."
1908             -- http://www.w3.org/TR/CSS21/visudet.html#leading
1909
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
1914         breakages.
1915
1916         Test: fast/css/inline-block-tricky-baselines.html
1917               fast/text/baseline-inline-block.html
1918
1919         * rendering/RenderBlockFlow.cpp:
1920         (WebCore::RenderBlockFlow::inlineBlockBaseline):
1921
1922 2015-03-09  Andy Estes  <aestes@apple.com>
1923
1924         [Content Filtering] Add tests
1925         https://bugs.webkit.org/show_bug.cgi?id=142475
1926
1927         Reviewed by Andreas Kling.
1928
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
1931         decision to make.
1932
1933         Added tests to cover allowing and blocking content at each decision point.
1934
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
1941
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.
1996
1997 2015-03-09  Zalan Bujtas  <zalan@apple.com>
1998
1999         Simple line layout should not be limited to RenderText.
2000         https://bugs.webkit.org/show_bug.cgi?id=142504
2001
2002         Reviewed by Antti Koivisto.
2003
2004         This is in transition to support br element.
2005
2006         No change in functionality.
2007
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):
2042
2043 2015-03-09  Myles C. Maxfield  <mmaxfield@apple.com>
2044
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
2047
2048         Reviewed by Anders Carlsson.
2049
2050         After each test, reset all internal settings.
2051
2052         Covered by svg/custom/svg-fonts-without-missing-glyph.xhtml
2053
2054         * testing/InternalSettings.cpp:
2055         (WebCore::InternalSettings::Backup::Backup):
2056         (WebCore::InternalSettings::Backup::restoreTo):
2057         * testing/InternalSettings.h:
2058
2059 2015-03-09  Commit Queue  <commit-queue@webkit.org>
2060
2061         Unreviewed, rolling out r181268.
2062         https://bugs.webkit.org/show_bug.cgi?id=142508
2063
2064         Broke tests (Requested by ap on #webkit).
2065
2066         Reverted changeset:
2067
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
2073
2074 2015-03-09  Benjamin Poulain  <benjamin@webkit.org>
2075
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
2078
2079         Reviewed by Andreas Kling.
2080
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
2083         advantage of that.
2084
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.
2088
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
2093
2094         * cssjit/SelectorCompiler.cpp:
2095         (WebCore::SelectorCompiler::addNthChildType):
2096         (WebCore::SelectorCompiler::addPseudoClassType):
2097
2098 2015-03-09  Benjamin Poulain  <bpoulain@apple.com>
2099
2100         Merge TrivialAtom and CharacterSet into a Term abstraction, prepare Term for composition
2101         https://bugs.webkit.org/show_bug.cgi?id=142429
2102
2103         Reviewed by Darin Adler.
2104
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.
2107
2108         With term being the basic block, we can use the PrefixTree for any construct,
2109         greatly reducing the size of the NFA graph.
2110
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.
2113
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).
2117
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:
2165
2166 2015-03-09  Csaba Osztrogonác  <ossy@webkit.org>
2167
2168         Fix the !ENABLE(WEBGL) build after r180609
2169         https://bugs.webkit.org/show_bug.cgi?id=142057
2170
2171         Reviewed by Darin Adler.
2172
2173         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
2174         (WebCore::GraphicsContext3D::forceContextLost):
2175
2176 2015-03-09  Myles C. Maxfield  <mmaxfield@apple.com>
2177
2178         Work around a Cocoa font parsing bug
2179         https://bugs.webkit.org/show_bug.cgi?id=142446
2180         <rdar://problem/20086223>
2181
2182         Reviewed by Simon Fraser.
2183
2184         Work around a bug in Cocoa regarding font parsing.
2185
2186         * svg/SVGToOTFFontConversion.cpp:
2187
2188 2015-03-09  Csaba Osztrogonác  <ossy@webkit.org>
2189
2190         Fix the build after r181153
2191         https://bugs.webkit.org/show_bug.cgi?id=142497
2192
2193         Reviewed by Philippe Normand.
2194
2195         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2196         (WebCore::MediaPlayerPrivateGStreamer::load):
2197
2198 2015-03-09  Roger Fong  <roger_fong@apple.com>
2199
2200         Only call showControls if controls are hidden.
2201         https://bugs.webkit.org/show_bug.cgi?id=142496.
2202         <rdar://problem/20083732>
2203
2204         Reviewed by Dean Jackson.
2205
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.
2211
2212 2015-03-09  Roger Fong  <roger_fong@apple.com>
2213
2214         Unreviewed. Re-add CSS property that was unintentionally removed in r180893
2215         <rdar://problem/20083715>
2216
2217         * Modules/mediacontrols/mediaControlsApple.css:
2218         (audio::-webkit-media-controls-panel):
2219
2220 2015-03-09  Zalan Bujtas  <zalan@apple.com>
2221
2222         Simple line layout: Merge TextFragmentIterator::findNextBreakablePosition() and TextFragmentIterator::findNextNonWhitespacePosition().
2223         https://bugs.webkit.org/show_bug.cgi?id=142344
2224
2225         Reviewed by Antti Koivisto.
2226
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.
2230
2231         No change in functionality.
2232
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:
2242
2243 2015-03-09  Xabier Rodriguez Calvar <calvaris@igalia.com> and Youenn Fablet  <youenn.fablet@crf.canon.fr>
2244
2245         ReadableStreamJSSource should use JSC::Strong UnspecifiedBoolType operator
2246         https://bugs.webkit.org/show_bug.cgi?id=142397
2247
2248         Reviewed by Benjamin Poulain.
2249
2250         No behavior change. Current tests cover the changes.
2251
2252         * bindings/js/ReadableStreamJSSource.cpp:
2253         * bindings/js/ReadableStreamJSSource.h:
2254
2255 2015-03-09  Xabier Rodriguez Calvar  <calvaris@igalia.com> and Youenn Fablet  <youenn.fablet@crf.canon.fr>
2256
2257         ReadableStream does not not need to pass itself as callback parameter
2258         https://bugs.webkit.org/show_bug.cgi?id=142399
2259
2260         Reviewed by Darin Adler.
2261
2262         No change in behavior.
2263
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.
2268
2269 2015-03-08  Dean Jackson  <dino@apple.com>
2270
2271         [iOS Media] Video buffer progress missing on iPhones
2272         https://bugs.webkit.org/show_bug.cgi?id=142462
2273
2274         Reviewed by Eric Carlson.
2275
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.
2282
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.
2288
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:
2293
2294         * platform/ios/WebVideoFullscreenInterface.h: New setBufferedTime method.
2295         * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
2296
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
2302         to show that range.
2303
2304         * platform/ios/WebVideoFullscreenModelVideoElement.mm:
2305         (WebVideoFullscreenModelVideoElement::updateForEventName): Send the maximum
2306         buffered time.
2307
2308 2015-03-08  Chris Dumez  <cdumez@apple.com>
2309
2310         Crash in WebCore::NotificationCenter::stop()
2311         https://bugs.webkit.org/show_bug.cgi?id=142444
2312         <rdar://problem/20082520>
2313
2314         Reviewed by Darin Adler.
2315
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().
2319
2320         No new tests, already covered by:
2321         http/tests/notifications/event-listener-crash.html
2322
2323         * Modules/notifications/NotificationCenter.cpp:
2324         (WebCore::NotificationCenter::stop):
2325
2326 2015-03-08  Simon Fraser  <simon.fraser@apple.com>
2327
2328         Don't call RenderLayerCompositor::needsToBeComposited() so many times
2329         https://bugs.webkit.org/show_bug.cgi?id=142441
2330
2331         Reviewed by Brent Fulgham.
2332
2333         Save one call to needsToBeComposited() per RenderLayer while rebuilding compositing
2334         layers, and a call to isRunningAcceleratedTransformAnimation() in some cases.
2335         
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.
2340         
2341         isRunningAcceleratedTransformAnimation() will only be true for a layer which has a
2342         direct compositing reason, so only call isRunningAcceleratedTransformAnimation()
2343         in that case.
2344         
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:
2352
2353 2015-03-08  Simon Fraser  <simon.fraser@apple.com>
2354
2355         In RenderLayerCompositor, track layer bounds and the haveComputedBounds flag together in a struct
2356         https://bugs.webkit.org/show_bug.cgi?id=142449
2357
2358         Reviewed by Brent Fulgham.
2359         
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.
2363
2364         No behavior change.
2365
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:
2374
2375 2015-03-07  Chris Dumez  <cdumez@apple.com>
2376
2377         Crash in WebCore::NotificationCenter::stop()
2378         https://bugs.webkit.org/show_bug.cgi?id=142444
2379         <rdar://problem/20082520>
2380
2381         Reviewed by Andreas Kling.
2382
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.
2391
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.
2395
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
2398
2399         No new tests, already covered by:
2400         http/tests/notifications/event-listener-crash.html
2401
2402         * Modules/notifications/NotificationCenter.cpp:
2403         (WebCore::NotificationCenter::stop):
2404
2405 2015-03-07  Simon Fraser  <simon.fraser@apple.com>
2406
2407         Tidy up RenderLayerCompositor's CompositingState
2408         https://bugs.webkit.org/show_bug.cgi?id=142445
2409
2410         Reviewed by Dan Bernstein.
2411         
2412         Make CompositingState a private struct in RenderLayerCompositor.
2413         Since it's a struct, remove the m_ prefix from its data members.
2414
2415         No behavior change.
2416
2417         * rendering/RenderLayerCompositor.cpp:
2418         (WebCore::RenderLayerCompositor::CompositingState::CompositingState):
2419         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
2420         (WebCore::CompositingState::CompositingState): Deleted.
2421         * rendering/RenderLayerCompositor.h:
2422
2423 2015-03-07  Darin Adler  <darin@apple.com>
2424
2425         Unindent EventTarget, EventListener, JSEventLister.h files
2426         https://bugs.webkit.org/show_bug.cgi?id=142440
2427
2428         Reviewed by Alexey Proskuryakov.
2429
2430         * bindings/js/JSEventListener.h:
2431         * dom/EventListener.h:
2432         * dom/EventTarget.h:
2433         Change indentation to match coding style rules.
2434
2435 2015-03-07  Geoffrey Garen  <ggaren@apple.com>
2436
2437         Use FastMalloc (bmalloc) instead of BlockAllocator for GC pages
2438         https://bugs.webkit.org/show_bug.cgi?id=140900
2439
2440         Reviewed by Mark Hahnenberg.
2441
2442         Re-landing just the removal of BlockAllocator, which is now unused.
2443
2444         * platform/cocoa/MemoryPressureHandlerCocoa.mm:
2445         (WebCore::MemoryPressureHandler::install):
2446
2447 2015-03-07  Commit Queue  <commit-queue@webkit.org>
2448
2449         Unreviewed, rolling out r181010.
2450         https://bugs.webkit.org/show_bug.cgi?id=142442
2451
2452         Broke media/video-src-invalid-poster.html (Requested by kling
2453         on #webkit).
2454
2455         Reverted changeset:
2456
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
2461
2462 2015-03-07  Darin Adler  <darin@apple.com>
2463
2464         Do a bit of EventNames tidying
2465         https://bugs.webkit.org/show_bug.cgi?id=142438
2466
2467         Reviewed by Anders Carlsson.
2468
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.
2479
2480         * dom/EventNames.cpp: Changed initialization based on the above.
2481
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.
2485
2486         * dom/Node.cpp:
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.
2492
2493         * platform/ThreadGlobalData.h: Updated since it's a struct instead of class now.
2494         (Why is this file in platform!?)
2495
2496 2015-03-07  Brent Fulgham  <bfulgham@apple.com>
2497
2498         [Win] Increase TestWebKitAPI Test Coverage
2499         https://bugs.webkit.org/show_bug.cgi?id=142433
2500
2501         Reviewed by Darin Adler.
2502
2503         Correct some build deficiencies that prevent TestWebKitAPI
2504         from executing certain tests on Windows.
2505
2506         * WebCore.vcxproj/copyForwardingHeaders.cmd: Copy the interpreter
2507         headers.
2508         * css/CSSParser.h: Export necessary symbols
2509         * css/CSSParserMode.h: Ditto.
2510         * css/StyleProperties.h: Ditto.
2511
2512 2015-03-07  David Kilzer  <ddkilzer@apple.com>
2513
2514         Rename SOFT_LINK_FRAMEWORK_{HEADER,SOURCE} to SOFT_LINK_FRAMEWORK_FOR_{HEADER,SOURCE}
2515         <http://webkit.org/b/142434>
2516
2517         Reviewed by Darin Adler.
2518
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:
2525         - Do the rename.
2526
2527 2015-03-06  Sam Weinig  <sam@webkit.org>
2528
2529         [Content Extensions] Move compiling of content extensions to the UIProcess
2530         https://bugs.webkit.org/show_bug.cgi?id=142402
2531
2532         Reviewed by Benjamin Poulain.
2533
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.
2544
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.
2551
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.
2556
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.
2562
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.
2569
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.
2579
2580 2015-03-06  Roger Fong  <roger_fong@apple.com>
2581
2582         Create new buttons for media controls on OSX.
2583         https://bugs.webkit.org/show_bug.cgi?id=142415.
2584         <rdar://problem/20019441>
2585
2586         Reviewed by Eric Carlson.
2587
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):
2592
2593 2015-03-06  Roger Fong  <roger_fong@apple.com>
2594
2595         Redraw timeline background when updating media time.
2596         https://bugs.webkit.org/show_bug.cgi?id=142421.
2597         <rdar://problem/20065104>
2598
2599         Reviewed by Brent Fulgham.
2600
2601         * Modules/mediacontrols/mediaControlsApple.js:
2602         (Controller.prototype.handleTimeUpdate):
2603
2604 2015-03-06  Dhi Aurrahman  <diorahman@rockybars.com>
2605
2606         Enable selectors level 4's :lang() by default
2607         https://bugs.webkit.org/show_bug.cgi?id=142302
2608
2609         Reviewed by Benjamin Poulain.
2610
2611         No behavior change.
2612
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):
2633
2634 2015-03-06  Brent Fulgham  <bfulgham@apple.com>
2635
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>
2639
2640         Reviewed by Dean Jackson.
2641
2642         Tested by css3/scroll-snap/scroll-snap-desination-lock-up.html.
2643
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.
2646
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.
2650
2651 2015-03-06  Dean Jackson  <dino@apple.com>
2652
2653         https://bugs.webkit.org/show_bug.cgi?id=142416
2654
2655         Unreviewed build fix.
2656
2657         * platform/spi/cocoa/QuartzCoreSPI.h: Add kCAFilterPlusL.
2658
2659 2015-03-06  Dean Jackson  <dino@apple.com>
2660
2661         Support "plus-lighter" in mix-blend mode
2662         https://bugs.webkit.org/show_bug.cgi?id=142416
2663         <rdar://problem/19993979>
2664
2665         Reviewed by Darin Adler and Sam Weinig.
2666
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
2669
2670         Test: css3/blending/svg-blend-plus-lighter.html
2671
2672         * css/CSSParser.cpp:
2673         (WebCore::isValidKeywordPropertyAndValue): mix-blend-mode can now accept the
2674         new keyword.
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
2679         are available.
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
2686         blending flag.
2687
2688 2015-03-06  Alex Christensen  <achristensen@webkit.org>
2689
2690         Soft link MediaAccessibility using new macros.
2691         https://bugs.webkit.org/show_bug.cgi?id=142406
2692
2693         Reviewed by David Kilzer.
2694
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.
2702
2703 2015-03-06  Brent Fulgham  <bfulgham@apple.com>
2704
2705         Add 'initial' keyword support for scroll snap CSS properties
2706         https://bugs.webkit.org/show_bug.cgi?id=136345
2707         <rdar://problem/18162325>
2708
2709         Reviewed by Dean Jackson.
2710
2711         Tested by css3/scroll-snap/scroll-snap-initial.html
2712
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.
2716
2717         Revise implementation to represent ScrollSnapPoints as a pointer, so that 'none' is a valid
2718         state.
2719
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
2725         as a pointer.
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:
2746
2747 2015-03-05  Roger Fong  <roger_fong@apple.com>
2748
2749         Reskin Captions button and container on OSX.
2750         https://bugs.webkit.org/show_bug.cgi?id=142383.
2751         <rdar://problem/20061466>
2752
2753         Reviewed by Eric Carlson.
2754
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):
2768
2769 2015-03-06  Jer Noble  <jer.noble@apple.com>
2770
2771         [Web Audio] Decoding specific .m4a file crashes tab
2772         https://bugs.webkit.org/show_bug.cgi?id=139545
2773
2774         Reviewed by Eric Carlson.
2775
2776         Test: webaudio/decode-audio-data-too-short.html
2777
2778         Bail out early if CoreAudio reports the number of frames in the file to be negative.
2779
2780         * platform/audio/mac/AudioFileReaderMac.cpp:
2781         (WebCore::AudioFileReader::createBus):
2782
2783 2015-03-06  Jeremy Jones  <jeremyj@apple.com>
2784
2785         Scroll to make the video element visible when exiting fullscreen.
2786         https://bugs.webkit.org/show_bug.cgi?id=141439
2787
2788         Reviewed by Simon Fraser.
2789
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.
2793
2794         * dom/Element.cpp:
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:
2811
2812 2015-03-06  Myles C. Maxfield  <mmaxfield@apple.com>
2813
2814         Crash in -[WebCascadeList objectAtIndex:] + 195
2815         https://bugs.webkit.org/show_bug.cgi?id=141274
2816
2817         Reviewed by David Kilzer.
2818
2819         CTFontDescriptorRefs can live forever in caches inside CoreText, which means our
2820         WebCascadeList can too.
2821
2822         Test: platform/mac/fast/text/crash-complextextcontroller-custom-cascade-list.html
2823
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
2829         to WeakPtr.
2830         (-[WebCascadeList initWithFont:character:]):
2831         (-[WebCascadeList count]):
2832         (-[WebCascadeList objectAtIndex:]):
2833
2834 2015-03-06  Myles C. Maxfield  <mmaxfield@apple.com>
2835
2836         Rename BreakingContextInlineHeaders.h to BreakingContext.h
2837         https://bugs.webkit.org/show_bug.cgi?id=142404
2838
2839         Reviewed by Simon Fraser.
2840
2841         No point naming it "InlineHeaders" when there are no non-inline-headers files.
2842
2843         No new tests because this is just a rename of a file.
2844
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:
2900
2901 2015-03-06  Dan Bernstein  <mitz@apple.com>
2902
2903         Expose some of the functionality of extract-localizable-strings.pl as a module
2904         https://bugs.webkit.org/show_bug.cgi?id=142038
2905
2906         Reviewed by Sam Weinig.
2907
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
2913         a lowercase letter.
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.
2920
2921         * WebCore.xcodeproj/project.pbxproj: Added LocalizableStrings.pm to the Copy Scripts build
2922         phase.
2923
2924         * extract-localizable-strings.pl:
2925         (emitWarning): Moved to the module.
2926         (UnescapeHexSequence): Ditto.
2927         (HandleUIString): Ditto.
2928
2929 2015-03-06  Darin Adler  <darin@apple.com>
2930
2931         Remove unused C++ DOM event handler attribute functions
2932         https://bugs.webkit.org/show_bug.cgi?id=142398
2933
2934         Reviewed by Anders Carlsson.
2935
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.
2940
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.
2949
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.
2993
2994 2015-03-06  Said Abou-Hallawa  <sabouhallawa@apple.com>
2995
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.
2998
2999         Reviewed by Simon Fraser.
3000         
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.
3004
3005         Tests: fast/css/image-object-hover-inherit.html
3006                svg/as-object/svg-in-object-dynamic-attribute-change.html
3007
3008         * dom/Element.h: Delete unimplemented function.
3009         
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.
3015         
3016         * html/HTMLObjectElement.h: Add a function to clear m_useFallbackContent.
3017
3018 2015-03-06  Myles C. Maxfield  <mmaxfield@apple.com>
3019
3020         Test horiz-origin-x and horiz-origin-y in SVG fonts
3021         https://bugs.webkit.org/show_bug.cgi?id=142403
3022
3023         Reviewed by Simon Fraser.
3024
3025         Remove incorrect comment.
3026
3027         Test: svg/fonts/svg-font-horiz-origin.html
3028
3029         * svg/SVGToOTFFontConversion.cpp:
3030         (WebCore::CFFBuilder::CFFBuilder):
3031
3032 2015-03-06  Simon Fraser  <simon.fraser@apple.com>
3033
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
3036
3037         Reviewed by Zalan Bujtas.
3038
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
3042         in wtf/Platform.h
3043
3044         * dom/DocumentMarkerController.cpp:
3045         * dom/DocumentMarkerController.h:
3046         * dom/Element.cpp:
3047         * dom/Element.h:
3048         * dom/Node.cpp:
3049         * dom/Node.h:
3050         * dom/Position.cpp:
3051         * dom/Position.h:
3052         * dom/Range.cpp:
3053         * dom/Range.h:
3054         * dom/Text.cpp:
3055         * dom/Text.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:
3099
3100 2015-03-06  Said Abou-Hallawa  <sabouhallawa@apple.com>
3101
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.
3104
3105         Reviewed by Darin Adler.
3106
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.
3111         
3112         Test: svg/css/svg-css-different-intrinsic-sizes.html
3113
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.
3118
3119 2015-03-06  Simon Fraser  <simon.fraser@apple.com>
3120
3121         Allow composited clip-path to be updated without a layer repaint
3122         https://bugs.webkit.org/show_bug.cgi?id=142384
3123
3124         Reviewed by Zalan Bujtas.
3125         
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
3128         needing to repaint.
3129         
3130         Achieve this by adding ContextSensitivePropertyClipPath. When set, and the
3131         stars are aligned, issue a StyleDifferenceRecompositeLayer rather than
3132         a StyleDifferenceRepaint.
3133         
3134         We ask RenderLayerCompositor whether the clip path can be composited
3135         to hide platform differences related to whether GraphicsLayer supports
3136         shape masks.
3137
3138         Test: compositing/masks/compositing-clip-path-change-no-repaint.html
3139
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.
3153
3154 2015-03-06  Alex Christensen  <achristensen@webkit.org>
3155
3156         [Content Extensions] Process all actions when blocking a URL.
3157         https://bugs.webkit.org/show_bug.cgi?id=142363
3158
3159         Reviewed by Darin Adler.
3160
3161         This can only be tested once we implement css selectors.
3162
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.
3169
3170 2015-03-05  Darin Adler  <darin@apple.com>
3171
3172         Make JavaScript binding get and set legacy event listener attributes directly
3173         https://bugs.webkit.org/show_bug.cgi?id=142282
3174
3175         Reviewed by Antti Koivisto.
3176
3177         Test: fast/dom/legacy-event-handler-attributes.html
3178
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.
3182
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.
3192
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.
3202
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.
3209
3210         * bindings/js/JSEventListener.h:
3211         (WebCore::createJSEventListenerForAttribute): Deleted.
3212
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.
3222
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.
3241
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.
3246
3247 2015-03-06  Myles C. Maxfield  <mmaxfield@apple.com>
3248
3249         [iOS] SVG fonts are garbled
3250         https://bugs.webkit.org/show_bug.cgi?id=142377
3251
3252         Reviewed by Simon Fraser.
3253
3254         The C++ spec says that casting a negative floating point number to
3255         an unsigned integer is undefined. Instead, use clamping.
3256
3257         Covered by existing SVG font tests.
3258
3259         * Configurations/FeatureDefines.xcconfig:
3260         * svg/SVGToOTFFontConversion.cpp:
3261         (WebCore::writeCFFEncodedNumber):
3262
3263 2015-03-06  Commit Queue  <commit-queue@webkit.org>
3264
3265         Unreviewed, rolling out r181139.
3266         https://bugs.webkit.org/show_bug.cgi?id=142394
3267
3268         "Caused many crashes in API tests and layout tests in Debug
3269         builds on bots." (Requested by ddkilzer on #webkit).
3270
3271         Reverted changeset:
3272
3273         "Allow tree dumping functions to be used in release builds by
3274         switching a flag"
3275         https://bugs.webkit.org/show_bug.cgi?id=142379
3276         http://trac.webkit.org/changeset/181139
3277
3278 2015-03-05  Philippe Normand  <pnormand@igalia.com>
3279
3280         [MediaStream] new load method for MediaStreamPrivate objects
3281         https://bugs.webkit.org/show_bug.cgi?id=142346
3282
3283         Reviewed by Eric Carlson.
3284
3285         No new tests, existing mediastream tests cover this use-case.
3286
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
3292         MediaStreamPrivate.
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:
3312
3313 2015-03-05  Philippe Normand  <pnormand@igalia.com>
3314
3315         Rename MediaStreamSource to RealtimeMediaSource
3316         https://bugs.webkit.org/show_bug.cgi?id=142330
3317
3318         Reviewed by Eric Carlson.
3319
3320         MediaStreamSource is a misleading name, it's not the source of a
3321         MediaStream.
3322
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
3326         different types.
3327
3328         MediaStreamSourceStates was also renamed to
3329         RealtimeMediaSourceStates, and MediaStreamSourceCapabilities to
3330         RealtimeMediaSourceCapabilities, for consistency.
3331
3332 2015-03-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3333
3334         Unreviewed WinCairo port build fix since r181136.
3335
3336         * platform/network/curl/ResourceRequest.h:
3337         (WebCore::ResourceRequest::doPlatformAdopt): Missing ":" in std::unique_ptr.
3338
3339 2015-03-06  David Kilzer  <ddkilzer@apple.com>
3340
3341         Rename SOFT_LINK_{CONSTANT,FUNCTION}_{HEADER,SOURCE} to SOFT_LINK_{CONSTANT,FUNCTION}_FOR_{HEADER,SOURCE}
3342         <http://webkit.org/b/142177>
3343
3344         Reviewed by Alex Christensen.
3345
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().
3352
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}().
3357
3358 2015-03-06  Sergio Villar Senin  <svillar@igalia.com>
3359
3360         [CSS Grid Layout] ASSERTION FAILED !track.growthLimitIsInfinite() in RenderGrid::computeUsedBreadthOfGridTracks
3361         https://bugs.webkit.org/show_bug.cgi?id=142265
3362
3363         Reviewed by Darin Adler.
3364
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.
3370
3371         Test: fast/css-grid-layout/grid-indefinite-calculated-height-crash.html
3372
3373         * rendering/RenderGrid.cpp:
3374         (WebCore::RenderGrid::computeUsedBreadthOfSpecifiedLength):
3375
3376 2015-03-05  Simon Fraser  <simon.fraser@apple.com>
3377
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
3380
3381         Reviewed by Zalan Bujtas.
3382
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
3386         in config.h
3387
3388         * config.h:
3389         * dom/DocumentMarkerController.cpp:
3390         * dom/DocumentMarkerController.h:
3391         * dom/Element.cpp:
3392         * dom/Element.h:
3393         * dom/Node.cpp:
3394         * dom/Node.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.
3397         * dom/Position.h:
3398         * dom/Range.cpp:
3399         * dom/Range.h:
3400         * dom/Text.cpp:
3401         * dom/Text.h:
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:
3437
3438 2015-03-05  Brent Fulgham  <bfulgham@apple.com>
3439
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>
3443
3444         Reviewed by Dean Jackson.
3445
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.
3449
3450         Removing this incorrect start animation command when entering the momentum ended state
3451         resolves the problem.
3452
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.
3456
3457 2015-03-05  Joonghun Park  <jh718.park@samsung.com>
3458
3459         Use std::unique_ptr instead of PassOwnPtr|OwnPtr for ResourceRequest
3460         https://bugs.webkit.org/show_bug.cgi?id=142349
3461
3462         Reviewed by Darin Adler.
3463
3464         No new tests, no behavior changes.
3465
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):
3485
3486 2015-03-05  Oliver Hunt  <oliver@apple.com>
3487
3488         Block mixed mode content
3489         https://bugs.webkit.org/show_bug.cgi?id=142378
3490
3491         Reviewed by Darin Adler.
3492
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.
3496
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):
3507         * page/Settings.in:
3508
3509 2015-03-05  Chris Dumez  <cdumez@apple.com>
3510
3511         Document::recalcStyle() shouldn't call viewportContentsChanged() if there is a pending layout
3512         https://bugs.webkit.org/show_bug.cgi?id=142140
3513
3514         Reviewed by Darin Adler.
3515
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.
3520
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.
3525
3526         No new tests, already covered by:
3527         fast/images/animated-gif-webkit-transform.html
3528
3529         * dom/Document.cpp:
3530         (WebCore::Document::recalcStyle):
3531
3532 2015-03-05  Dean Jackson  <dino@apple.com>
3533
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>
3537
3538         Reviewed by Brent Fulgham.
3539
3540         There was no style for the placard, which meant it had
3541         zero height (and thus was invisible).
3542
3543         * Modules/mediacontrols/mediaControlsiOS.css:
3544         (audio::-webkit-media-controls-wireless-playback-status): Added.
3545         (audio::-webkit-media-controls-wireless-playback-status.hidden):
3546
3547 2015-03-05  Roger Fong  <roger_fong@apple.com>
3548
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>
3552
3553         Reviewed by Brent Fulgham.
3554
3555         * Modules/mediacontrols/mediaControlsApple.css:
3556         (audio::-webkit-media-controls-panel .volume-box):
3557         (audio::-webkit-media-controls-panel .volume-box:active):
3558
3559 2015-03-05  Timothy Horton  <timothy_horton@apple.com>
3560
3561         <attachment> should allow the title property to override its title
3562         https://bugs.webkit.org/show_bug.cgi?id=142369
3563
3564         Reviewed by Anders Carlsson.
3565
3566         Test: fast/attachment/attachment-title.html
3567
3568         * html/HTMLAttachmentElement.cpp:
3569         (WebCore::HTMLAttachmentElement::parseAttribute):
3570         Invalidate the attachment if the title changes.
3571
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.
3575
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.
3581
3582 2015-03-05  Timothy Horton  <timothy_horton@apple.com>
3583
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>
3587
3588         Reviewed by Simon Fraser.
3589
3590         * page/DragController.h:
3591         * page/DragController.cpp:
3592         (WebCore::DragController::clearDragCaret):
3593         Rename cancelDrag to clearDragCaret, since that's really what it does.
3594
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.
3599
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.
3605
3606         (WebCore::DragController::mouseMovedIntoDocument):
3607         (WebCore::DragController::dragEnteredOrUpdated):
3608         (WebCore::DragController::concludeEditDrag):
3609         Adjust to renamed clearDragCaret.
3610
3611         (WebCore::DragController::dragEnded):
3612         Make use of clearDragCaret (which is equivalent to this line).
3613
3614 2015-03-05  Timothy Horton  <timothy_horton@apple.com>
3615
3616         <attachment> should support indication of download progress
3617         https://bugs.webkit.org/show_bug.cgi?id=142336
3618         <rdar://problem/19982504>
3619
3620         Reviewed by Anders Carlsson.
3621
3622         * html/HTMLAttachmentElement.cpp:
3623         (WebCore::HTMLAttachmentElement::parseAttribute):
3624         Invalidate the attachment if the progress attribute changes.
3625
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.
3630
3631         * rendering/RenderThemeMac.mm:
3632         (WebCore::attachmentProgressBarBackgroundColor):
3633         (WebCore::attachmentProgressBarFillColor):
3634         (WebCore::attachmentProgressBarBorderColor):
3635         Add a bunch of constants for the progress bar.
3636
3637         (WebCore::paintAttachmentIconBackground):
3638         Make use of fillRoundedRect instead of creating a path.
3639
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.
3644
3645 2015-03-05  Commit Queue  <commit-queue@webkit.org>
3646
3647         Unreviewed, rolling out r180846.
3648         https://bugs.webkit.org/show_bug.cgi?id=142368
3649
3650         Caused missing image banners in iTunes store pages (Requested
3651         by smfr on #webkit).
3652
3653         Reverted changeset:
3654
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
3659
3660 2015-03-05  Sandy Perez  <sperez@indaba.es>
3661
3662         Fix the build when NEON_INTRINSICS is enabled
3663         https://bugs.webkit.org/show_bug.cgi?id=142361
3664
3665         Reviewed by Csaba Osztrogonác.
3666
3667         * platform/graphics/cpu/arm/filters/FEBlendNEON.h:
3668         (WebCore::FEBlend::platformApplySoftware):
3669         * platform/graphics/filters/FEGaussianBlur.cpp:
3670         (WebCore::standardBoxBlur):
3671
3672 2015-03-05  Benjamin Poulain  <bpoulain@apple.com>
3673
3674         Add basic support for character sets to the URL Filter parser
3675         https://bugs.webkit.org/show_bug.cgi?id=142257
3676
3677         Reviewed by Alex Christensen.
3678
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.
3681
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.
3685
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.
3690
3691         To differentiate between Trivial atoms and CharacterSet, we also gain
3692         an AtomType state.
3693
3694         The character set themself are very simple: each character is represented by
3695         a bit in a 16bytes bit vector.
3696
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):
3713
3714 2015-03-05  Roger Fong  <roger_fong@apple.com>
3715
3716         Implement new fullscreen media controls on Mac.
3717         https://bugs.webkit.org/show_bug.cgi?id=142355.
3718         <rdar://problem/16175787>
3719
3720         Reviewed by Dean Jackson.
3721
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.
3740
3741 2015-03-05  Roger Fong  <roger_fong@apple.com>
3742
3743         Minor touchups to inline media control icons.
3744         https://bugs.webkit.org/show_bug.cgi?id=142354.
3745         <rdar://problem/20058854>.
3746
3747         Reviewed by Brent Fulgham.
3748
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):
3754
3755 2015-03-05  Roger Fong  <roger_fong@apple.com>
3756
3757         Update inline media control icons for OSX.
3758         https://bugs.webkit.org/show_bug.cgi?id=142305.
3759         <rdar://problem/19997484>
3760
3761         Reviewed by Dean Jackson.
3762
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
3780
3781 2015-03-05  David Hyatt  <hyatt@apple.com>
3782
3783         Caps lock indicator in text fields is laying out in the wrong place.
3784         https://bugs.webkit.org/show_bug.cgi?id=142352
3785
3786         Reviewed by Dean Jackson.
3787
3788         * css/html.css:
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.
3793
3794 2015-03-04  Dean Jackson  <dino@apple.com>
3795
3796         [iOS Media] Use a blurry background for media controls
3797         https://bugs.webkit.org/show_bug.cgi?id=142316
3798         <rdar://problem/14911098>
3799
3800         Reviewed by Eric Carlson.
3801
3802         Start using the -webkit-appearance media-controls-light-bar-background
3803         in order to get the blurry background of media controls.
3804
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):
3812
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.
3829
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.
3837
3838 2015-03-05  Myles C. Maxfield  <mmaxfield@apple.com>
3839
3840         Mechanical text-related cleanup
3841         https://bugs.webkit.org/show_bug.cgi?id=142326
3842
3843         Reviewed by Andreas Kling.
3844
3845         Use nullptr instead of 0.
3846         Use references instead of pointers.
3847
3848         No new tests because there is no behavior change.
3849
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):
3876
3877 2015-03-05  Brent Fulgham  <bfulgham@apple.com>
3878
3879         Move AxisScrollSnapAnimator logic to ScrollController
3880         https://bugs.webkit.org/show_bug.cgi?id=142293
3881         <rdar://problem/20039867>
3882
3883         Reviewed by Dean Jackson.
3884
3885         No change in function.
3886
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.
3890
3891         Also, break up some of the Scroll Snap Point math to be a little easier to understand.
3892
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.
3955
3956 2015-03-04  Dean Jackson  <dino@apple.com>
3957
3958         [iOS Media] Small inline controls can clip the time widgets
3959         https://bugs.webkit.org/show_bug.cgi?id=142319
3960
3961         Reviewed by Eric Carlson.
3962
3963         Start counting the number of digits in a duration so that
3964         we can assign classes to the time widgets that specify
3965         a minimum width.
3966
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.
3977
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.
3981
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.
3996
3997 2015-03-05  Csaba Osztrogonác  <ossy@webkit.org>
3998
3999         [cmake] Fix the web replay build