| 2016-09-27 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> |
| |
| [GTK] Handle Wayland & X11 correctly for GST_GL |
| https://bugs.webkit.org/show_bug.cgi?id=162619 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| The checks for GST_GL consider X11 and Wayland are exclusive alternatives, but it |
| turns out we can enable both! We need to check them independently and also include |
| a runtime check. |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::ensureGstGLContext): fix checks for X11 and |
| Wayland to handle the case where both are enabled. Includes a runtime check. |
| |
| 2016-09-27 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Restructure MediaConstraints classes |
| https://bugs.webkit.org/show_bug.cgi?id=162571 |
| |
| Reviewed by Jer Noble. |
| |
| No new tests, no functional changes. |
| |
| * Modules/mediastream/MediaConstraintsImpl.cpp: |
| (WebCore::MediaConstraintsImpl::initialize): Deleted, no longer used. |
| * Modules/mediastream/MediaConstraintsImpl.h: |
| |
| * bindings/js/JSMediaDevicesCustom.cpp: |
| (WebCore::createStringConstraint): Return Optional<> instead of RefPtr<>. |
| (WebCore::createBooleanConstraint): Ditto. |
| (WebCore::createDoubleConstraint): Ditto. |
| (WebCore::createIntConstraint): Ditto. |
| (WebCore::parseMediaTrackConstraintSetForKey): Deal with above change. |
| |
| * platform/mediastream/CaptureDeviceManager.cpp: |
| (CaptureDeviceManager::verifyConstraintsForMediaType): Use constraints.mandatoryConstraints.filter |
| instead of direct enumeration. |
| (CaptureDeviceManager::sessionSupportsConstraint): Use downcast<>. |
| (CaptureDeviceManager::isSupportedFrameRate): Ditto. |
| |
| * platform/mediastream/MediaConstraints.cpp: |
| (WebCore::StringConstraint::find): Lose the ConstraintType parameter. |
| (WebCore::StringConstraint::merge): Use downcast<>. |
| (WebCore::FlattenedConstraint::set): Use ConstraintHolder. |
| (WebCore::FlattenedConstraint::merge): Ditto. |
| (WebCore::MediaTrackConstraintSetMap::forEach): New. |
| (WebCore::MediaTrackConstraintSetMap::filter): Ditto. |
| (WebCore::MediaTrackConstraintSetMap::isEmpty): Ditto. |
| (WebCore::MediaTrackConstraintSetMap::set): Ditto. |
| (WebCore::MediaConstraint::copy): Deleted. |
| (WebCore::IntConstraint::copy): Deleted. |
| (WebCore::DoubleConstraint::copy): Deleted. |
| (WebCore::BooleanConstraint::copy): Deleted. |
| (WebCore::StringConstraint::copy): Deleted. |
| * platform/mediastream/MediaConstraints.h: |
| (WebCore::MediaConstraint::MediaConstraint): |
| (WebCore::MediaConstraint::isEmpty): |
| (WebCore::MediaConstraint::isMandatory): |
| (WebCore::MediaConstraint::merge): |
| (WebCore::MediaConstraint::isInt): |
| (WebCore::MediaConstraint::isDouble): |
| (WebCore::MediaConstraint::isBoolean): |
| (WebCore::MediaConstraint::isString): |
| (WebCore::MediaConstraint::dataType): |
| (WebCore::MediaConstraint::constraintType): |
| (WebCore::NumericConstraint::getMin): |
| (WebCore::NumericConstraint::getMax): |
| (WebCore::NumericConstraint::getExact): |
| (WebCore::NumericConstraint::getIdeal): |
| (WebCore::NumericConstraint::fitnessDistance): |
| (WebCore::NumericConstraint::validForRange): |
| (WebCore::NumericConstraint::find): |
| (WebCore::NumericConstraint::NumericConstraint): |
| (WebCore::NumericConstraint::innerMerge): |
| (WebCore::FlattenedConstraint::isEmpty): |
| (WebCore::FlattenedConstraint::iterator::iterator): |
| (WebCore::FlattenedConstraint::iterator::operator*): |
| (WebCore::FlattenedConstraint::iterator::operator++): |
| (WebCore::FlattenedConstraint::iterator::operator==): |
| (WebCore::FlattenedConstraint::iterator::operator!=): |
| (WebCore::FlattenedConstraint::begin): |
| (WebCore::FlattenedConstraint::end): |
| (WebCore::FlattenedConstraint::ConstraintHolder::create): |
| (WebCore::FlattenedConstraint::ConstraintHolder::~ConstraintHolder): |
| (WebCore::FlattenedConstraint::ConstraintHolder::constraint): |
| (WebCore::FlattenedConstraint::ConstraintHolder::dataType): |
| (WebCore::FlattenedConstraint::ConstraintHolder::constraintType): |
| (WebCore::FlattenedConstraint::ConstraintHolder::ConstraintHolder): |
| (WebCore::MediaConstraint::getMin): Deleted. |
| (WebCore::MediaConstraint::getMax): Deleted. |
| (WebCore::MediaConstraint::getExact): Deleted. |
| (WebCore::MediaConstraint::getIdeal): Deleted. |
| (WebCore::MediaConstraint::validForRange): Deleted. |
| (WebCore::MediaConstraint::find): Deleted. |
| (WebCore::MediaConstraint::fitnessDistance): Deleted. |
| (WebCore::MediaConstraint::type): Deleted. |
| |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::fitnessDistance): Use downcast<>. |
| (WebCore::applyNumericConstraint): |
| (WebCore::RealtimeMediaSource::applyConstraint): Ditto. |
| (WebCore::RealtimeMediaSource::selectSettings): Ditto. Use constraints.mandatoryConstraints.filter |
| instead of direct enumeration. |
| (WebCore::RealtimeMediaSource::applyConstraints): |
| (WebCore::RealtimeMediaSource::setSampleRate): Sample rate is an int, not a double. |
| (WebCore::RealtimeMediaSource::setSampleSize): Sample size is also an int. |
| * platform/mediastream/RealtimeMediaSource.h: |
| |
| * platform/mediastream/mac/AVCaptureDeviceManager.mm: |
| (WebCore::AVCaptureDeviceManager::sessionSupportsConstraint): Use downcast<>. |
| |
| * platform/mock/MediaConstraintsMock.cpp: |
| (WebCore::isIntMediaConstraintSatisfiable): Use downcast<>. |
| (WebCore::isDoubleMediaConstraintSatisfiable): Ditto. |
| (WebCore::isBooleanMediaConstraintSatisfiable): Ditto. |
| (WebCore::isStringMediaConstraintSatisfiable): |
| (WebCore::isSatisfiable): |
| (WebCore::MediaConstraintsMock::verifyConstraints): Use constraints.mandatoryConstraints.filter |
| instead of direct enumeration. |
| * platform/mock/MediaConstraintsMock.h: |
| |
| * platform/mock/MockRealtimeAudioSource.h: |
| * platform/mock/MockRealtimeMediaSourceCenter.cpp: |
| (WebCore::MockRealtimeMediaSourceCenter::createMediaStream): |
| |
| 2016-09-27 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Some Now Playing behavior is broken after r206315 |
| https://bugs.webkit.org/show_bug.cgi?id=162625 |
| <rdar://problem/28496755> |
| |
| Reviewed by Jer Noble. |
| |
| Reverts the part of our heuristic that disables Now Playing in active tabs in the main window. |
| |
| * html/MediaElementSession.cpp: |
| (WebCore::MediaElementSession::pageAllowsNowPlayingControls): |
| * page/Page.cpp: |
| (WebCore::Page::setViewState): |
| |
| 2016-09-27 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Remove an unneeded assert in InspectorOverlay.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=162581 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| This assertion was added to catch unknown issues, but it is firing frequently enough on certain Inspector |
| tests that it is causing more harm than good. |
| |
| * inspector/InspectorOverlay.cpp: |
| (WebCore::buildQuadObjectForCSSRegionContentClip): |
| (WebCore::evaluateCommandInOverlay): |
| |
| 2016-09-27 Jer Noble <jer.noble@apple.com> |
| |
| Remove deprecated ENCRYPTED_MEDIA implementation. |
| https://bugs.webkit.org/show_bug.cgi?id=161010 |
| |
| Reviewed by Eric Carlson. |
| |
| Remove all references to the deprecated ENABLE_ENCRYPTED_MEDIA (leaving in place |
| the soon-to-be deprecated ENABLE_ENCRYPTED_MEDIA_V2). |
| |
| * CMakeLists.txt: |
| * Configurations/FeatureDefines.xcconfig: |
| * DerivedSources.make: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/objc/DOMHTMLMediaElement.h: |
| * bindings/objc/DOMHTMLMediaElement.mm: |
| (-[DOMHTMLMediaElement canPlayType:]): |
| (-[DOMHTMLMediaElement canPlayType:keySystem:]): Deleted. |
| * bindings/js/JSDictionary.cpp: |
| * bindings/js/JSDictionary.h: |
| * dom/Element.idl: |
| * dom/EventNames.in: |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::selectNextSourceChild): |
| (WebCore::exceptionCodeForMediaKeyException): Deleted. |
| (WebCore::HTMLMediaElement::canPlayType): Deleted. |
| (WebCore::HTMLMediaElement::mediaPlayerKeyAdded): Deleted. |
| (WebCore::HTMLMediaElement::mediaPlayerKeyError): Deleted. |
| (WebCore::HTMLMediaElement::mediaPlayerKeyMessage): Deleted. |
| (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded): Deleted. |
| * html/HTMLMediaElement.h: |
| * html/HTMLMediaElement.idl: |
| * html/MediaError.h: |
| * html/MediaError.idl: |
| * html/MediaKeyError.h: |
| * html/MediaKeyError.idl: |
| * html/MediaKeyEvent.cpp: Removed. |
| (WebCore::MediaKeyEvent::MediaKeyEvent): Deleted. |
| (WebCore::MediaKeyEvent::~MediaKeyEvent): Deleted. |
| (WebCore::MediaKeyEvent::eventInterface): Deleted. |
| * html/MediaKeyEvent.h: Removed. |
| * html/MediaKeyEvent.idl: Removed. |
| * platform/graphics/MediaPlayer.cpp: |
| (WebCore::MediaPlayer::nextBestMediaEngine): |
| (WebCore::MediaPlayer::generateKeyRequest): Deleted. |
| (WebCore::MediaPlayer::addKey): Deleted. |
| (WebCore::MediaPlayer::cancelKeyRequest): Deleted. |
| (WebCore::MediaPlayer::keyAdded): Deleted. |
| (WebCore::MediaPlayer::keyError): Deleted. |
| (WebCore::MediaPlayer::keyMessage): Deleted. |
| (WebCore::MediaPlayer::keyNeeded): Deleted. |
| * platform/graphics/MediaPlayer.h: |
| (WebCore::MediaPlayerClient::mediaPlayerKeyAdded): Deleted. |
| (WebCore::MediaPlayerClient::mediaPlayerKeyError): Deleted. |
| (WebCore::MediaPlayerClient::mediaPlayerKeyMessage): Deleted. |
| (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded): Deleted. |
| * platform/graphics/MediaPlayerPrivate.h: |
| (WebCore::MediaPlayerPrivateInterface::addKey): Deleted. |
| (WebCore::MediaPlayerPrivateInterface::generateKeyRequest): Deleted. |
| (WebCore::MediaPlayerPrivateInterface::cancelKeyRequest): Deleted. |
| * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: |
| * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: |
| * platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm: |
| (WebCore::CDMSessionAVContentKeySession::update): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::supportsKeySystem): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType): Deleted. |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::generateKeyRequest): Deleted. |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey): Deleted. |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelKeyRequest): Deleted. |
| * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: |
| (WebCore::MediaPlayerPrivateQTKit::supportsType): Deleted. |
| * testing/MockCDM.h: |
| |
| 2016-09-27 Youenn Fablet <youenn@apple.com> |
| |
| [Fetch API] Use Ref<const T> in FetchBody::m_data variant |
| https://bugs.webkit.org/show_bug.cgi?id=162599 |
| |
| Reviewed by Alex Christensen. |
| |
| Covered by existing tests. |
| |
| Using Ref<const T> for all variants of m_data except for FormData since FetchBody is actually creating it and may modifiy it. |
| Updating blob loading code path to use a const Blob& instead of a Blob&. |
| |
| * Modules/fetch/FetchBody.cpp: |
| (WebCore::FetchBody::FetchBody): |
| (WebCore::FetchBody::extract): |
| (WebCore::FetchBody::clone): |
| * Modules/fetch/FetchBody.h: |
| (WebCore::FetchBody::blobBody): |
| (WebCore::FetchBody::arrayBufferBody): |
| (WebCore::FetchBody::arrayBufferViewBody): |
| * Modules/fetch/FetchBodyOwner.cpp: |
| (WebCore::FetchBodyOwner::loadBlob): |
| * Modules/fetch/FetchBodyOwner.h: |
| * Modules/fetch/FetchLoader.cpp: |
| (WebCore::FetchLoader::start): |
| * Modules/fetch/FetchLoader.h: |
| |
| 2016-09-27 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed typo fix |
| |
| * platform/gtk/UserAgentGtk.cpp: |
| (WebCore::standardUserAgent): |
| |
| 2016-09-27 Youenn Fablet <youenn@apple.com> |
| |
| Clean-up CachedImage constructor |
| https://bugs.webkit.org/show_bug.cgi?id=162601 |
| |
| Reviewed by Sam Weinig. |
| |
| No change of behavior. |
| Removing an unused constructor. |
| Specializing one constructor for manually cached images. |
| Cleaning initialization of some CachedImage fields. |
| |
| * loader/cache/CachedImage.cpp: |
| (WebCore::CachedImage::CachedImage): |
| * loader/cache/CachedImage.h: |
| * loader/cache/MemoryCache.cpp: |
| (WebCore::MemoryCache::addImageToCache): |
| |
| 2016-09-27 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [FreeType] Add comment further justifying use of FT_LOAD_FORCE_AUTOHINT |
| https://bugs.webkit.org/show_bug.cgi?id=162607 |
| |
| Reviewed by Martin Robinson. |
| |
| * platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp: |
| (WebCore::FontCustomPlatformData::FontCustomPlatformData): |
| |
| 2016-09-27 Mario Sanchez Prada <mario@endlessm.com> |
| |
| Build fails for X11+EGL due to missing gst_gl_display_x11_new_with_display() |
| https://bugs.webkit.org/show_bug.cgi?id=162606 |
| |
| Reviewed by Gustavo Noronha Silva. |
| |
| Use the right check to retrieve the right instance of GstGLDisplay |
| depending on whether we're using GLX or EGL, not X11 or Wayland. |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::ensureGstGLContext): |
| |
| 2016-09-27 Youenn Fablet <youenn@apple.com> |
| |
| [GTK][EFL] imported/w3c/web-platform-tests/fetch/api/basic/accept-header.html is failing |
| https://bugs.webkit.org/show_bug.cgi?id=162547 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Covered by existing tests. |
| |
| * platform/network/soup/SoupNetworkSession.cpp: |
| (WebCore::SoupNetworkSession::createTestingSession): Setting the underlying soupSession. |
| |
| 2016-09-27 Youenn Fablet <youenn@apple.com> |
| |
| [Fetch API] Remove ReadableStreamSource firstReadCallback |
| https://bugs.webkit.org/show_bug.cgi?id=162339 |
| |
| Reviewed by Sam Weinig. |
| |
| No observable change of behavior. |
| Removing ReadableStreamSource firstReadCallback. |
| This makes the enqueuing of data to happen when the stream is created. |
| In the future, we may want to implement doPull() to enqueue data when stream actually needs it. |
| |
| * Modules/fetch/FetchResponseSource.cpp: |
| (WebCore::FetchResponseSource::doPull): Introduced as we introduce pull() in ReadableStreamSource. |
| * Modules/fetch/FetchResponseSource.h: |
| * Modules/streams/ReadableStreamInternals.js: |
| (readFromReadableStreamDefaultReader): Removing firstReadCallback use. |
| * Modules/streams/ReadableStreamSource.h: Renaming m_startPromise in m_promise since m_promise may store start and pull promises. |
| (WebCore::ReadableStreamSource::isStarting): |
| (WebCore::ReadableStreamSource::start): |
| (WebCore::ReadableStreamSource::pull): Introduced to support ReadableStreamSource pulling. |
| (WebCore::ReadableStreamSource::startFinished): |
| (WebCore::ReadableStreamSource::pullFinished): Ditto. |
| (WebCore::ReadableStreamSource::clean): |
| * Modules/streams/ReadableStreamSource.idl: Ditto. |
| * bindings/js/JSReadableStreamSourceCustom.cpp: Refactoring to use callPromiseFunction |
| (WebCore::startReadableStream): |
| (WebCore::JSReadableStreamSource::start): |
| (WebCore::pullReadableStream): Introduced to support ReadableStreamSource pulling. |
| (WebCore::JSReadableStreamSource::pull): Ditto. |
| * bindings/js/WebCoreBuiltinNames.h: Removing firstReadCallback |
| |
| 2016-09-27 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| REGRESSION(r205883): Letterpressed text is invisible |
| https://bugs.webkit.org/show_bug.cgi?id=162590 |
| <rdar://problem/28141512> |
| |
| Reviewed by Simon Fraser. |
| |
| r205883 removed the last place where we use CGFonts directly in WebKit. However, |
| our letterpress code is sensitive to the current state of the CGContext. |
| |
| Tests: fast/text/letterpress-different.html |
| fast/text/letterpress-paint.html |
| |
| * platform/graphics/cocoa/FontCascadeCocoa.mm: |
| (WebCore::showLetterpressedGlyphsWithAdvances): |
| |
| 2016-09-27 Youenn Fablet <youenn@apple.com> |
| |
| [Fetch API] Refactor FetchBody to use std::experimental::variant |
| https://bugs.webkit.org/show_bug.cgi?id=162559 |
| |
| Reviewed by Alex Christensen. |
| |
| Covered by exiting tests. |
| |
| Using variant to represent the variant data types. |
| Adding nullptr as a specific type for default empty values and to allow clean-up. |
| Adding FetchBody::clone as the default copy constructor is deleted with this change. |
| |
| * Modules/fetch/FetchBody.cpp: |
| (WebCore::FetchBody::FetchBody): |
| (WebCore::FetchBody::json): |
| (WebCore::FetchBody::text): |
| (WebCore::FetchBody::consumeAsStream): |
| (WebCore::FetchBody::consumeArrayBuffer): |
| (WebCore::FetchBody::consumeArrayBufferView): |
| (WebCore::FetchBody::consumeText): |
| (WebCore::FetchBody::consumeBlob): |
| (WebCore::FetchBody::extractFromText): |
| (WebCore::FetchBody::bodyForInternalRequest): |
| (WebCore::FetchBody::clone): |
| * Modules/fetch/FetchBody.h: |
| (WebCore::FetchBody::blobBody): |
| (WebCore::FetchBody::formDataBody): |
| (WebCore::FetchBody::arrayBufferBody): |
| (WebCore::FetchBody::arrayBufferViewBody): |
| (WebCore::FetchBody::textBody): |
| * Modules/fetch/FetchRequest.cpp: |
| (WebCore::FetchRequest::clone): |
| * Modules/fetch/FetchResponse.cpp: |
| (WebCore::FetchResponse::cloneForJS): |
| |
| 2016-09-26 Joonghun Park <jh718.park@samsung.com> |
| |
| [EFL] Fix debug build break since r204205. Unreviewed |
| https://bugs.webkit.org/show_bug.cgi?id=162596 |
| |
| No new tests, no new behaviours. |
| |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::frameImageAtIndex): |
| |
| 2016-09-26 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| If you play a youtube video from now playing after it finished in Safari, controls disappear |
| https://bugs.webkit.org/show_bug.cgi?id=162589 |
| <rdar://problem/28484047> |
| |
| Reviewed by Jer Noble. |
| |
| Tweaks the main content heuristic slightly to remove the "mostly in mainframe" requirement in the case of Now |
| Playing. This was added in the case of the controls manager as an additional way to identify video elements that |
| should not show controls, since we relax audio and video constraints for showing videos in the controls manager, |
| so that a video element is prevented from showing controls on grounds of lacking audio only if it has never had |
| audio before. In the case of Now Playing, we have stricter requirements for videos, which must have audio, which |
| makes the mainframe heuristic not necessary. |
| |
| * html/MediaElementSession.cpp: |
| (WebCore::MediaElementSession::canShowControlsManager): |
| |
| 2016-09-26 Antti Koivisto <antti@apple.com> |
| |
| Setter on style element's textContent or cssText doesn't trigger style recalc |
| https://bugs.webkit.org/show_bug.cgi?id=160331 |
| <rdar://problem/27609715> |
| |
| Reviewed by Ryosuke Niwa and Daniel Bates. |
| |
| We would not notify the parent when text node content changed in a shadow tree. |
| |
| Test: fast/shadow-dom/shadow-style-text-mutation.html |
| |
| * dom/AuthorStyleSheets.cpp: |
| (WebCore::AuthorStyleSheets::updateActiveStyleSheets): |
| |
| Invalidate shadow root children instead of the root itself when doing full invalidation. |
| The invalidity bits have no meaning for non-element, non-texts. |
| |
| * dom/CharacterData.cpp: |
| (WebCore::CharacterData::parserAppendData): |
| (WebCore::CharacterData::setDataAndUpdate): |
| (WebCore::CharacterData::notifyParentAfterChange): |
| |
| Add a helper and call it also in shadow trees. |
| |
| (WebCore::CharacterData::dispatchModifiedEvent): |
| * dom/CharacterData.h: |
| |
| 2016-09-26 Antti Koivisto <antti@apple.com> |
| |
| Input elements don't work inside shadow tree |
| https://bugs.webkit.org/show_bug.cgi?id=160427 |
| |
| Reviewed by Darin Adler. |
| |
| There is a bug in ComposedTreeIterator. If the iterator is initialized with an initial state where the root |
| is inside a shadow tree it won't iterate into slots. |
| |
| If an input element is in a shadow tree it generates narrowly scoped style updates. When RenderTreeUpdater |
| applies such an update the update root will be inside the shadow tree and the bug will prevent the render tree |
| for slotted content from updating. |
| |
| Added tests for both the iterator behavior and the specific symptom with input elements. |
| |
| Tests: fast/shadow-dom/composed-tree-shadow-child-subtree.html |
| fast/shadow-dom/input-element-in-shadow.html |
| |
| * dom/ComposedTreeIterator.cpp: |
| (WebCore::ComposedTreeIterator::ComposedTreeIterator): |
| |
| Check and cache if the root is inside shadow tree. |
| |
| (WebCore::ComposedTreeIterator::traverseNextInShadowTree): |
| * dom/ComposedTreeIterator.h: |
| (WebCore::ComposedTreeIterator::traverseNext): |
| |
| If it is, always use the shadow traversal code path. |
| |
| 2016-09-26 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Seeking video doesn't update seek position |
| https://bugs.webkit.org/show_bug.cgi?id=162575 |
| <rdar://problem/28457219> |
| |
| Reviewed by Jer Noble. |
| |
| On ToT, seeking in a video causes the playhead to stutter, and does not actually update media remote's seek |
| position. This is partly due to how we do not update media remote with new information when beginning to respond |
| to remote seek commands, so media remote continues to think that a playing video is still playing despite the |
| user attempting to seek through it. |
| |
| To fix this, we introduce timer-based guards around remote seek commands, such that a seek "gesture" begins when |
| we receive the first seek command and ends when no seek command has been received in a set amount of time (this |
| is 0.5 seconds, which is approximately what other clients around the platform use). |
| |
| Also, when responding to a remote seek, perform the seek with no tolerance. This prevents the playhead from |
| stuttering at the end of a seek from the final requested destination of the seek to the last actually seeked |
| time in the video. |
| |
| When beginning to seek, we must pause the media. Through existing mechanisms, this causes the media session |
| manager to update its Now Playing information, which informs media remote that we are no longer playing and |
| prevents us from stuttering. However, when ending a seek, we must also trigger an additional update to again |
| refresh media remote's view of the current time. This prevents a flicker when playing media after seeking. |
| |
| Unit tests to be added in a follow-up due to time constraints. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::HTMLMediaElement): |
| (WebCore::HTMLMediaElement::handleSeekToPlaybackPosition): |
| (WebCore::HTMLMediaElement::seekToPlaybackPositionEndedTimerFired): |
| (WebCore::HTMLMediaElement::didReceiveRemoteControlCommand): |
| * html/HTMLMediaElement.h: |
| * platform/audio/PlatformMediaSessionManager.h: |
| (WebCore::PlatformMediaSessionManager::scheduleUpdateNowPlayingInfo): |
| (WebCore::PlatformMediaSessionManager::sessionDidEndRemoteScrubbing): |
| (WebCore::PlatformMediaSessionManager::sessions): Deleted. |
| * platform/audio/mac/MediaSessionManagerMac.h: |
| * platform/audio/mac/MediaSessionManagerMac.mm: |
| (WebCore::PlatformMediaSessionManager::updateNowPlayingInfoIfNecessary): |
| (WebCore::MediaSessionManagerMac::scheduleUpdateNowPlayingInfo): |
| (WebCore::MediaSessionManagerMac::sessionDidEndRemoteScrubbing): |
| (WebCore::MediaSessionManagerMac::updateNowPlayingInfo): |
| |
| 2016-09-26 Chris Dumez <cdumez@apple.com> |
| |
| [WK2] BlobDownloadClient should use asynchronous IPC to decide destination path |
| https://bugs.webkit.org/show_bug.cgi?id=162568 |
| |
| Reviewed by Alex Christensen. |
| |
| Update BlobResourceHandle to wait for continueDidReceiveResponse() to be |
| called after it calls the client's didReceiveResponseAsync(), before |
| actually reading the Blob Data. |
| |
| No new tests, covered by existing tests. |
| |
| * platform/network/BlobResourceHandle.cpp: |
| (WebCore::BlobResourceHandle::continueDidReceiveResponse): |
| (WebCore::BlobResourceHandle::getSizeForNext): |
| (WebCore::BlobResourceHandle::notifyResponseOnSuccess): |
| (WebCore::BlobResourceHandle::notifyResponseOnError): |
| |
| 2016-09-26 Daniel Bates <dabates@apple.com> |
| |
| Mark Ping{Handle, Load} as final |
| https://bugs.webkit.org/show_bug.cgi?id=162576 |
| |
| Reviewed by Alex Christensen. |
| |
| We should not support subclassing of a ping handle or overriding its ResourceHandleClient |
| callbacks because there are security/privacy implications with a ping request. We should |
| not encourage subclassing without careful consideration. |
| |
| * platform/network/PingHandle.h: |
| |
| 2016-09-26 Daniel Bates <dabates@apple.com> |
| |
| Rename IOS_TEXT_AUTOSIZING to TEXT_AUTOSIZING |
| https://bugs.webkit.org/show_bug.cgi?id=162365 |
| |
| Reviewed by Simon Fraser. |
| |
| Repurpose the feature name TEXT_AUTOSIZING for the ENABLE(IOS_TEXT_AUTOSIZING)-guarded code |
| as this code represents WebKit's automatic text size adjustment machinery and is compiled |
| on both macOS and iOS. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::propertyValue): |
| * css/CSSPropertyNames.in: |
| * css/StyleBuilderCustom.h: |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::updateFont): |
| * css/StyleResolver.h: |
| * css/parser/CSSParser.cpp: |
| (WebCore::CSSParserContext::CSSParserContext): |
| (WebCore::CSSParser::parseValue): |
| * css/parser/CSSParser.h: |
| * css/parser/CSSParserMode.h: |
| * dom/Document.cpp: |
| (WebCore::Document::destroyRenderTree): |
| * dom/Document.h: |
| * editing/EditingStyle.cpp: |
| * page/FrameView.cpp: |
| (WebCore::FrameView::layout): |
| * page/Page.cpp: |
| (WebCore::Page::Page): |
| * page/Page.h: |
| * page/Settings.in: |
| * platform/graphics/FontCascade.h: |
| * platform/graphics/FontDescription.cpp: |
| * platform/graphics/FontDescription.h: |
| * rendering/RenderBlockFlow.cpp: |
| (WebCore::RenderBlockFlow::RenderBlockFlow): |
| * rendering/RenderBlockFlow.h: |
| * rendering/RenderElement.cpp: |
| * rendering/RenderElement.h: |
| * rendering/RenderObject.cpp: |
| * rendering/RenderObject.h: |
| * rendering/RenderText.cpp: |
| (WebCore::RenderText::RenderText): |
| * rendering/RenderText.h: |
| * rendering/TextAutoSizing.cpp: |
| * rendering/TextAutoSizing.h: |
| * rendering/style/RenderStyle.cpp: |
| (WebCore::RenderStyle::changeRequiresLayout): |
| * rendering/style/RenderStyle.h: |
| * rendering/style/StyleInheritedData.cpp: |
| (WebCore::StyleInheritedData::StyleInheritedData): |
| (WebCore::StyleInheritedData::operator==): |
| * rendering/style/StyleInheritedData.h: |
| * rendering/style/StyleRareInheritedData.cpp: |
| (WebCore::StyleRareInheritedData::StyleRareInheritedData): |
| (WebCore::StyleRareInheritedData::operator==): |
| * rendering/style/StyleRareInheritedData.h: |
| * rendering/style/TextSizeAdjustment.h: |
| * testing/InternalSettings.cpp: |
| (WebCore::InternalSettings::Backup::Backup): |
| (WebCore::InternalSettings::Backup::restoreTo): |
| (WebCore::InternalSettings::setTextAutosizingEnabled): |
| (WebCore::InternalSettings::setTextAutosizingWindowSizeOverride): |
| * testing/InternalSettings.h: |
| |
| 2016-09-26 Nan Wang <n_wang@apple.com> |
| |
| AX: Progress: [Mac] Content in label element should be used as AXTitle or AXDescription |
| https://bugs.webkit.org/show_bug.cgi?id=162573 |
| |
| Reviewed by Chris Fleizach. |
| |
| Exposed the label element's text as the AXTitle of the progress indicator. |
| |
| Test: accessibility/mac/progress-with-label-element.html |
| |
| * accessibility/AccessibilityNodeObject.cpp: |
| (WebCore::AccessibilityNodeObject::titleElementText): |
| (WebCore::AccessibilityNodeObject::title): |
| |
| 2016-09-26 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Rebaseline bindings tests after r206386. |
| |
| Unreviewed test gardening. |
| |
| * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: |
| * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: |
| * bindings/scripts/test/JS/JSTestEventConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestGlobalObject.cpp: |
| * bindings/scripts/test/JS/JSTestInterface.cpp: |
| * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestNode.cpp: |
| * bindings/scripts/test/JS/JSTestNondeterministic.cpp: |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: |
| * bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp: |
| * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp: |
| * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: |
| * bindings/scripts/test/JS/JSTestTypedefs.cpp: |
| |
| 2016-09-26 Youenn Fablet <youenn@apple.com> |
| |
| ASSERTION FAILED: m_origin || m_type == CachedResource::MainResource |
| https://bugs.webkit.org/show_bug.cgi?id=162472 |
| <rdar://problem/28431522> |
| |
| Reviewed by Chris Dumez. |
| |
| Covered by existing tests. |
| |
| * loader/cache/CachedImage.cpp: |
| (WebCore::CachedImage::CachedImage): Fixing the last CachedImage constructor. |
| Using CachedResource protected constructor. |
| * loader/cache/CachedResource.h: Small clean-up. |
| |
| 2016-09-26 Youenn Fablet <youenn@apple.com> |
| |
| [GTK][EFL] imported/w3c/web-platform-tests/fetch/api/basic/accept-header.html is failing |
| https://bugs.webkit.org/show_bug.cgi?id=162547 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Covered by LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/accept-header.html now passing. |
| |
| * platform/network/soup/SoupNetworkSession.cpp: |
| (WebCore::SoupNetworkSession::createTestingSession): Setting a default Accept-Language value. |
| |
| 2016-09-26 Mark Lam <mark.lam@apple.com> |
| |
| Added RETURN_IF_EXCEPTION() macro and use it for exception checks. |
| https://bugs.webkit.org/show_bug.cgi?id=162521 |
| |
| Reviewed by Saam Barati. |
| |
| No new tests because this patch is mostly refactoring. The only change in |
| behavior is that functions that have a JSValue return type will now return the |
| empty JSValue when an exception is thrown. I tested this behavior by running |
| the existing JSC and layout tests. |
| |
| * bindings/js/ArrayValue.cpp: |
| (WebCore::ArrayValue::get): |
| * bindings/js/IDBBindingUtilities.cpp: |
| (WebCore::toJS): |
| * bindings/js/JSApplePaySessionCustom.cpp: |
| (WebCore::JSApplePaySession::completeShippingMethodSelection): |
| (WebCore::JSApplePaySession::completeShippingContactSelection): |
| (WebCore::JSApplePaySession::completePaymentMethodSelection): |
| * bindings/js/JSAudioTrackCustom.cpp: |
| (WebCore::JSAudioTrack::setKind): |
| (WebCore::JSAudioTrack::setLanguage): |
| * bindings/js/JSBlobCustom.cpp: |
| (WebCore::constructJSBlob): |
| * bindings/js/JSCSSStyleDeclarationCustom.cpp: |
| (WebCore::JSCSSStyleDeclaration::getPropertyCSSValue): |
| * bindings/js/JSCommandLineAPIHostCustom.cpp: |
| (WebCore::getJSListenerFunctions): |
| * bindings/js/JSCryptoAlgorithmDictionary.cpp: |
| (WebCore::JSCryptoAlgorithmDictionary::getAlgorithmIdentifier): |
| (WebCore::getHashAlgorithm): |
| (WebCore::createAesCbcParams): |
| (WebCore::createAesKeyGenParams): |
| (WebCore::createHmacKeyParams): |
| (WebCore::createRsaKeyGenParams): |
| (WebCore::createRsaOaepParams): |
| * bindings/js/JSCryptoKeySerializationJWK.cpp: |
| (WebCore::getStringFromJSON): |
| (WebCore::JSCryptoKeySerializationJWK::reconcileUsages): |
| (WebCore::JSCryptoKeySerializationJWK::keyDataRSAComponents): |
| (WebCore::buildJSONForRSAComponents): |
| (WebCore::addUsagesToJSON): |
| (WebCore::JSCryptoKeySerializationJWK::serialize): |
| * bindings/js/JSCustomElementInterface.cpp: |
| (WebCore::constructCustomElementSynchronously): |
| (WebCore::JSCustomElementInterface::upgradeElement): |
| * bindings/js/JSCustomElementRegistryCustom.cpp: |
| (WebCore::getCustomElementCallback): |
| (WebCore::JSCustomElementRegistry::define): |
| (WebCore::whenDefinedPromise): |
| * bindings/js/JSDOMBinding.cpp: |
| (WebCore::valueToUSVString): |
| (WebCore::hasIteratorMethod): |
| (WebCore::toSmallerInt): |
| (WebCore::toSmallerUInt): |
| (WebCore::toInt32EnforceRange): |
| (WebCore::toUInt32EnforceRange): |
| (WebCore::toInt64EnforceRange): |
| (WebCore::toUInt64EnforceRange): |
| * bindings/js/JSDOMBinding.h: |
| (WebCore::toJSSequence): |
| (WebCore::toJS): |
| (WebCore::jsFrozenArray): |
| * bindings/js/JSDOMPromise.cpp: |
| (WebCore::rejectPromiseWithExceptionIfAny): |
| * bindings/js/JSDOMStringMapCustom.cpp: |
| (WebCore::JSDOMStringMap::putDelegate): |
| * bindings/js/JSDOMWindowCustom.cpp: |
| (WebCore::JSDOMWindow::setLocation): |
| (WebCore::JSDOMWindow::open): |
| (WebCore::JSDOMWindow::showModalDialog): |
| (WebCore::handlePostMessage): |
| (WebCore::JSDOMWindow::setTimeout): |
| (WebCore::JSDOMWindow::setInterval): |
| * bindings/js/JSDataCueCustom.cpp: |
| (WebCore::constructJSDataCue): |
| * bindings/js/JSDeviceMotionEventCustom.cpp: |
| (WebCore::readAccelerationArgument): |
| (WebCore::readRotationRateArgument): |
| (WebCore::JSDeviceMotionEvent::initDeviceMotionEvent): |
| * bindings/js/JSDictionary.cpp: |
| (WebCore::JSDictionary::tryGetProperty): |
| (WebCore::JSDictionary::convertValue): |
| * bindings/js/JSDictionary.h: |
| (WebCore::JSDictionary::tryGetPropertyAndResult): |
| * bindings/js/JSDocumentCustom.cpp: |
| (WebCore::JSDocument::getCSSCanvasContext): |
| * bindings/js/JSFileCustom.cpp: |
| (WebCore::constructJSFile): |
| * bindings/js/JSGeolocationCustom.cpp: |
| (WebCore::JSGeolocation::getCurrentPosition): |
| (WebCore::JSGeolocation::watchPosition): |
| * bindings/js/JSHTMLAllCollectionCustom.cpp: |
| (WebCore::callHTMLAllCollection): |
| * bindings/js/JSHTMLCanvasElementCustom.cpp: |
| (WebCore::JSHTMLCanvasElement::getContext): |
| * bindings/js/JSHTMLElementCustom.cpp: |
| (WebCore::constructJSHTMLElement): |
| * bindings/js/JSHistoryCustom.cpp: |
| (WebCore::JSHistory::pushState): |
| (WebCore::JSHistory::replaceState): |
| * bindings/js/JSIDBDatabaseCustom.cpp: |
| (WebCore::JSIDBDatabase::createObjectStore): |
| * bindings/js/JSMessageEventCustom.cpp: |
| (WebCore::handleInitMessageEvent): |
| * bindings/js/JSMessagePortCustom.cpp: |
| (WebCore::fillMessagePortArray): |
| * bindings/js/JSMessagePortCustom.h: |
| (WebCore::handlePostMessage): |
| * bindings/js/JSMockContentFilterSettingsCustom.cpp: |
| (WebCore::JSMockContentFilterSettings::setDecisionPoint): |
| (WebCore::toDecision): |
| (WebCore::JSMockContentFilterSettings::setDecision): |
| (WebCore::JSMockContentFilterSettings::setUnblockRequestDecision): |
| * bindings/js/JSNodeFilterCustom.cpp: |
| (WebCore::JSNodeFilter::acceptNode): |
| * bindings/js/JSNodeOrString.cpp: |
| (WebCore::toNodeOrStringVector): |
| * bindings/js/JSSQLTransactionCustom.cpp: |
| (WebCore::JSSQLTransaction::executeSql): |
| * bindings/js/JSSVGLengthCustom.cpp: |
| (WebCore::JSSVGLength::convertToSpecifiedUnits): |
| * bindings/js/JSStorageCustom.cpp: |
| (WebCore::JSStorage::getOwnPropertyNames): |
| * bindings/js/JSTextTrackCustom.cpp: |
| (WebCore::JSTextTrack::setLanguage): |
| * bindings/js/JSVideoTrackCustom.cpp: |
| (WebCore::JSVideoTrack::setKind): |
| (WebCore::JSVideoTrack::setLanguage): |
| * bindings/js/JSWebGL2RenderingContextCustom.cpp: |
| (WebCore::JSWebGL2RenderingContext::getIndexedParameter): |
| * bindings/js/JSWebGLRenderingContextBaseCustom.cpp: |
| (WebCore::getObjectParameter): |
| (WebCore::JSWebGLRenderingContextBase::getExtension): |
| (WebCore::JSWebGLRenderingContextBase::getFramebufferAttachmentParameter): |
| (WebCore::JSWebGLRenderingContextBase::getParameter): |
| (WebCore::JSWebGLRenderingContextBase::getProgramParameter): |
| (WebCore::JSWebGLRenderingContextBase::getShaderParameter): |
| (WebCore::toVector): |
| (WebCore::dataFunctionf): |
| (WebCore::dataFunctionMatrix): |
| * bindings/js/JSWebKitSubtleCryptoCustom.cpp: |
| (WebCore::cryptoKeyFormatFromJSValue): |
| (WebCore::cryptoKeyUsagesFromJSValue): |
| (WebCore::JSWebKitSubtleCrypto::generateKey): |
| (WebCore::importKey): |
| (WebCore::JSWebKitSubtleCrypto::importKey): |
| (WebCore::exportKey): |
| (WebCore::JSWebKitSubtleCrypto::exportKey): |
| (WebCore::JSWebKitSubtleCrypto::unwrapKey): |
| * bindings/js/JSWorkerCustom.cpp: |
| (WebCore::constructJSWorker): |
| * bindings/js/JSWorkerGlobalScopeCustom.cpp: |
| (WebCore::JSWorkerGlobalScope::importScripts): |
| (WebCore::JSWorkerGlobalScope::setTimeout): |
| (WebCore::JSWorkerGlobalScope::setInterval): |
| * bindings/js/ReadableStreamDefaultController.cpp: |
| (WebCore::ReadableStreamDefaultController::invoke): |
| * bindings/js/ScheduledAction.cpp: |
| (WebCore::ScheduledAction::create): |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateDictionaryImplementationContent): |
| (GenerateImplementation): |
| (GenerateParametersCheck): |
| (GenerateImplementationFunctionCall): |
| (GenerateConstructorDefinition): |
| * html/HTMLMediaElement.cpp: |
| (WebCore::controllerJSValue): |
| (WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange): |
| (WebCore::HTMLMediaElement::getCurrentMediaControlsStatus): |
| |
| 2016-09-26 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| -Wtautological-compare triggered in URLParser::internalValuesConsistent |
| https://bugs.webkit.org/show_bug.cgi?id=162551 |
| |
| Reviewed by Alex Christensen. |
| |
| Fix logic error. |
| |
| * platform/URLParser.cpp: |
| (WebCore::URLParser::internalValuesConsistent): |
| |
| 2016-09-26 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Add CairoUniquePtr and use it in FontPlatformDataFreetype.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=162557 |
| |
| Reviewed by Alex Christensen. |
| |
| * platform/graphics/cairo/CairoUniquePtr.h: Added. |
| (WebCore::CairoPtrDeleter<cairo_font_options_t>::operator()): |
| * platform/graphics/freetype/FontPlatformDataFreeType.cpp: |
| (WebCore::getDefaultCairoFontOptions): Return a smart pointer. |
| (WebCore::FontPlatformData::buildScaledFont): Use smart pointer. |
| |
| 2016-09-26 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Silence unused parameter warnings from Geoclue2Interface.c |
| https://bugs.webkit.org/show_bug.cgi?id=162545 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * PlatformGTK.cmake: |
| |
| 2016-09-26 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| std::unique_ptr deleter functions should not check if pointer is null |
| https://bugs.webkit.org/show_bug.cgi?id=162558 |
| |
| Reviewed by Alex Christensen. |
| |
| std::unique_ptr already does this before calling the deleter. |
| |
| * platform/graphics/x11/XUniquePtr.h: |
| (WebCore::XPtrDeleter::operator()): |
| (WebCore::XPtrDeleter<XImage>::operator()): |
| (WebCore::XPtrDeleter<_XGC>::operator()): |
| (WebCore::XPtrDeleter<__GLXcontextRec>::operator()): |
| |
| 2016-09-26 Per Arne Vollan <pvollan@apple.com> |
| |
| [Win][Debug] Compile fix. |
| https://bugs.webkit.org/show_bug.cgi?id=162550 |
| |
| Reviewed by Alex Christensen. |
| |
| Windows headers need the FragmentForwardIterator '==' operator in debug mode. |
| |
| * rendering/SimpleLineLayout.cpp: |
| (WebCore::SimpleLineLayout::FragmentForwardIterator::operator==): |
| |
| 2016-09-26 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] Unnecessary extern functions in FontPlatformDataFreeType.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=162555 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| These functions should be file-static. |
| |
| * platform/graphics/freetype/FontPlatformDataFreeType.cpp: |
| (WebCore::convertFontConfigSubpixelOrder): |
| (WebCore::convertFontConfigHintStyle): |
| (WebCore::setCairoFontOptionsFromFontConfigPattern): |
| |
| == Rolled over to ChangeLog-2016-09-26 == |